المتطلبات المسبقة
- مفتاح API بالأذونات المناسبة
- دور Admin في Console
الحد الأدنى من الأذوناتللاستعلام عن نقطة نهاية API، يجب أن يكون لمفتاح API دور organization
Member مع إذن وصول الخدمة Query Endpoints. يُهيَّأ دور قاعدة البيانات عند إنشاء نقطة النهاية.1
أنشئ استعلامًا محفوظًا
إذا كان لديك استعلام محفوظ، فيمكنك تخطي هذه الخطوة.افتح علامة تبويب استعلام جديدة. لأغراض العرض التوضيحي، سنستخدم youtube dataset، التي تحتوي على نحو 4.5 مليار سجل. اتبع الخطوات الواردة في قسم “Create table” لإنشاء الجدول على خدمة Cloud الخاصة بك وإدراج البيانات فيه.كمثال على استعلام، سنعرض أفضل 10 uploaders حسب متوسط عدد المشاهدات لكل فيديو، ضمن query parameter باسمyear يُدخله المستخدم.year) مميز في المقتطف أعلاه.
يمكنك تحديد query parameters باستخدام { } مع نوع الـ parameter.
يكتشف محرر الاستعلام في SQL Console تلقائيًا تعبيرات query parameter في ClickHouse ويوفّر حقل إدخال لكل parameter.لنشغّل هذا الاستعلام سريعًا للتأكد من أنه يعمل، وذلك بتحديد السنة 2010 في مربع إدخال query variables على الجانب الأيمن من محرر SQL:بعد ذلك، احفظ الاستعلام:يمكن العثور على مزيد من الوثائق حول استعلام محفوظ في قسم “Saving a query”.2
تهيئة نقطة نهاية واجهة برمجة تطبيقات الاستعلام
يمكن تهيئة نقاط نهاية واجهة برمجة تطبيقات الاستعلام مباشرةً من عرض الاستعلام بالنقر على الزر Share ثم اختيارAPI Endpoint.
سيُطلب منك تحديد API keys التي يجب أن تتمكن من الوصول إلى الـ endpoint:بعد اختيار API key، سيُطلب منك:- تحديد دور قاعدة البيانات الذي سيُستخدم لتشغيل الاستعلام (
Full accessأوRead onlyأوCreate a custom role) - تحديد النطاقات المسموح بها لمشاركة الموارد عبر المصادر المختلفة (CORS)
curl حتى تتمكن من إرسال طلب اختبار:يرد أمر curl المعروض في الواجهة أدناه للتيسير:3
معاملات Query API
يمكن تحديد query parameters في الاستعلام باستخدام الصياغة{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 بالمحتوى التالي: