aggregate_function_input_format
كيفية قراءة صيغ الإدخال للأعمدة من النوعAggregateFunction.
القيم الممكنة:
state— الحالة المُسلسَلة للدالة التجميعية، بالشكل الذي تكتبها به تنسيقات الإخراج (القيمة الافتراضية).value— قيمة وسيطة الدالة التجميعية، أو tuple من الوسائط إن كانت متعددة. تُجمَّع القيمة لتكوين الحالة.array— مصفوفة من القيم، كما هو موضّح في الخيارvalueأعلاه. تُجمَّع جميع عناصر المصفوفة لتكوين الحالة.
value وarray تقرأ الصيغة العمود كما لو كان من نوع القيم نفسها: T في حالة AggregateFunction(f, T)، وTuple(T1, T2) في حالة AggregateFunction(f, T1, T2)، أو Array منه في وضع array. وتُكتب القيم بالتمثيل الذي تستخدمه الصيغة لذلك النوع: رقم أو سلسلة نصية في الصيغ النصية، ومصفوفة JSON في صيغ JSON، والترميز الثنائي للنوع في RowBinary أو Native، وعمود من ذلك النوع في Parquet، وهكذا. وينطبق هذا على كل صيغة إدخال، وكذلك على AggregateFunction المتداخل داخل Array أو Tuple أو Map.
Examples
لجدول ببنية:
aggregate_function_input_format = 'value':
aggregate_function_input_format = 'array':
value وarray أبطأ من الصيغة الافتراضية state، لأنهما تتطلبان إنشاء القيم وتجميعها أثناء الإدراج.
aggregate_functions_null_for_empty
يُمكّن أو يعطّل إعادة كتابة جميع الدوال التجميعية في الاستعلام عبر إضافة اللاحقة -OrNull إليها. فعِّله لتحقيق التوافق مع معيار SQL. ويُنفَّذ ذلك من خلال إعادة كتابة الاستعلام (على غرار الإعداد count_distinct_implementation) للحصول على نتائج متسقة في الاستعلامات الموزعة. القيم الممكنة:- 0 — معطّل.
- 1 — مفعّل.
aggregate_functions_null_for_empty = 0، سينتج:
aggregate_functions_null_for_empty = 1 ستكون النتيجة كما يلي: