Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

محرك جدول ArrowFlight

يُمكّن محرك جدول 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 *.

انظر أيضًا

Navigation