المتطلبات المسبقة
- مفتاح API بالأذونات المناسبة
- دور Admin في Console
الحد الأدنى من الأذوناتللاستعلام عن نقطة نهاية API، يجب أن يكون لمفتاح API دور organization
Member مع إذن وصول الخدمة Query Endpoints. يُهيَّأ دور قاعدة البيانات عند إنشاء نقطة النهاية.1
أنشئ استعلامًا محفوظًا
إذا كان لديك استعلام محفوظ، فيمكنك تخطي هذه الخطوة.افتح علامة تبويب استعلام جديدة. لأغراض العرض التوضيحي، سنستخدم youtube dataset، التي تحتوي على نحو 4.5 مليار سجل.
اتبع الخطوات الواردة في قسم “Create table” لإنشاء الجدول على خدمة Cloud الخاصة بك وإدراج البيانات فيه.كمثال على استعلام، سنعرض أفضل 10 uploaders حسب متوسط عدد المشاهدات لكل فيديو، ضمن query parameter باسم لاحظ أن هذا الاستعلام يحتوي على parameter (
year يُدخله المستخدم.year) مميز في المقتطف أعلاه.
يمكنك تحديد معلمات الاستعلام باستخدام { } مع نوع الـ parameter.
يكتشف محرر الاستعلام في SQL Console تلقائيًا تعبيرات query parameter في ClickHouse ويوفّر حقل إدخال لكل parameter.لنشغّل هذا الاستعلام سريعًا للتأكد من أنه يعمل، وذلك بتحديد السنة 2010 في مربع إدخال متغيرات الاستعلام على الجانب الأيمن من محرر SQL:بعد ذلك، احفظ الاستعلام:يمكن العثور على مزيد من الوثائق حول استعلام محفوظ في قسم “Saving a query”.2
تهيئة نقطة النهاية لواجهة برمجة تطبيقات الاستعلام
يمكن تهيئة نقاط نهاية واجهة برمجة تطبيقات الاستعلام مباشرةً من عرض الاستعلام بالنقر على الزر Share ثم اختيار
API Endpoint.
سيُطلب منك تحديد مفاتيح API التي يجب أن تتمكن من الوصول إلى نقطة النهاية:بعد اختيار مفتاح API، سيُطلب منك:- تحديد دور قاعدة البيانات الذي سيُستخدم لتشغيل الاستعلام (
Full accessأوRead onlyأوCreate a custom role) - تحديد النطاقات المسموح بها لمشاركة الموارد عبر المصادر المختلفة (CORS)
curl حتى تتمكن من إرسال طلب اختبار:يرد أمر curl المعروض في الواجهة أدناه للتيسير:3
معاملات واجهة برمجة تطبيقات الاستعلام
يمكن تحديد معلمات الاستعلام في الاستعلام باستخدام الصياغة
{parameter_name: type}. سيجري اكتشاف هذه المعاملات تلقائيًا، وستتضمن حمولة طلب المثال كائن queryVariables يمكنك من خلاله تمرير هذه المعاملات.4
الاختبار والمراقبة
بمجرد إنشاء نقطة النهاية لواجهة برمجة تطبيقات الاستعلام، يمكنك اختباره باستخدام
curl أو أي HTTP client آخر:بعد إرسال أول طلب، من المفترض أن يظهر زر جديد مباشرةً إلى يمين الزر Share. سيؤدي النقر عليه إلى فتح flyout يحتوي على بيانات المراقبة الخاصة بالاستعلام:تفاصيل التنفيذ
أساليب HTTP
متى تستخدم GET:
- استعلامات بسيطة من دون بيانات متداخلة معقدة
- يمكن ترميز المعلمات بسهولة في URL
- يستفيد التخزين المؤقت من دلالات HTTP GET
- متغيرات استعلام معقدة (مصفوفات، كائنات، سلاسل نصية كبيرة)
- عندما يكون محتوى الطلب مفضّلًا لأسباب تتعلق بالأمان أو الخصوصية
- تحميل الملفات المتدفّق أو البيانات الكبيرة
المصادقة
تهيئة الطلب
معلمات عنوان URL
معلمات الاستعلام
الترويسات
جسم الطلب
المعلمات
التنسيقات المدعومة
الاستجابات
نجاح
200 OK
تم تنفيذ الاستعلام بنجاح.
رموز الخطأ
أفضل الممارسات لمعالجة الأخطاء
- تأكد من تضمين بيانات اعتماد مصادقة صالحة في الطلب
- تحقّق من صحة
queryEndpointIdوqueryVariablesقبل الإرسال - طبّق معالجة مناسبة للأخطاء مع رسائل خطأ ملائمة
ترقية إصدارات endpoint
- أدرِج الترويسة
x-clickhouse-endpoint-upgradeمع تعيينها إلى1 - أدرِج الترويسة
x-clickhouse-endpoint-versionمع تعيينها إلى2
- دعم جميع تنسيقات ClickHouse
- إمكانات بث الاستجابة
- تحسينات في الأداء والوظائف
أمثلة
طلب بسيط
الإصدار 1
- cURL
- JavaScript
الإصدار 2
- GET (cURL)
- POST (cURL)
- JavaScript
الاستجابة
طلب مع متغيرات الاستعلام والإصدار 2 بتنسيق JSONCompactEachRow
- GET (cURL)
- POST (cURL)
- JavaScript
الاستجابة
طلب يستخدم مصفوفة في متغيرات الاستعلام لإدراج بيانات في جدول
- cURL
- JavaScript
طلب مع تعيين إعداد ClickHouse max_threads إلى 8
- GET (cURL)
- POST (cURL)
- JavaScript
أرسل الطلب وحلّل الاستجابة كتدفق
- TypeScript
الناتج
إدراج دفق من ملف في جدول
./samples/my_first_table_2024-07-11.csv بالمحتوى التالي: