مشاركة عبر


إنشاء CETAS من خلال خادم Synapse SQL

يمكنك استخدام إنشاء جدول خارجي كاختيار (CETAS) في تجمع SQL المخصصة، أو أي تجمع آخر في SQL بلا خادم لإكمال المهام التالية:

  • إنشاء جدول خارجي

  • ترحيل، بالتوازي، نتائج Transact - SQL واختيار بيان إلى:

    • Hadoop
    • كائن التخزين الثنائي للبيانات الكبيرة في Azure
    • Azure Data Lake Storage Gen2

CETAS في تجمع SQL المخصص

بالنسبة إلى تجمع SQL المخصص، واستخدام CETAS وبناء الجملة، تحقق من مقالة CREATE EXTERNAL TABLE AS SELECT . بالإضافة إلى ذلك، للحصول على إرشادات حول CTAS باستخدام تجمع SQL المخصص، راجع مقالة CREATE TABLE AS SELECT .

إنشاء CETAS في تجمع SQL بلا خادم

عند استخدام مجموعة SQL بلا خادم، يجرى استخدام CETAS لإنشاء جدول خارجي، وترحيل نتائج الاستعلام إلى كائن البيانات الثنائية لتخزين Azure، أو Azure Data Lake Storage Gen 2.

للحصول على بناء جملة كامل، راجع CREATE EXTERNAL TABLE AS SELECT (Transact-SQL).

الأمثلة

تستخدم هذه الأمثلة CETAS لحفظ إجمالي عدد السكان المجمعين حسب السنة والحالة إلى مجلد البيانات المجمعة الموجود في مصدر بيانات_الشريحة السكانية.

يعتمد هذا النموذج على بيانات الاعتماد، ومصدر البيانات، وتنسيق الملف الخارجي الذي تم إنشاؤه مسبقًا. راجع مستند الجداول الخارجية. لحفظ نتائج الاستعلام في مجلد مختلف في نفس مصدر البيانات، قم بتغيير وسيطة LOCATION.

لحفظ النتائج في حساب تخزين مختلف، قم بإنشاء واستخدام مصدر بيانات مختلف لوسيطة DATA_SOURCE.

إشعار

تستخدم النماذج التالية حساب تخزين Azure Open Data عاماً. وهذا الرمز للقراءة فقط. لتنفيذ هذه الاستعلامات، تحتاج إلى توفير مصدر البيانات الذي لديك أذونات بالكتابة به.

-- use CETAS to export select statement with OPENROWSET result to  storage
CREATE EXTERNAL TABLE population_by_year_state
WITH (
    LOCATION = 'aggregated_data/',
    DATA_SOURCE = population_ds,  
    FILE_FORMAT = census_file_format
)  
AS
SELECT decennialTime, stateName, SUM(population) AS population
FROM
    OPENROWSET(BULK 'https://azureopendatastorage.dfs.core.windows.net/censusdatacontainer/release/us_population_county/year=*/*.parquet',
    FORMAT='PARQUET') AS [r]
GROUP BY decennialTime, stateName
GO

-- you can query the newly created external table
SELECT * FROM population_by_year_state

يستخدم النموذج التالي جدول خارجي كمصدر لـتطبيق CETAS. ويعتمد على بيانات الاعتماد، ومصدر البيانات، وتنسيق الملف الخارجي، والجدول الخارجي الذي تم إنشاؤه مسبقًا. راجع مستند الجداول الخارجية.

-- use CETAS with select from external table
CREATE EXTERNAL TABLE population_by_year_state
WITH (
    LOCATION = 'aggregated_data/',
    DATA_SOURCE = population_ds,  
    FILE_FORMAT = census_file_format
)  
AS
SELECT decennialTime, stateName, SUM(population) AS population
FROM census_external_table
GROUP BY decennialTime, stateName
GO

-- you can query the newly created external table
SELECT * FROM population_by_year_state

مثال عام

في هذا المثال يمكننا أن نرى مثالا على رمز قالب لكتابة CETAS مع عرض كمصدر واستخدام الهوية المدارة كمصادقة.

CREATE DATABASE [<mydatabase>];
GO

USE [<mydatabase>];
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong password>';

CREATE DATABASE SCOPED CREDENTIAL [WorkspaceIdentity] WITH IDENTITY = 'Managed Identity';
GO

CREATE EXTERNAL FILE FORMAT [ParquetFF] WITH (
    FORMAT_TYPE = PARQUET,
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
GO

CREATE EXTERNAL DATA SOURCE [SynapseSQLwriteable] WITH (
    LOCATION = 'https://<mystoageaccount>.dfs.core.windows.net/<mycontainer>/<mybaseoutputfolderpath>',
    CREDENTIAL = [WorkspaceIdentity]
);
GO

CREATE EXTERNAL TABLE [dbo].[<myexternaltable>] WITH (
        LOCATION = '<myoutputsubfolder>/',
        DATA_SOURCE = [SynapseSQLwriteable],
        FILE_FORMAT = [ParquetFF]
) AS
SELECT * FROM [<myview>];
GO

أنواع البيانات المعتمدة

يمكن استخدام CETAS لتخزين مجموعات النتائج بأنواع بيانات SQL التالية:

  • binary
  • varbinary
  • حرف
  • حروف متنوعة
  • nchar
  • nvarchar
  • Smalldate
  • date
  • datetime
  • التاريخ والوقت2
  • datetimeoffset
  • time
  • عشري
  • عددي
  • عائم
  • real
  • عدد صحيح كبير
  • Tinyint
  • Smallint
  • العدد الصحيح
  • عدد صحيح كبير
  • بت
  • money
  • smallmoney

إشعار

لا يمكن استخدام LOBs أكبر من 1 ميجابايت مع CETAS.

الخطوة التالية