المقدمة
توفّر هذه المكتبة امتدادات PostgreSQL لتنفيذ استعلامات chDB داخل Postgres، ولنسخ البيانات من وإلى مجموعة متنوعة من التنسيقات ومخازن الكائنات.امتداد chdb
يُشغّل امتدادchdb استعلامات chDB. وتُنفّذ الدالة chdb_query() استعلامًا
واحدًا. على سبيل المثال، هذا الاستعلام:
وحدة chdb_hook
ترتبط وحدةchdb_hook بأمر COPY عبر خطاف لنسخ البيانات من أو إلى S3 أو GCS أو Azure Blob أو ملف أو عنوان URL عبر http. يحمّل هذا المثال السجلات من
عدة ملفات CSV على S3 بأمر COPY واحد:
times على السجلات الواردة من كل ملف تم تحميله:
قياس أداء التنسيقات
يقارن benchmark أداءCOPY في [chdb_hook] بأداء
[aws_s3] و[pg_duckdb] و[pg_lake] لنحو مليون صف من NYC Taxi dataset بمجموعة
متنوعة من التنسيقات.

وتُظهر قياسات الأداء الإضافية ثباتًا نسبيًا في الأداء عند
استيراد NYC Taxi dataset بمجموعة متنوعة من التنسيقات:

المعمارية
يعتمد امتدادا chdb و chdb_hook على عمليةchdb_helper لتنفيذ استعلامات
chDB. وتُبقي هذه العملية المساعدة استهلاك chDB للموارد منفصلًا
عن عملية Postgres الرئيسية، وهي ميزة مفيدة في سير عمل لا يُستخدم إلا من حين لآخر
مثل تحميل البيانات من data lake.
التبعيات
يتطلب امتدادchdb إصدار PostgreSQL 15 أو أحدث، ومكتبة chDB
بالإصدار v26.7.0 أو أحدث (المتوفرة حاليًا لنظامي Linux وmacOS فقط). وأبسط
طريقة لتثبيتها هي باستخدام البرنامج النصي لـ shell من lib.chdb.io:
make الخاصة بـالتثبيت.
Makefile بتنزيل مكتبة libchdb الثابتة (static) وترجمتها داخل التطبيق.
على Linux، يمكنك أيضاً جعل عملية التثبيت تنزّل مكتبة libchdb الديناميكية وتثبّتها، وذلك بتعيين export BUNDLE_LIBCHDB=1 قبل تشغيل أوامر make الخاصة بـ التثبيت.
البناء من المصدر
لبناء chdb، نفّذ ما يلي فقط:gmake:
pg_config مثبَّت ومتاح في مسار البحث (PATH) لديك. وإذا استخدمت نظام إدارة حزم مثل RPM لتثبيت PostgreSQL، فتأكد من تثبيت حزمة -devel أيضًا. وإذا لزم الأمر، حدِّد لعملية البناء مكان العثور عليه:
/usr/local:
prefix إلى install (وليس إلى أي أهداف make أخرى):
postgresql.conf
parameters التالية: