共用方式為


在 Azure Synapse Analytics 中使用無伺服器 SQL 集區將查詢結果儲存至儲存體

在本文中,您將了解如何使用無伺服器 SQL 集區將查詢結果儲存至儲存體。

必要條件

您的第一個步驟是建立資料庫,您將在其中執行查詢。 然後在該資料庫上執行安裝指令碼,將物件初始化。 此安裝指令碼會建立資料來源、資料庫範圍認證,以及用來讀取這些範例中資料的外部檔案格式。

依照本文中的指示,建立資料來源、資料庫範圍認證,以及用來將資料寫入輸出儲存體的外部檔案格式。

Create external table as select

您可以使用 CREATE EXTERNAL TABLE AS SELECT (CETAS) 陳述式將查詢結果儲存至儲存體。

注意

變更查詢中的這些值以反映您的環境:

USE [mydbname];
GO

CREATE DATABASE SCOPED CREDENTIAL [SasTokenWrite]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
     SECRET = 'storage-account-sas';
GO

CREATE EXTERNAL DATA SOURCE [MyDataSource] WITH (
    LOCATION = 'https://your-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 不會覆寫在先前執行中建立的基礎數據。

目前唯一支持的輸出類型是 Parquet 和 CSV。

如需有關如何查詢不同檔案類型的詳細資訊,請參閱查詢單一 CSV 檔案查詢 Parquet 檔案查詢 JSON 檔案文章。