‬‏‫التشغيل السريع: استخدام تجمع 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

الصورة التالية هي معاينة الملف المطلوب الاستعلام عنه:

First 10 rows of the CSV file without header, Windows style new line.

يوضح الاستعلام التالي كيفية قراءة ملف 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 لأننا لا نتوقع العثور عليه في الملف.

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

أنت الآن على استعداد لمتابعة المقالات التالية: