Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

كيف يمكنني تصدير بيانات MySQL إلى Parquet أو CSV أو JSON باستخدام ClickHouse

تصدير بيانات MySQL إلى Parquet أو CSV أو JSON باستخدام ClickHouse

تتيح أداة clickhouse-local قراءة البيانات من MySQL وإخراجها بسرعة وسهولة إلى العديد من التنسيقات المختلفة، بما في ذلك Parquet وCSV وJSON. سنقوم بما يلي:

  • استخدام دالة الجدول mysql لقراءة البيانات
  • استخدام عبارة INTO OUTFILE _filename_ FORMAT وتحديد تنسيق الإخراج المطلوب

تُعد أداة clickhouse-local جزءًا من الملف التنفيذي لـ ClickHouse. نزّلها باستخدام ما يلي:

curl https://clickhouse.com/ | sh

تصدير MySQL إلى Parquet

تنشئ دالة الجدول ‏mysql جدولًا استنادًا إلى نتائج query مُرسَل إلى مثيل MySQL. على سبيل المثال:

SELECT *
FROM
   mysql(
    'localhost:3306',
    'my_sql_database',
    'my_sql_table',
    'user',
    'password'
);

يمكننا توجيه مخرجات هذا query إلى ملف باستخدام INTO OUTFILE. استخدم FORMAT لتحديد تنسيق الملف المراد إنشاؤه. لنأخذ المحتوى الكامل لجدول في MySQL، ثم نرسل محتواه إلى ملف Parquet:

./clickhouse local -q "SELECT * FROM
   mysql(
    'localhost:3306',
    'my_sql_database',
    'my_sql_table',
    'user',
    'password'
)
INTO OUTFILE 'my_output_file.parquet'"

تصدير MySQL إلى CSV

الأمر مماثل لما يحدث مع Parquet، إلا أننا هذه المرة نستخدم الامتداد .csv في اسم الملف. سيتعرّف ClickHouse إلى أننا نريد مخرجات مفصولة بفواصل، وهكذا ستُكتب البيانات في الملف:

./clickhouse local -q "SELECT * FROM
   mysql(
    'localhost:3306',
    'my_sql_database',
    'my_sql_table',
    'user',
    'password'
)
INTO OUTFILE 'my_output_file.csv'"

تصدير MySQL إلى JSON

للتصدير من MySQL إلى JSON، ما عليك سوى تغيير امتداد اسم الملف إلى jsonl أو ndjson:

./clickhouse local -q "SELECT * FROM
   mysql(
    'localhost:3306',
    'my_sql_database',
    'my_sql_table',
    'user',
    'password'
)
INTO OUTFILE 'my_output_file.ndjson'"

من المثير للإعجاب مدى بساطة أداة clickhouse-local وقوتها في آنٍ واحد. يمكنك بسهولة قراءة البيانات من قاعدة بيانات مثل MySQL وتصديرها بأحد تنسيقات الإخراج المختلفة.

Navigation