إنشاء 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 التالية:
- ثنائي
- ثنائي متغير
- حرف
- حروف متنوعة
- nchar
- nvarchar
- Smalldate
- التاريخ
- التاريخ والوقت
- datetime2
- datetimeoffset
- الوقت
- عشري
- عددي
- حُر
- حقيقي
- عدد صحيح كبير
- Tinyint
- Smallint
- Int
- Bigint
- بت
- money
- smallmoney
- uniqueidentifier
ملاحظة
لا يمكن استخدام LOBs أكبر من 1 ميجابايت مع CETAS.
الخطوات التالية
جرب الاستعلام عن استخدام Apache Spark لإنشاء جداول خارجية لنظام Azure Synapse
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ