実戦シナリオ定義問題

ある企業のデータエンジニアが「Azure Synapse Analytics Serverless SQL PoolでADLS Gen2上のParquetファイルをクエリしたい」と述べています。以下のSQL文のうち正しい使い方はどれか?

A.SELECT * FROM 'https://storage.blob.core.windows.net/container/data.parquet'
✗ Serverless SQL PoolではFROM句にURLを直接指定するシンタックスは使えない。
B.SELECT * FROM OPENROWSET(BULK 'https://storageaccount.dfs.core.windows.net/container/data.parquet', FORMAT = 'PARQUET') AS rows← 正解
✓ 正解。OPENROWSET関数はServerless SQL Poolの主要な外部ファイルクエリ方法。BULK引数でADLS Gen2のURLを指定し、FORMAT='PARQUET'でParquet形式を指定する。外部テーブルを作成せずにアドホッククエリが可能。
C.SELECT * FROM EXTERNAL TABLE data_external WHERE FORMAT = 'PARQUET'
✗ EXTERNAL TABLEは作成後にSELECT * FROM external_table_nameでクエリするが、CREATE EXTERNAL TABLE文でまず定義が必要。このSQL文の記述は正しくない。
D.SELECT * FROM COPY INTO 'https://storageaccount.dfs.core.windows.net/container/data.parquet'
✗ COPY INTOはDedicated SQL Poolにデータをインポートするコマンド。Serverless SQL Poolでのクエリ構文ではない。

DP-900:Microsoft Azure Data Fundamentals の問題一覧