在 Azure Synapse Analytics 中使用無伺服器 SQL 集區將查詢結果儲存至儲存體
在本文中,您將了解如何使用無伺服器 SQL 集區將查詢結果儲存至儲存體。
必要條件
您的第一個步驟是建立資料庫,您將在其中執行查詢。 然後在該資料庫上執行安裝指令碼,將物件初始化。 此安裝指令碼會建立資料來源、資料庫範圍認證,以及用來讀取這些範例中資料的外部檔案格式。
依照本文中的指示,建立資料來源、資料庫範圍認證,以及用來將資料寫入輸出儲存體的外部檔案格式。
Create external table as select
您可以使用 CREATE EXTERNAL TABLE AS SELECT (CETAS) 陳述式將查詢結果儲存至儲存體。
注意
變更查詢中的第一行,也就是 [mydbname],以使用您所建立的資料庫。
USE [mydbname];
GO
CREATE DATABASE SCOPED CREDENTIAL [SasTokenWrite]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-04-18T20:42:12Z&st=2019-04-18T12:42:12Z&spr=https&sig=lQHczNvrk1KoYLCpFdSsMANd0ef9BrIPBNJ3VYEIq78%3D';
GO
CREATE EXTERNAL DATA SOURCE [MyDataSource] WITH (
LOCATION = 'https://<storage account name>.blob.core.windows.net/csv', CREDENTIAL = [SasTokenWrite]
);
GO
CREATE EXTERNAL FILE FORMAT [ParquetFF] WITH (
FORMAT_TYPE = PARQUET,
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
GO
CREATE EXTERNAL TABLE [dbo].[PopulationCETAS] WITH (
LOCATION = 'populationParquet/',
DATA_SOURCE = [MyDataSource],
FILE_FORMAT = [ParquetFF]
) AS
SELECT
*
FROM
OPENROWSET(
BULK 'csv/population-unix/population.csv',
DATA_SOURCE = 'sqlondemanddemo',
FORMAT = 'CSV', PARSER_VERSION = '2.0'
) WITH (
CountryCode varchar(4),
CountryName varchar(64),
Year int,
PopulationCount int
) AS r;
注意
您必須修改此指令碼並變更目標位置,以便再次執行。 在您已經有一些資料的位置上,無法建立外部資料表。
使用外部資料表
您可以像一般外部資料表一樣地使用透過 CETAS 所建立的外部資料表。
注意
變更查詢中的第一行,也就是 [mydbname],以使用您所建立的資料庫。
USE [mydbname];
GO
SELECT
CountryName, PopulationCount
FROM PopulationCETAS
WHERE
[Year] = 2019
ORDER BY
[PopulationCount] DESC;
備註
儲存結果後,就無法修改外部資料表中的資料。 您不能重複此指令碼,因為 CETAS 不會覆寫在先前執行中建立的基礎資料。 如果您的案例中需要其中一些項目,請贊成下列意見反應項目,或在 Azure 意見反應網站上提出新的意見反應:
唯一支援的輸出類型為 Parquet 和 CSV。 您可以在 Azure 意見反應網站上對其他類型進行投票。
下一步
如需有關如何查詢不同檔案類型的詳細資訊,請參閱查詢單一 CSV 檔案、查詢 Parquet 檔案及查詢 JSON 檔案文章。