Megosztás a következőn keresztül:


Lekérdezési eredmények tárolása tárolóba kiszolgáló nélküli SQL-készlet használatával az Azure Synapse Analyticsben

Ebben a cikkben megtudhatja, hogyan tárolhatja a lekérdezési eredményeket a tárolóban kiszolgáló nélküli SQL-készlet használatával.

Előfeltételek

Első lépésként hozzon létre egy adatbázist , amelyben végrehajtja a lekérdezéseket. Ezután inicializálja az objektumokat az adatbázis telepítőszkriptjének végrehajtásával. Ez a beállítási szkript létrehozza azokat az adatforrásokat, adatbázis-hatókörű hitelesítő adatokat és külső fájlformátumokat, amelyek az ezekben a mintákban lévő adatok olvasására szolgálnak.

Az ebben a cikkben ismertetett utasításokat követve adatforrásokat, adatbázis-hatókörű hitelesítő adatokat és külső fájlformátumokat hozhat létre, amelyekkel adatokat írhat a kimeneti tárolóba.

Külső táblát létrehozni a kijelölés alapján

A CREATE EXTERNAL TABLE AS SELECT (CETAS) utasítással tárolhatja a lekérdezés eredményeit a tárolóban.

Feljegyzés

Módosítsa ezeket az értékeket a lekérdezésben a környezetének megfelelően:

  • mydbname – módosítsa a létrehozott adatbázis nevére
  • storage-account-sas – egy olyan tárfiók közös hozzáférésű jogosultságkódja , amelyben meg szeretné írni az eredményeket
  • a tárfiók neve – annak a tárfióknak a neve, ahová az eredményeket meg szeretné írni (Győződjön meg arról, hogy van egy "csv" nevű tárolója, vagy itt is módosítja a tároló nevét)
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;

Feljegyzés

Módosítania kell ezt a szkriptet, és módosítania kell a célhelyet, hogy újra végrehajtsa. Külső táblák nem hozhatók létre azon a helyen, ahol már rendelkezik adatokkal.

Használja a külső táblát

A CETAS-ben létrehozott külső táblát használhatja, mint egy hagyományos külső táblát.

Megjegyzés

Módosítsa a lekérdezés első sorát, azaz a [mydbname] nevet, így a létrehozott adatbázist használja.

USE [mydbname];
GO

SELECT
    CountryName, PopulationCount
FROM PopulationCETAS
WHERE
    [Year] = 2019
ORDER BY
    [PopulationCount] DESC;

Megjegyzések

Az eredmények tárolása után a külső táblában lévő adatok nem módosíthatók. Ezt a szkriptet nem lehet megismételni, mert a CETAS nem írja felül az előző végrehajtás során létrehozott mögöttes adatokat.

Jelenleg az egyetlen támogatott kimeneti típus a Parquet és a CSV.

A különböző fájltípusok lekérdezéséről további információt a CSV-fájlok lekérdezése, a Parquet-fájlok lekérdezése és a JSON-fájlok lekérdezése című cikkekben talál.