الانتقال إلى المحتوى الرئيسي

الوصف

يقرأ HiveText تنسيق التسلسل النصي المستخدم في جداول Apache Hive (وهو التنسيق الذي ينتجه LazySimpleSerDe في Hive). وهو تنسيق نصي مفصول بمحددات، يشبه CSV، وتُفصل فيه الحقول باستخدام محدد Hive الافتراضي \x01 (Ctrl-A). ويمكن تهيئة محدد الحقول عبر input_format_hive_text_fields_delimiter. يُعد HiveText تنسيقًا للإدخال فقط. ولا تحتوي البيانات على صف ترويسة: إذ تُسنَد القيم موضعيًا إلى أعمدة الجدول الوجهة، لذلك تُؤخذ أسماء الأعمدة وأنواعها من الجدول (أو من البنية المقدَّمة صراحةً) بدلًا من استنتاجها من البيانات. وأثناء القراءة، يعالج ClickHouse التواريخ والأوقات في وضع أفضل جهد (راجع date_time_input_format)، ويملأ الحقول اللاحقة المحذوفة بالقيم الافتراضية للأعمدة، ويتجاوز الحقول التي لا يتعرف عليها. داخل الحقل، تُحلَّل القيم باستخدام قواعد الإفلات نفسها الخاصة بـ CSV بدلًا من محددات Hive المتداخلة. وعلى وجه الخصوص، يُقرأ العمود من النوع Array من التمثيل المحاط بأقواس (على سبيل المثال، "['a','b','c']")، وليس من القيم المفصولة بمحدد مجموعة Hive وهو \x02.
إعدادات المحددات المتداخلة ليس لها أي تأثيريتم قبول الإعدادين input_format_hive_text_collection_items_delimiter و input_format_hive_text_map_keys_delimiter لأغراض التوافق، لكن لا يُستخدمان حاليًا أثناء التحليل.
بشكل افتراضي، يُسمح بأن تحتوي الصفوف على عدد متغير من الحقول (راجع input_format_hive_text_allow_variable_number_of_columns): تُملأ الأعمدة المفقودة بالقيم الافتراضية في الصفوف التي تحتوي على حقول أقل من عدد حقول الجدول، وتُتجاوز الحقول الزائدة اللاحقة في الصفوف التي تحتوي على حقول إضافية.

مثال على الاستخدام

تستخدم الأمثلة أدناه input_format_hive_text_fields_delimiter لاستبدال محدد الحقول الافتراضي بفاصلة (,) حتى تكون ملفات الإدخال أسهل قراءةً.

قراءة ملف HiveText

لنفترض وجود ملف hive_data.txt يحتوي على حقول مفصولة بفواصل:
hive_data.txt
ننشئ جدولًا يحدّد أسماء الأعمدة وأنواعها، ثم نُدخل الملف فيه باستخدام FORMAT HiveText:
Query
Response
لاحظ أن الصف الأول، 1,3، يحتوي على حقلين فقط، لذا يُملأ العمود المفقود c بقيمةِه الافتراضية 0.

عدد متغيّر من الأعمدة

مع الإعداد الافتراضي input_format_hive_text_allow_variable_number_of_columns = 1، فإن الصفوف التي تحتوي على حقول أكثر مما يحتويه الجدول تُتخطّى فيها ببساطة الحقول الزائدة في النهاية:
hive_extras.txt
Query
Response
يؤدي تعيين input_format_hive_text_allow_variable_number_of_columns = 0 بدلًا من ذلك إلى فرض عدد صارم من الحقول، ويؤدي وجود صف بعدد حقول أقل من عدد حقول الجدول إلى حدوث استثناء أثناء التحليل.

إعدادات التنسيق

آخر تعديل في ٢٥ يونيو ٢٠٢٦