استخدام عبارة INTO OUTFILE
أضِف عبارة INTO OUTFILE إلى استعلامك.
على سبيل المثال:
SELECT * FROM table INTO OUTFILE 'file'
بشكل افتراضي، يعتمد ClickHouse على امتداد اسم الملف لتحديد تنسيق الإخراج والضغط. على سبيل المثال، ستُصدَّر جميع الصفوف من nyc_taxi إلى nyc_taxi.parquet باستخدام تنسيق Parquet:
SELECT *
FROM nyc_taxi
INTO OUTFILE 'taxi_rides.parquet'
وسيكون الملف التالي ملفًا مضغوطًا مفصولًا بعلامات تبويب:
SELECT *
FROM nyc_taxi
INTO OUTFILE 'taxi_rides.tsv.gz'
إذا تعذّر على ClickHouse تحديد التنسيق من امتداد الملف، فسيكون تنسيق الإخراج الافتراضي لبيانات الإخراج هو TabSeparated. ولتحديد تنسيق الإخراج، استخدم عبارة FORMAT.
على سبيل المثال:
SELECT *
FROM nyc_taxi
INTO OUTFILE 'taxi_rides.txt'
FORMAT CSV
خيار آخر يتمثل في استخدام محرك الجدول File، حيث يستخدم ClickHouse الملف لتخزين البيانات. ويمكنك تنفيذ الاستعلامات وعمليات الإدراج مباشرةً على الملف.
على سبيل المثال:
CREATE TABLE my_table (
x UInt32,
y String,
z DateTime
)
ENGINE = File(Parquet)
أدرِج بضعة صفوف:
INSERT INTO my_table VALUES
(1, 'Hello', now()),
(2, 'World', now()),
(3, 'Goodbye', now())
يُخزَّن الملف في مجلد data على خادم ClickHouse لديك — وتحديدًا في /data/default/my_table داخل ملف باسم data.Parquet.
يُعد استخدام محرك الجدول File مفيدًا للغاية لإنشاء الملفات على نظام الملفات لديك والاستعلام عنها، ولكن تذكّر أن جداول File ليست من نوع MergeTree، لذلك لن تحصل على جميع المزايا التي يوفرها MergeTree. استخدم File لسهولة تصدير البيانات من ClickHouse بصيغ مناسبة.
استخدام إعادة التوجيه من سطر الأوامر
$ clickhouse-client --query "SELECT * from table" --format FormatName > result.txt
انظر clickhouse-client.