التشغيل السريع: استخدام تجمع SQL بدون خادم
تجمع SQL Serverless Synapse هو خدمة استعلام بلا خادم تمكنك من تشغيل SQL للاستعلامات على الملفات الموضوعة في تخزين Azure. في هذا التشغيل السريع، ستتعلم كيفية الاستعلام عن أنواع مختلفة من الملفات باستخدام تجمع SQL بلا خادم. يتم سرد التنسيقات المعتمدة في OPENROWSET.
يٌظهر هذا التشغيل السريع الاستعلام: ملفات CSV وApache Parquet وJSON.
المتطلبات الأساسية
اختر عميل SQL لإصدار الاستعلامات:
- Azure Synapse Studio هو أداة ويب يمكنك استخدامها لاستعراض الملفات في التخزين وإنشاء استعلامات SQL.
- Azure Data Studio هو أداة عميل تمكنك من تشغيل SQL الاستعلامات ودفاتر الملاحظات على قاعدة البيانات عند الطلب.
- SQL Server Management Studio هو أداة عميل تمكنك من تشغيل SQL الاستعلامات ودفاتر الملاحظات على قاعدة البيانات عند الطلب.
معلمات هذا التشغيل السريع:
المعلمة | الوصف |
---|---|
عنوان نقطة نهاية خدمة تجمع SQL بلا خادم | يستخدم كاسم خادم |
منطقة نقطة نهاية خدمة تجمع SQL بلا خادم | تستخدم لتحديد ما هو التخزين الذي سنستخدمه في العينات |
اسم المستخدم وكلمة المرور للوصول إلى نقطة النهاية | يُستخدم للوصول إلى نقطة النهاية |
قاعدة البيانات المستخدمة لإنشاء طرق العرض | قاعدة البيانات المستخدمة كنقطة بداية في العينات |
الإعداد لأول مرة
قبل استخدام العينات:
- إنشاء قاعدة بيانات لطرق العرض (في حالة الرغبة في استخدام طرق العرض)
- إنشاء بيانات اعتماد لاستخدامها من قبل تجمع SQL بلا خادم للوصول إلى الملفات في التخزين
إنشاء قاعدة بيانات
إنشاء قاعدة البيانات الخاصة بك لأغراض العرض التوضيحي. ستستخدم قاعدة البيانات هذه لإنشاء طرق العرض الخاصة بك ونماذج الاستعلامات في هذه المقالة.
إشعار
يتم استخدام قواعد البيانات فقط لعرض بيانات التعريف، وليس للبيانات الفعلية. اكتب اسم قاعدة البيانات الذي تستخدمه للاستخدام لاحقاً في التشغيل السريع.
استخدم الاستعلام التالي، تغيير mydbname
إلى اسم من اختيارك:
CREATE DATABASE mydbname
إنشاء مصدر بيانات
لتشغيل الاستعلامات باستخدام تجمع SQL بلا خادم، قم بإنشاء مصدر بيانات يمكن لتجمع SQL بلا خادم استخدامه للوصول إلى الملفات في التخزين. تنفيذ التعليمات البرمجية التالية المتكررة لإنشاء مصدر بيانات المستخدمة في نماذج في هذا المقطع:
-- create master key that will protect the credentials:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = <enter very strong password here>
-- create credentials for containers in our demo storage account
CREATE DATABASE SCOPED CREDENTIAL sqlondemand
WITH IDENTITY='SHARED ACCESS SIGNATURE',
SECRET = 'sv=2018-03-28&ss=bf&srt=sco&sp=rl&st=2019-10-14T12%3A10%3A25Z&se=2061-12-31T12%3A10%3A00Z&sig=KlSU2ullCscyTS0An0nozEpo4tO5JAgGBvw%2FJX2lguw%3D'
GO
CREATE EXTERNAL DATA SOURCE SqlOnDemandDemo WITH (
LOCATION = 'https://sqlondemandstorage.blob.core.windows.net',
CREDENTIAL = sqlondemand
);
الاستعلام عن ملفات CSV
الصورة التالية هي معاينة الملف المطلوب الاستعلام عنه:
يوضح الاستعلام التالي كيفية قراءة ملف CSV لا يحتوي على صف رأس، مع سطر جديد بنمط Windows وأعمدة مفصولة بفواصل:
SELECT TOP 10 *
FROM OPENROWSET
(
BULK 'csv/population/*.csv',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT = 'CSV', PARSER_VERSION = '2.0'
)
WITH
(
country_code VARCHAR (5)
, country_name VARCHAR (100)
, year smallint
, population bigint
) AS r
WHERE
country_name = 'Luxembourg' AND year = 2017
يمكنك تحديد المخطط في وقت التحويل البرمجي للاستعلام. لمزيد من الأمثلة، راجع كيفية الاستعلام عن ملف CSV.
ملفات Parquet للاستعلام
توضع العينة التالية إمكانات الاستدلال التلقائي للمخطط للاستعلام عن ملفات Parquet. تقوم بإرجاع عدد الصفوف في سبتمبر 2017 بدون تحديد المخطط.
إشعار
ليس عليك تحديد أعمدة في OPENROWSET WITH
جملة عند قراءة ملفات Parquet. في هذه الحالة، يستخدم تجمع SQL بلا خادم بيانات التعريف في ملف Parquet ويربط الأعمدة بالاسم.
SELECT COUNT_BIG(*)
FROM OPENROWSET
(
BULK 'parquet/taxi/year=2017/month=9/*.parquet',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT='PARQUET'
) AS nyc
البحث عن مزيد من المعلومات حول الاستعلام عن ملفات Parquet.
الاستعلام عن ملفات JSON
نموذج ملف JSON
يتم تخزين الملفات في حاوية json، كتبالمجلد، وتحتوي على إدخال كتاب واحد مع البنية التالية:
{
"_id":"ahokw88",
"type":"Book",
"title":"The AWK Programming Language",
"year":"1988",
"publisher":"Addison-Wesley",
"authors":[
"Alfred V. Aho",
"Brian W. Kernighan",
"Peter J. Weinberger"
],
"source":"DBLP"
}
الاستعلام عن ملفات JSON
يوضح الاستعلام التالي كيفية استخدام JSON_VALUE لاسترداد القيم التحجيمية (العنوان والناشر) من كتاب بعنوان أساليب احتمالية وإحصائية في علم التشفير، مقدمة من المقالات المحددة:
SELECT
JSON_VALUE(jsonContent, '$.title') AS title
, JSON_VALUE(jsonContent, '$.publisher') as publisher
, jsonContent
FROM OPENROWSET
(
BULK 'json/books/*.json',
DATA_SOURCE = 'SqlOnDemandDemo'
, FORMAT='CSV'
, FIELDTERMINATOR ='0x0b'
, FIELDQUOTE = '0x0b'
, ROWTERMINATOR = '0x0b'
)
WITH
( jsonContent varchar(8000) ) AS [r]
WHERE
JSON_VALUE(jsonContent, '$.title') = 'Probabilistic and Statistical Methods in Cryptology, An Introduction by Selected Topics'
هام
نحن نقرأ ملف JSON بأكمله كصف / عمود واحد. لذلك، يتم تعيين FIELDTERMINATOR، FIELDQUOTE، وROWTERMINATOR إلى 0x0b لأننا لا نتوقع العثور عليه في الملف.
الخطوات التالية
أنت الآن على استعداد لمتابعة المقالات التالية: