Короткие ответы:
1. , если в секционированном столбце нет данных, поэтому при запросе этого , какую ошибку вы получите?
Разделенный столбец в Hive - это папка с именем key=value
с файлами данных внутри.И если у него нет данных, это означает, что папок разделов не существует, и таблица пуста, ошибки не отображаются, данные не возвращаются.При вставке пустого значения в столбец с разделением с использованием динамического разделения все значения NULL в столбце разделения (и все значения, которые не соответствуют типу поля), загруженные как __HIVE_DEFAULT_PARTITION__
Если в этом случае тип столбца является числовым, то ошибка приведения типа будетбыть брошенным во время выбора.Нечто подобное не может привести textWritable к IntWritable, например
2. , если в некоторых строках нет разделенного столбца, как эти строки будут обрабатываться?будет ли потеря данных?
Если «не имеет» означает NULL, то загружается как HIVE_DEFAULT_PARTITION На самом деле все еще возможно получить данные, без потерь
3. Почему группировка должна выполняться с числовым столбцом? - не обязательно должен быть числовым мы можем также использовать строковый столбец? Да. каков процесс и на каком основании вы выберете колонку с разбивкой.?
Столбцы для группирования следует выбирать на основе столбцов соединений / фильтров.Значения хешируются, распределяются и сортируются (кластеризуются), и одни и те же хеши записываются (во время перезаписи вставки) в одни и те же сегменты (файлы).Количество ведер и столбцов указано в таблице DDL.
Bucketed table и bucket-map-join - немного устаревшая концепция, вы можете добиться того же, используя DISTRIBUTE BY + sort + ORC.Этот подход более гибкий.
4. Будут ли данные внутренней таблицы также храниться в метастазах?или будут храниться только внешние данные таблицы?
Не имеет значения, внешний или управляемый.Схема таблицы / гранты / статистика хранятся в метастазах.
5. Какие типы запросов выполняются только на стороне преобразователя, а не в редукторе и наоборот?
Запросы без агрегаций, объединений карт (когда небольшая таблица помещается в памяти), простые преобразования столбцов (простые пользовательские функции столбцов, такие как regexp_replace, split, substr, trim, concat и т. Д.), Фильтры в WHERE, сортировка по -может быть выполнен на картографе.
Агрегации и аналитика, общие объединения, упорядочение по, распределение по, UDAF выполняются на mapper + редуктор.