الانتقال إلى المحتوى الرئيسي
هذا الدليل متوافق مع ClickHouse Cloud ومع ClickHouse المُستضاف ذاتيًا بالإصدار v23.5+. يوضح هذا الدليل كيفية ترحيل البيانات من BigQuery إلى ClickHouse. نبدأ بتصدير جدول إلى خدمة تخزين الكائنات من Google ‏(GCS)، ثم نستورد تلك البيانات إلى ClickHouse Cloud. يجب تكرار هذه الخطوات لكل جدول تريد تصديره من BigQuery إلى ClickHouse.

كم سيستغرق تصدير البيانات إلى ClickHouse؟

تعتمد مدة تصدير البيانات من BigQuery إلى ClickHouse على حجم مجموعة البيانات لديك. وللمقارنة، يستغرق تصدير مجموعة بيانات Ethereum العامة بحجم 4TB من BigQuery إلى ClickHouse باستخدام هذا الدليل حوالي ساعة.
1

تصدير بيانات الجدول إلى GCS

في هذه الخطوة، نستخدم مساحة عمل BigQuery SQL لتنفيذ أوامر SQL. في المثال أدناه، نُصدّر جدولًا في BigQuery باسم mytable إلى حاوية GCS باستخدام عبارة EXPORT DATA.
في الاستعلام أعلاه، نُصدِّر جدول BigQuery الخاص بنا إلى تنسيق بيانات Parquet. ولدينا أيضًا الحرف * في المعلمة uri. وهذا يضمن تقسيم الناتج إلى عدة ملفات، مع لاحقة رقمية متزايدة، إذا تجاوز التصدير 1GB من البيانات.لهذا النهج عدد من المزايا:
  • تتيح Google تصدير ما يصل إلى 50TB يوميًا إلى GCS مجانًا. ولا يدفع المستخدمون سوى مقابل تخزين GCS.
  • تُنتج عمليات التصدير ملفات متعددة تلقائيًا، مع تقييد كل ملف بحد أقصى قدره 1GB من بيانات الجدول. وهذا مفيد لـ ClickHouse لأنه يتيح تنفيذ عمليات الاستيراد بالتوازي.
  • يُعد Parquet، بوصفه تنسيقًا موجَّهًا بالأعمدة، تنسيقًا أفضل لتبادل البيانات لأنه مضغوط بطبيعته، كما أنه أسرع بالنسبة إلى BigQuery عند التصدير وClickHouse عند تنفيذ الاستعلامات
2

استيراد البيانات إلى ClickHouse من GCS

بمجرد اكتمال التصدير، يمكننا استيراد هذه البيانات إلى جدول في ClickHouse. يمكنك استخدام وحدة تحكم ClickHouse SQL أو clickhouse-client لتنفيذ الأوامر أدناه.يجب أولاً إنشاء الجدول في ClickHouse:
بعد إنشاء الجدول، فعِّل الإعداد parallel_distributed_insert_select إذا كان لديك عدة نُسخ متماثلة من ClickHouse في الـcluster لتسريع عملية التصدير. وإذا كانت لديك عقدة ClickHouse واحدة فقط، فيمكنك تخطي هذه الخطوة:
أخيرًا، يمكننا إدراج البيانات من GCS في جدول ClickHouse باستخدام أمر INSERT INTO SELECT، الذي يُدرج البيانات في جدول استنادًا إلى نتائج استعلام SELECT.لاسترجاع البيانات من أجل INSERT، يمكننا استخدام دالة s3Cluster لجلب البيانات من حاوية GCS، لأن GCS متوافق مع Amazon S3. إذا كانت لديك عقدة ClickHouse واحدة فقط، فيمكنك استخدام دالة الجدول S3 بدلًا من الدالة s3Cluster.
يمثل كلٌّ من ACCESS_ID وSECRET المستخدمَين في الاستعلام أعلاه مفتاح HMAC المرتبط بحاوية GCS الخاصة بك.
استخدم ifNull عند تصدير الأعمدة من النوع Nullableفي الاستعلام أعلاه، نستخدم الدالة ifNull مع العمود some_text لإدراج البيانات في جدول ClickHouse مع قيمة افتراضية. يمكنك أيضًا جعل أعمدتك في ClickHouse من النوع Nullable، لكن لا يُنصح بذلك لأنه قد يؤثر سلبًا في الأداء.بدلاً من ذلك، يمكنك ضبط SET input_format_null_as_default=1، وعندها ستُستبدل أي قيم مفقودة أو NULL بالقيم الافتراضية للأعمدة المقابلة، إذا كانت تلك القيم الافتراضية محددة.
3

اختبار نجاح تصدير البيانات

لاختبار ما إذا كانت بياناتك قد أُدرجت بشكل صحيح، ما عليك سوى تنفيذ استعلام SELECT على جدولك الجديد:
لتصدير المزيد من جداول BigQuery، ما عليك سوى تكرار الخطوات أعلاه لكل جدول إضافي.

لمزيد من القراءة والدعم

إلى جانب هذا الدليل، نوصي أيضًا بقراءة تدوينة المدونة التي توضّح كيفية استخدام ClickHouse لتسريع BigQuery وكيفية التعامل مع عمليات الاستيراد المتزايدة. إذا كنت تواجه مشكلات في نقل البيانات من BigQuery إلى ClickHouse، فلا تتردد في التواصل معنا عبر support@clickhouse.com.
آخر تعديل في ٢ يوليو ٢٠٢٦