Azure Synapse Analytics を使用して SQL オンデマンド (プレビュー) でビューを作成および使用するCreate and use views in SQL on-demand (preview) using Azure Synapse Analytics

このセクションでは、ビューを作成および使用して、SQL オンデマンド (プレビュー) クエリをラップする方法を学習します。In this section, you'll learn how to create and use views to wrap SQL on-demand (preview) queries. ビューを使用すると、これらのクエリを再利用できます。Views will allow you to reuse those queries. ビューは、Power BI などのツールを SQL オンデマンドと組み合わせて使用する場合にも必要になります。Views are also needed if you want to use tools, such as Power BI, in conjunction with SQL on-demand.

前提条件Prerequisites

最初の手順では、ビューが作成されるデータベースを作成し、そのデータベースで設定スクリプトを実行して、Azure Storage での認証に必要なオブジェクトを初期化します。Your first step is to create a database where the view will be created and initialize the objects needed to authenticate on Azure storage by executing setup script on that database. この記事のクエリはすべて、サンプル データベースで実行されます。All queries in this article will be executed on your sample database.

ビューの作成Create a view

ビューは、通常の SQL Server ビューを作成するのと同じ方法で作成できます。You can create views the same way you create regular SQL Server views. 次のクエリによって、population.csv ファイルを読み取るビューが作成されます。The following query creates view that reads population.csv file.

注意

クエリの最初の行 ([mydbname]) は、自分で作成したデータベースを使用するように変更してください。Change the first line in the query, i.e., [mydbname], so you're using the database you created.

USE [mydbname];
GO

DROP VIEW IF EXISTS populationView;
GO

CREATE VIEW populationView AS
SELECT * 
FROM OPENROWSET(
        BULK 'csv/population/population.csv',
        DATA_SOURCE = 'SqlOnDemandDemo',
        FORMAT = 'CSV', 
        FIELDTERMINATOR =',', 
        ROWTERMINATOR = '\n'
    )
WITH (
    [country_code] VARCHAR (5) COLLATE Latin1_General_BIN2,
    [country_name] VARCHAR (100) COLLATE Latin1_General_BIN2,
    [year] smallint,
    [population] bigint
) AS [r];

この例のビューでは、基になるファイルへの絶対パスを使用する OPENROWSET 関数が使用されます。The view in this example uses OPENROWSET function that uses absolute path to the underlying files. ストレージのルート URL の EXTERNAL DATA SOURCE がある場合は、DATA_SOURCE と相対ファイル パスと共に OPENROWSET を使用できます。If you have EXTERNAL DATA SOURCE with a root URL of your storage, you can use OPENROWSET with DATA_SOURCE and relative file path:

CREATE VIEW TaxiView
AS SELECT *, nyc.filepath(1) AS [year], nyc.filepath(2) AS [month]
FROM
    OPENROWSET(
        BULK 'parquet/taxi/year=*/month=*/*.parquet',
        DATA_SOURCE = 'sqlondemanddemo',
        FORMAT='PARQUET'
    ) AS nyc

ビューの使用Use a view

ビューは、SQL Server クエリ内でビューを使用するのと同じ方法でクエリ内で使用できます。You can use views in your queries the same way you use views in SQL Server queries.

次のクエリは、「ビューの作成」で作成した population_csv ビューの使用方法を示しています。The following query demonstrates using the population_csv view we created in Create a view. これにより、国/地域名が 2019 年の人口の降順に返されます。It returns country/region names with their population in 2019 in descending order.

注意

クエリの最初の行 ([mydbname]) は、自分で作成したデータベースを使用するように変更してください。Change the first line in the query, i.e., [mydbname], so you're using the database you created.

USE [mydbname];
GO

SELECT
    country_name, population
FROM populationView
WHERE
    [year] = 2019
ORDER BY
    [population] DESC;

次のステップNext steps

さまざまな種類のファイルに対するクエリの実行については、単一の CSV ファイルに対するクエリの実行Parquet ファイルに対するクエリの実行、および JSON ファイルに対するクエリの実行に関するページを参照してください。For information on how to query different file types, refer to the Query single CSV file, Query Parquet files, and Query JSON files articles.