تُعد هذه واحدة من أكثر الطرق كفاءةً وبساطةً لنسخ البيانات من Azure Blob Storage أو Azure Data Lake Storage إلى ClickHouse. وباستخدام هذه الدالة الجدولية، يمكنك توجيه ClickHouse للاتصال مباشرةً بتخزين Azure وقراءة البيانات عند الحاجة.
وهي توفّر واجهة شبيهة بالجدول تتيح لك تحديد البيانات وإدراجها
وتصفيتها مباشرةً من المصدر. هذه الدالة مُحسّنة بدرجة كبيرة وتدعم العديد من تنسيقات الملفات
شائعة الاستخدام، بما في ذلك CSV وJSON وParquet وArrow،
وTSV وORC وAvro وغيرها. للاطلاع على القائمة الكاملة، راجع "تنسيقات البيانات".
في هذا القسم، سنستعرض دليلاً سريعًا للبدء في نقل
البيانات من Azure Blob Storage إلى ClickHouse، إلى جانب اعتبارات مهمة
لاستخدام هذه الدالة بفعالية. ولمزيد من التفاصيل والخيارات المتقدمة،
راجع الوثائق الرسمية:
صفحة توثيق الدالة الجدولية azureBlobStorage
الحصول على مفاتيح الوصول إلى Azure Blob Storage
لتمكين ClickHouse من الوصول إلى Azure Blob Storage، ستحتاج إلى سلسلة اتصال تحتوي على مفتاح وصول.
-
في Azure Portal، انتقل إلى حساب التخزين الخاص بك.
-
من القائمة الموجودة على الجانب الأيسر، حدِّد مفاتيح الوصول ضمن قسم الأمان + الشبكات.

-
اختر key1 أو key2، ثم انقر فوق الزر إظهار بجوار حقل سلسلة الاتصال.

-
انسخ سلسلة الاتصال — ستستخدمها كمعلمة في الدالة الجدولية azureBlobStorage.
الاستعلام عن البيانات من Azure Blob Storage
افتح وحدة تحكم استعلامات ClickHouse التي تفضّلها — سواء كانت واجهة الويب الخاصة بـ ClickHouse Cloud، أو عميل ClickHouse CLI، أو أي أداة أخرى تستخدمها لتشغيل الاستعلامات. وبمجرد أن تصبح سلسلة الاتصال ووحدة تحكم استعلامات ClickHouse جاهزتين، يمكنك البدء في الاستعلام عن البيانات مباشرةً من Azure Blob Storage.
في المثال التالي، نستعلم عن جميع البيانات المخزّنة في ملفات JSON الموجودة في حاوية باسم data-container:
SELECT * FROM azureBlobStorage(
'<YOUR CONNECTION STRING>',
'data-container',
'*.json',
'JSONEachRow');إذا أردت نسخ تلك البيانات إلى جدول ClickHouse محلي (مثلًا، my_table)،
يمكنك استخدام تعليمة INSERT INTO ... SELECT التالية:
INSERT INTO my_table
SELECT * FROM azureBlobStorage(
'<YOUR CONNECTION STRING>',
'data-container',
'*.json',
'JSONEachRow');يتيح لك ذلك جلب البيانات الخارجية إلى ClickHouse بكفاءة دون الحاجة إلى خطوات ETL وسيطة.
مثال بسيط باستخدام مجموعة بيانات المستشعرات البيئية
كمثال، سننزّل ملفًا واحدًا من مجموعة بيانات المستشعرات البيئية.
-
في Azure Portal، أنشئ حساب تخزين جديدًا إذا لم يكن لديك حساب بالفعل.
-
أنشئ حاوية جديدة في حساب التخزين لديك. في هذا المثال، نسمّيها sensors. يمكنك تخطي هذه الخطوة إذا كنت تستخدم حاوية موجودة.
-
ارفع الملف الذي نزّلته سابقًا
2019-06_bmp180.csv.zstإلى الحاوية. -
اتبع الخطوات الموضحة سابقًا للحصول على سلسلة اتصال Azure Blob Storage.
الآن، بعد أن أصبح كل شيء جاهزًا، يمكنك الاستعلام عن البيانات مباشرةً من Azure Blob Storage:
SELECT *
FROM azureBlobStorage(
'<YOUR CONNECTION STRING>',
'sensors',
'2019-06_bmp180.csv.zst',
'CSVWithNames')
LIMIT 10
SETTINGS format_csv_delimiter = ';'- لتحميل البيانات إلى جدول، أنشئ نسخة مبسطة من
المخطط المستخدم في مجموعة البيانات الأصلية:
CREATE TABLE sensors ( sensor_id UInt16, lat Float32, lon Float32, timestamp DateTime, temperature Float32 ) ENGINE = MergeTree ORDER BY (timestamp, sensor_id);
- الآن أدخِل البيانات من Azure Blob Storage إلى جدول sensors:
INSERT INTO sensors SELECT sensor_id, lat, lon, timestamp, temperature FROM azureBlobStorage( '<YOUR CONNECTION STRING>', 'sensors', '2019-06_bmp180.csv.zst', 'CSVWithNames') SETTINGS format_csv_delimiter = ';'
تمت الآن تعبئة جدول sensors بالبيانات من الملف 2019-06_bmp180.csv.zst
المخزَّن في Azure Blob Storage.
موارد إضافية
هذه مجرد مقدمة أساسية لاستخدام الدالة azureBlobStorage. ولمزيد من
الخيارات المتقدمة وتفاصيل الإعداد، يُرجى الرجوع إلى الوثائق
الرسمية: