الانتقال إلى المحتوى الرئيسي
يُمكّن محرك جدول ArrowFlight في ClickHouse من القراءة من مجموعات البيانات البعيدة والكتابة إليها عبر بروتوكول Apache Arrow Flight. ويتيح هذا التكامل لـ ClickHouse التفاعل مع الخوادم الخارجية الداعمة لـ Flight بتنسيق Arrow عمودي وبأداء عالٍ.

إنشاء جدول

CREATE TABLE [IF NOT EXISTS] [db.]table_name (name1 [type1], name2 [type2], ...)
    ENGINE = ArrowFlight('host:port', 'dataset_name' [, 'username', 'password']);
معلمات المحرّك
  • host:port — عنوان خادم Arrow Flight البعيد. إذا لم يُحدَّد المنفذ، فسيُستخدم المنفذ الافتراضي 8815. String.
  • dataset_name — معرّف مجموعة البيانات على خادم Flight (يُستخدم كواصف PATH أو في استعلام SELECT *، بحسب الإعداد arrow_flight_request_descriptor_type). String.
  • username — اسم المستخدم لمصادقة HTTP الأساسية. String.
  • password — كلمة المرور لمصادقة HTTP الأساسية. String.
إذا لم يتم تحديد username وpassword، فلن تُستخدم المصادقة (ولا يعمل ذلك إلا إذا كان خادم Arrow Flight يسمح بالوصول من دون مصادقة). قائمة الأعمدة اختيارية — إذا لم تُحدَّد، فسيُستنتج المخطط من خادم Arrow Flight البعيد عبر GetSchema.

المجموعات المُسمّاة

يدعم المحرّك المجموعات المُسمّاة لتخزين معلمات الاتصال:
CREATE TABLE remote_flight_data
    ENGINE = ArrowFlight(named_collection_name);
معلمات المجموعة المسماة:
المعلمةمطلوبالافتراضيالوصف
host or hostnameلا""اسم مضيف الخادم.
portنعممنفذ الخادم.
datasetنعماسم مجموعة البيانات أو الواصف.
use_basic_authenticationلاtrueتمكين المصادقة الأساسية.
user or usernameإذا كانت المصادقة مفعّلةاسم المستخدم للمصادقة.
passwordلا""كلمة المرور للمصادقة.
enable_sslلاfalseتمكين تشفير TLS.
ssl_caلا""مسار ملف شهادة CA المستخدمة للتحقق عبر TLS.
ssl_override_hostnameلا""تجاوز اسم المضيف الذي يجري التحقق منه أثناء التحقق عبر TLS.

الإعدادات

  • arrow_flight_request_descriptor_type — يتحكّم في كيفية إرسال اسم مجموعة البيانات إلى خادم Flight. القيم المحتملة: path (الافتراضي، ويُرسَل على هيئة واصف PATH) أو command (ويُرسَل على هيئة واصف CMD مع SELECT * FROM <dataset>). استخدم command مع خوادم Flight التي تتوقع أوامر SQL (مثل Dremio).

مثال على الاستخدام

قراءة البيانات من خادم Arrow Flight بعيد:
CREATE TABLE remote_flight_data
(
    id UInt32,
    name String,
    value Float64
) ENGINE = ArrowFlight('127.0.0.1:9005', 'sample_dataset');

SELECT * FROM remote_flight_data ORDER BY id;
┌─id─┬─name────┬─value─┐
│  1 │ foo     │ 42.1  │
│  2 │ bar     │ 13.3  │
│  3 │ baz     │ 77.0  │
└────┴─────────┴───────┘
إدراج البيانات في خادم Arrow Flight البعيد:
INSERT INTO remote_flight_data VALUES (4, 'qux', 99.9);

ملاحظات

  • إذا جرى تحديد الأعمدة في عبارة CREATE TABLE، فيجب أن تتطابق مع المخطط الذي يعيده خادم Flight.
  • إذا لم تُحدَّد الأعمدة، فسيُستنتَج المخطط تلقائيًا من الخادم البعيد.
  • كلٌّ من القراءة (SELECT) والكتابة (INSERT) مدعومان.
  • يتحكم الإعداد arrow_flight_request_descriptor_type في ما إذا كان اسم مجموعة البيانات يُرسَل كواصف PATH أو كواصف CMD يتضمّن استعلام SELECT *.

انظر أيضًا

آخر تعديل في ٢٩ يونيو ٢٠٢٦