Aracılığıyla paylaş


Azure Synapse Analytics'te sunucusuz SQL havuzunu kullanarak sorgu sonuçlarını depolamaya depolama

Bu makalede sunucusuz SQL havuzunu kullanarak sorgu sonuçlarını depolamaya depolamayı öğreneceksiniz.

Önkoşullar

İlk adımınız sorguları yürüteceğiniz bir veritabanı oluşturmaktır . Ardından bu veritabanında kurulum betiğini yürüterek nesneleri başlatın. Bu kurulum betiği, bu örneklerdeki verileri okumak için kullanılan veri kaynaklarını, veritabanı kapsamlı kimlik bilgilerini ve dış dosya biçimlerini oluşturur.

Çıktı depolama alanına veri yazmak için kullanılan veri kaynakları, veritabanı kapsamlı kimlik bilgileri ve dış dosya biçimleri oluşturmak için bu makaledeki yönergeleri izleyin.

Seçme olarak dış tablo oluşturma

Sorgu sonuçlarını depolama alanına depolamak için CREATE EXTERNAL TABLE AS SELECT (CETAS) deyimini kullanabilirsiniz.

Not

Oluşturduğunuz veritabanını kullanmak için sorgudaki ilk satırı ([mydbname] gibi) değiştirin.

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;

Not

Bu betiği değiştirmeniz ve yeniden yürütmek için hedef konumu değiştirmeniz gerekir. Dış tablolar, zaten bazı verileriniz olan konumda oluşturulamaz.

Dış tabloyu kullanma

CETAS aracılığıyla oluşturulan dış tabloyu normal bir dış tablo gibi kullanabilirsiniz.

Not

Oluşturduğunuz veritabanını kullanmak için sorgudaki ilk satırı ([mydbname] gibi) değiştirin.

USE [mydbname];
GO

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

Açıklamalar

Sonuçlarınızı depoladıktan sonra dış tablodaki veriler değiştirilemez. CETAS önceki yürütmede oluşturulan temel verilerin üzerine yazmayacağından bu betiği yineleyemezsiniz. Senaryolarınızda bunlardan bazıları gerekliyse aşağıdaki geri bildirim öğelerine oy verin veya Azure geri bildirim sitesinde yenilerini önerin:

Desteklenen tek çıkış türleri Parquet ve CSV'dir. Azure geri bildirim sitesinde diğer türler için oy vekleyebilirsiniz.

Sonraki adımlar

Farklı dosya türlerini sorgulama hakkında daha fazla bilgi için Tek CSV dosyasını sorgulama, Parquet dosyalarını sorgulama ve JSON dosyalarını sorgulama makalelerine bakın.