المتطلبات المسبقة
يجب أيضًا أن تكون قد أكملت أدلة البدء السريع التالية:
- البدء السريع مع ClickHouse Cloud - ستحتاج إلى خدمة ClickHouse Cloud قيد التشغيل لإدراج البيانات فيها
- احصل على تفاصيل الاتصال بـ Cloud - ستحتاج إلى اسم المضيف واسم المستخدم وكلمة المرور للاتصال
ما ستبنيه
في هذا الدليل السريع، ستستخدم clickhouse-client — عميل ClickHouse CLI الرسمي — لإدخال بيانات من ملف CSV محلي إلى خدمة ClickHouse Cloud. ستثبّت clickhouse-client، وتُحضّر مجموعة بيانات تجريبية، وتتصل بخدمة Cloud الخاصة بك، وتنشئ جدولًا، ثم تُدخل البيانات من جهازك المحلي. وفي نهاية هذا الدليل، ستعرف كيفية استخدام clickhouse-client لتحميل الملفات المحلية إلى ClickHouse Cloud، وهو سير عمل يدعم CSV وParquet وJSON والعديد من التنسيقات الأخرى.
تثبيت clickhouse-client
يُعد clickhouse-client واجهة CLI الرسمية للاتصال بـ ClickHouse، وهو مُضمَّن في الملف التنفيذي لـ ClickHouse.
ثبّته باستخدام المُثبّت العام:
curl https://clickhouse.com/ | shسيؤدي هذا إلى تنزيل أحدث ملف تنفيذي clickhouse إلى الدليل الحالي. تحقّق من التثبيت:
./clickhouse client --versionمن المفترض أن يظهر لك ناتج يعرض رقم إصدار ClickHouse، مما يؤكد أن clickhouse-client جاهز للاستخدام.
جهّز ملف CSV نموذجيًا صغيرًا
أنشئ ملف CSV نموذجيًا صغيرًا حتى يكون هذا الدليل التمهيدي السريع مكتفيًا بذاته. شغّل ما يلي في الطرفية:
cat <<'EOF' > sample_data.csv
timestamp,event_type,user_id,duration_ms,status
2024-01-15 10:30:00,page_view,1001,120,success
2024-01-15 10:31:15,click,1002,45,success
2024-01-15 10:32:00,page_view,1003,200,success
2024-01-15 10:33:30,purchase,1001,1500,success
2024-01-15 10:34:00,click,1004,60,error
2024-01-15 10:35:45,page_view,1002,95,success
2024-01-15 10:36:10,purchase,1005,2200,success
2024-01-15 10:37:00,click,1003,30,success
2024-01-15 10:38:20,page_view,1004,150,error
2024-01-15 10:39:00,purchase,1002,1800,success
EOFاتصل بخدمة Cloud الخاصة بك
تفترض الأوامر أدناه أنك صدّرت CLICKHOUSE_HOST وCLICKHOUSE_USER وCLICKHOUSE_PASSWORD كمتغيرات بيئة، كما هو موضح في الدليل السريع الحصول على تفاصيل اتصال Cloud الخاصة بك. وإذا لم تكن قد فعلت ذلك، فيمكنك استبدالها بقيمك مباشرةً.
اختبر الاتصال من خلال تشغيل استعلام بسيط على خدمة Cloud الخاصة بك:
./clickhouse client \
--host $CLICKHOUSE_HOST \
--port 9440 \
--user $CLICKHOUSE_USER \
--password $CLICKHOUSE_PASSWORD \
--secure \
-q "SELECT 1"إذا نجح الاتصال، فسترى القيمة 1 مطبوعة في الطرفية. وإذا ظهر خطأ في الاتصال، فتحقّق من أن خدمتك تعمل في Cloud Console وأن اسم المضيف وكلمة المرور صحيحان.
أنشئ جدولًا مستهدفًا وأدرج البيانات
أولًا، أنشئ جدولًا على خدمة Cloud لديك لاستقبال البيانات:
./clickhouse client \
--host $CLICKHOUSE_HOST \
--port 9440 \
--user $CLICKHOUSE_USER \
--password $CLICKHOUSE_PASSWORD \
--secure \
-q "
CREATE TABLE IF NOT EXISTS events (
timestamp DateTime,
event_type LowCardinality(String),
user_id UInt32,
duration_ms UInt32,
status LowCardinality(String)
)
ENGINE = MergeTree
ORDER BY (event_type, timestamp)
"الآن أدخِل البيانات من ملف CSV المحلي لديك. هذه هي الخطوة الأساسية - يقرأ clickhouse-client الملف من stdin ويُرسله كتدفّق إلى الخدمة البعيدة:
./clickhouse client \
--host $CLICKHOUSE_HOST \
--port 9440 \
--user $CLICKHOUSE_USER \
--password $CLICKHOUSE_PASSWORD \
--secure \
-q "INSERT INTO events FORMAT CSVWithNames" < sample_data.csvيرسل clickhouse-client محتويات ملف CSV مباشرةً إلى خدمة Cloud الخاصة بك. ويُخبر تنسيق CSVWithNames ClickHouse بأن الصف الأول يحتوي على أسماء الأعمدة.
تحقّق من أنه تم إدراج البيانات
نفّذ استعلامًا على خدمة Cloud الخاصة بك للتأكد من وصول الصفوف:
./clickhouse client \
--host $CLICKHOUSE_HOST \
--port 9440 \
--user $CLICKHOUSE_USER \
--password $CLICKHOUSE_PASSWORD \
--secure \
-q "SELECT count() FROM events"ينبغي أن يظهر لك 10، وهو عدد الصفوف في ملف CSV التجريبي.
عاين البيانات:
./clickhouse client \
--host $CLICKHOUSE_HOST \
--port 9440 \
--user $CLICKHOUSE_USER \
--password $CLICKHOUSE_PASSWORD \
--secure \
-q "SELECT * FROM events ORDER BY timestamp LIMIT 5"يعمل سير العمل نفسه مع Parquet وTSV وJSON وAvro وORC والعديد من التنسيقات المدعومة الأخرى - ما عليك سوى تغيير بند FORMAT وتمرير الملف المناسب.
الخطوات التالية
في هذا الدليل السريع، ثبّت clickhouse-client، ووصلته بخدمة ClickHouse Cloud، واستخدمته لتمرير البيانات من ملف CSV محلي إلى Cloud. وتعمل هذه الطريقة نفسها مع Parquet وJSON وعشرات التنسيقات الأخرى.
اطّلع بعد ذلك على أدلة البدء السريع التالية:
أو تعمّق أكثر من خلال الوثائق المرجعية:
