الانتقال إلى المحتوى الرئيسي
تتيح لك ميزة نقاط نهاية واجهة برمجة تطبيقات الاستعلام إنشاء نقطة نهاية API مباشرةً من أي استعلام SQL محفوظ في وحدة تحكم ClickHouse Cloud. وستتمكن من الوصول إلى نقاط نهاية API عبر HTTP لتنفيذ استعلاماتك المحفوظة دون الحاجة إلى الاتصال بخدمة ClickHouse Cloud الخاصة بك باستخدام برنامج تشغيل أصلي.

المتطلبات المسبقة

قبل المتابعة، تأكد من توفر ما يلي لديك:
  • مفتاح API بالأذونات المناسبة
  • دور Admin في Console
يمكنك اتباع هذا الدليل لإنشاء مفتاح API إذا لم يكن لديك مفتاح بعد.
الحد الأدنى من الأذوناتللاستعلام عن نقطة نهاية API، يجب أن يكون لمفتاح API دور organization Member مع إذن وصول الخدمة Query Endpoints. يُهيَّأ دور قاعدة البيانات عند إنشاء نقطة النهاية.
1

أنشئ استعلامًا محفوظًا

إذا كان لديك استعلام محفوظ، فيمكنك تخطي هذه الخطوة.افتح علامة تبويب استعلام جديدة. لأغراض العرض التوضيحي، سنستخدم youtube dataset، التي تحتوي على نحو 4.5 مليار سجل. اتبع الخطوات الواردة في قسم “Create table” لإنشاء الجدول على خدمة Cloud الخاصة بك وإدراج البيانات فيه.
استخدم LIMIT لتحديد عدد الصفوفيُدرج شرح مجموعة بيانات المثال كمية كبيرة من البيانات — 4.65 مليار صف، وقد يستغرق إدراجها بعض الوقت. ولهذا الدليل، نوصي باستخدام العبارة LIMIT لإدراج كمية أصغر من البيانات، مثلًا 10 ملايين صف.
كمثال على استعلام، سنعرض أفضل 10 uploaders حسب متوسط عدد المشاهدات لكل فيديو، ضمن query parameter باسم year يُدخله المستخدم.
لاحظ أن هذا الاستعلام يحتوي على parameter (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)
بعد اختيار هذه الخيارات، سيتم provision الـ نقطة نهاية واجهة برمجة تطبيقات الاستعلام تلقائيًا.سيُعرض مثال لأمر curl حتى تتمكن من إرسال طلب اختبار:يرد أمر curl المعروض في الواجهة أدناه للتيسير:
3

معاملات Query API

يمكن تحديد query parameters في الاستعلام باستخدام الصياغة {parameter_name: type}. سيجري اكتشاف هذه المعاملات تلقائيًا، وستتضمن حمولة طلب المثال كائن queryVariables يمكنك من خلاله تمرير هذه المعاملات.
4

الاختبار والمراقبة

بمجرد إنشاء نقطة نهاية واجهة برمجة تطبيقات الاستعلام، يمكنك اختباره باستخدام curl أو أي HTTP client آخر:بعد إرسال أول طلب، من المفترض أن يظهر زر جديد مباشرةً إلى يمين الزر Share. سيؤدي النقر عليه إلى فتح flyout يحتوي على بيانات المراقبة الخاصة بالاستعلام:

تفاصيل التنفيذ

تُنفِّذ نقطة النهاية هذه الاستعلامات على نقاط نهاية واجهة برمجة تطبيقات الاستعلام المحفوظة لديك. وهي تدعم إصدارات متعددة، وتنسيقات استجابة مرنة، واستعلامات ذات معلمات، واستجابات متدفقة اختيارية (الإصدار 2 فقط). نقطة النهاية:

أساليب HTTP

متى تستخدم GET:
  • استعلامات بسيطة من دون بيانات متداخلة معقدة
  • يمكن ترميز المعلمات بسهولة في URL
  • يستفيد التخزين المؤقت من دلالات HTTP GET
متى تستخدم POST:
  • متغيرات استعلام معقدة (مصفوفات، كائنات، سلاسل نصية كبيرة)
  • عندما يكون محتوى الطلب مفضّلًا لأسباب تتعلق بالأمان أو الخصوصية
  • تحميل الملفات المتدفّق أو البيانات الكبيرة

المصادقة

مطلوب: نعم الطريقة: مصادقة أساسية باستخدام مفتاح/سر OpenAPI الأذونات: الأذونات المناسبة لنقطة نهاية الاستعلام

تهيئة الطلب

معلمات عنوان URL

معلمات الاستعلام

الترويسات


جسم الطلب

المعلمات

التنسيقات المدعومة


الاستجابات

نجاح

الحالة: 200 OK تم تنفيذ الاستعلام بنجاح.

رموز الخطأ

أفضل الممارسات لمعالجة الأخطاء

  • تأكد من تضمين بيانات اعتماد مصادقة صالحة في الطلب
  • تحقّق من صحة queryEndpointId وqueryVariables قبل الإرسال
  • طبّق معالجة مناسبة للأخطاء مع رسائل خطأ ملائمة

ترقية إصدارات endpoint

للترقية من الإصدار 1 إلى الإصدار 2:
  1. أدرِج الترويسة x-clickhouse-endpoint-upgrade مع تعيينها إلى 1
  2. أدرِج الترويسة x-clickhouse-endpoint-version مع تعيينها إلى 2
يؤدي ذلك إلى إتاحة الوصول إلى ميزات الإصدار 2، بما في ذلك:
  • دعم جميع تنسيقات ClickHouse
  • إمكانات بث الاستجابة
  • تحسينات في الأداء والوظائف

أمثلة

طلب بسيط

استعلام SQL الخاص بـ نقطة نهاية واجهة برمجة تطبيقات الاستعلام:

الإصدار 1

الإصدار 2

الاستجابة

طلب مع متغيرات الاستعلام والإصدار 2 بتنسيق JSONCompactEachRow

SQL الخاص بنقطة نهاية واجهة برمجة تطبيقات الاستعلام:
الاستجابة

طلب يستخدم مصفوفة في متغيرات الاستعلام لإدراج بيانات في جدول

تعليمة SQL للجدول:
‏SQL لنقطة نهاية واجهة برمجة تطبيقات الاستعلام:

طلب مع تعيين إعداد ClickHouse max_threads إلى 8

SQL الخاص بـ نقطة نهاية واجهة برمجة تطبيقات الاستعلام:

أرسل الطلب وحلّل الاستجابة كتدفق

SQL الخاص بنقطة نهاية واجهة برمجة تطبيقات الاستعلام:
الناتج

إدراج دفق من ملف في جدول

أنشئ ملفًا باسم ./samples/my_first_table_2024-07-11.csv بالمحتوى التالي:
صيغة SQL للأمر CREATE TABLE:
عبارة SQL الخاصة بـ نقطة نهاية واجهة برمجة تطبيقات الاستعلام:
آخر تعديل في ٢ يوليو ٢٠٢٦