| إدخال | إخراج | اسم بديل |
|---|---|---|
| ✔ | ✔ |
الوصف
JSONEachRow.
مثال للاستخدام
مثال بسيط
format_json_object_each_row_column_for_object_name.
تُعيَّن قيمة هذا الإعداد إلى اسم عمود، ويُستخدم هذا الاسم كمفتاح JSON للصف في الكائن الناتج.
المخرجات
test ويحتوي على عمودين:
JSONObjectEachRow ونستخدم الإعداد format_json_object_each_row_column_for_object_name:
Query
Response
الإدخال
data.json:
Query
Response
Query
Response
إدخال البيانات
Query
- أي ترتيب لأزواج المفتاح والقيمة داخل الكائن.
- حذف بعض القيم.
معالجة القيم المحذوفة
DEFAULT expr، يستخدم ClickHouse قواعد استبدال مختلفة وفقًا للإعداد input_format_defaults_for_omitted_fields.
تأمل الجدول التالي:
Query
- إذا كانت
input_format_defaults_for_omitted_fields = 0، فإن القيمة الافتراضية لكلٍّ منxوaهي0(لأنها القيمة الافتراضية لنوع البياناتUInt32). - إذا كانت
input_format_defaults_for_omitted_fields = 1، فإن القيمة الافتراضية لـxهي0، لكن القيمة الافتراضية لـaهيx * 2.
عند إدراج البيانات باستخدام
input_format_defaults_for_omitted_fields = 1، يستهلك ClickHouse موارد حوسبة أكبر مقارنةً بالإدراج باستخدام input_format_defaults_for_omitted_fields = 0.استعلام البيانات
UserActivity مثالًا:
SELECT * FROM UserActivity FORMAT JSONEachRow ما يلي:
JSON.
يمكن إخراج أي مجموعة من البايتات في السلاسل النصية. استخدم تنسيق
JSONEachRow إذا كنت متأكدًا من أن البيانات الموجودة في الجدول يمكن تنسيقها بصيغة JSON من دون فقدان أي معلومات.استخدام البُنى Nested
Nested، فيمكنك إدراج بيانات JSON بالبنية نفسها. فعِّل هذه الميزة باستخدام الإعداد input_format_import_nested_json.
على سبيل المثال، تأمل الجدول التالي:
Query
Nested، يتعامل ClickHouse مع كل مكوّن من البنية المتداخلة على أنه عمود منفصل (n.s و n.i في جدولنا). يمكنك إدراج البيانات بالطريقة التالية:
Query
input_format_import_nested_json=1.
Query
Response
Query
Response
Query
Response
إعدادات التنسيق
| الإعداد | الوصف | القيمة الافتراضية | ملاحظات |
|---|---|---|---|
input_format_import_nested_json | ربط بيانات JSON المتداخلة بالجداول المتداخلة (يعمل ذلك مع تنسيق JSONEachRow). | false | |
input_format_json_read_bools_as_numbers | السماح بقراءة القيم المنطقية كأرقام في تنسيقات إدخال JSON. | true | |
input_format_json_read_bools_as_strings | السماح بتفسير القيم المنطقية على أنها سلاسل نصية في تنسيقات إدخال JSON. | true | |
input_format_json_read_numbers_as_strings | السماح بتفسير الأرقام على أنها سلاسل نصية في تنسيقات إدخال JSON. | true | |
input_format_json_read_arrays_as_strings | السماح بتفسير مصفوفات JSON على أنها سلاسل نصية في تنسيقات إدخال JSON. | true | |
input_format_json_read_objects_as_strings | السماح بتفسير كائنات JSON على أنها سلاسل نصية في تنسيقات إدخال JSON. | true | |
input_format_json_named_tuples_as_objects | تحليل أعمدة named tuple على أنها كائنات JSON. | true | |
input_format_json_try_infer_numbers_from_strings | محاولة استنتاج الأرقام من الحقول النصية أثناء استنتاج المخطط. | false | |
input_format_json_try_infer_named_tuples_from_objects | محاولة استنتاج named tuple من كائنات JSON أثناء استنتاج المخطط. | true | |
input_format_json_infer_incomplete_types_as_strings | استخدم النوع String للمفاتيح التي لا تحتوي أثناء استدلال المخطط في تنسيقات إدخال JSON إلا على قيم NULL أو كائنات/مصفوفات فارغة. | true | |
input_format_json_defaults_for_missing_elements_in_named_tuple | أدرِج القيم الافتراضية للعناصر المفقودة في كائن JSON أثناء تحليل named tuple. | true | |
input_format_json_ignore_unknown_keys_in_named_tuple | تجاهل المفاتيح غير المعروفة في كائن JSON للـ named Tuples. | false | |
input_format_json_compact_allow_variable_number_of_columns | السماح بعدد متغيّر من الأعمدة في تنسيق JSONCompact/JSONCompactEachRow، مع تجاهل الأعمدة الإضافية واستخدام القيم الافتراضية للأعمدة المفقودة. | false | |
input_format_json_throw_on_bad_escape_sequence | إطلاق استثناء إذا كانت سلسلة JSON تحتوي على تسلسل إفلات غير صالح. وإذا كان هذا الخيار معطّلاً، فستبقى تسلسلات الإفلات غير الصالحة كما هي في البيانات. | true | |
input_format_json_empty_as_default | اعتبار الحقول الفارغة في إدخال JSON قيماً افتراضية. | false. | بالنسبة إلى التعبيرات الافتراضية المعقدة، يجب أيضًا تفعيل input_format_defaults_for_omitted_fields. |
output_format_json_quote_64bit_integers | يتحكم في إحاطة الأعداد الصحيحة ذات 64 بت بعلامات اقتباس في تنسيق إخراج JSON. | true | |
output_format_json_quote_64bit_floats | يتحكم في إحاطة الأعداد ذات الفاصلة العائمة 64 بت بعلامات اقتباس في تنسيق إخراج JSON. | false | |
output_format_json_quote_denormals | يُمكّن إخراج القيم ‘+nan’ و’-nan’ و’+inf’ و’-inf’ في تنسيق إخراج JSON. | false | |
output_format_json_quote_decimals | يتحكم في وضع القيم العشرية بين علامتَي اقتباس في تنسيق إخراج JSON. | false | |
output_format_json_escape_forward_slashes | يتحكم في تهريب الشرطات المائلة للأمام في مخرجات السلاسل النصية ضمن تنسيق إخراج JSON. | true | |
output_format_json_named_tuples_as_objects | يُسلسِل أعمدة named tuple ككائنات JSON. | true | |
output_format_json_array_of_rows | يُخرج مصفوفة JSON تضم جميع الصفوف بتنسيق JSONEachRow(Compact). | false | |
output_format_json_validate_utf8 | يُمكّن من التحقق من تسلسلات UTF-8 في تنسيقات إخراج JSON (لاحظ أن هذا لا يؤثر في التنسيقات JSON/JSONCompact/JSONColumnsWithMetadata، إذ تتحقق هذه التنسيقات دائمًا من UTF-8). | false |