Это 24-й день моего участия в Gengwen Challenge.Подробности о мероприятии:Обновить вызов
1 Архитектура улья
Метаданные Hive по умолчанию хранятся в базе данных derby и не поддерживают мультиклиентский доступ, поэтому метаданные хранятся в MySQl для поддержки мультиклиентского доступа.
2 Сравнение улья и базы данных
Hive и базы данных не имеют ничего общего, кроме схожих языков запросов.
- Расположение хранения данных
Hive хранится в HDFS. Базы данных хранят данные на блочных устройствах или в локальной файловой системе.
- Обновление данных
Перезапись данных в Hive не рекомендуется. Данные в базе данных обычно необходимо часто изменять.
- задержка выполнения
Hive имеет высокую задержку выполнения. Задержка выполнения базы данных низкая. Конечно, это условно, то есть масштаб данных небольшой.Когда масштаб данных превышает вычислительную мощность базы данных, параллельные вычисления Hive явно могут показать свои преимущества.
- шкала данных
Hive поддерживает очень крупномасштабные вычисления данных; масштаб данных, который может поддерживать база данных, невелик.
3 Внутренние и внешние таблицы
метаданные, необработанные данные
- При удалении данных:
Внутренняя таблица: метаданные, необработанные данные, удалить все
Внешняя таблица: только удаление метаданных
- В производственной среде компании, когда создавать внутреннюю таблицу и когда создавать внешнюю таблицу?
Подавляющее большинство сценариев в компании — это внешние таблицы.
Используемая вами временная таблица создаст внутреннюю таблицу;
4 4 По разнице
- Сортировать по: глобальная сортировка, только один Редуктор;
- Сортировать по: по порядку внутри раздела;
- Распределить по: аналогично разделу в MR, он разбит на разделы и используется вместе с сортировкой по.
- Кластеризация по: если поля «Распределить по» и «Сортировка по» совпадают, можно использовать метод «Кластеризация по». В дополнение к функции «Распределить по» функция «Сгруппировать по» также имеет функцию «Сортировать по». Однако сортировка может быть только в порядке возрастания, и правило сортировки не может быть указано как ASC или DESC.
Order By редко используется в производственной среде, что может легко привести к OOM.
Сортировать по + Распределить по чаще используются в производственной среде.
5 системных функций
- Функции date_add, date_sub (сложение и вычитание дат)
- Функция next_day (связанная с индикатором недели)
- Функция date_format (сортировка даты по формату)
- Функция Last_day (запрашивает последний день месяца)
- функция collect_set
- get_json_object анализирует функцию json
- NVL(выражение1, выражение2)
Если выражение1 равно null, NVL возвращает значение выражения2, в противном случае возвращает значение выражения1.
6 пользовательских функций UDF, UDTF
-
Настраивали ли вы в проекте функции UDF и UDTF и какие проблемы с ними решались, а также настраиваемые шаги?
- Используйте функции UDF для анализа открытых полей; используйте функции UDTF для анализа полей событий.
- Пользовательская пользовательская функция: наследовать пользовательскую функцию, переопределить метод оценки
- Пользовательский UDTF: унаследован от GenericUDTF, переопределяет 3 метода: инициализация (имя и тип пользовательского выходного столбца), обработка (возврат результата в пересылку (результат)), закрытие
-
Зачем настраивать UDF/UDTF?
Из-за настраиваемой функции вы можете скрыть журнал, чтобы распечатать журнал, ошибку или исключение данных, что удобно для отладки.
также требуется при внедрении сторонних пакетов jar.
7 оконных функций
-
Rank
- RANK() будет повторяться, когда порядок тот же, общее количество не изменится
- DENSE_RANK() будет повторяться, когда порядок будет таким же, общее количество уменьшится
- ROW_NUMBER() будет рассчитываться по порядку
-
OVER(): указывает размер окна данных, в котором работает функция анализа, который может варьироваться от строки к строке.
- CURRENT ROW: текущая строка
- n ПРЕДЫДУЩИЙ: перейти вперед на n строк данных
- n FOLLOWING: следующие n строк данных
- UNBOUNDED: начальная точка, UNBOUNDED PRECEDING означает начальную точку спереди, UNBOUNDED FOLLOWING означает конечную точку сзади
- LAG(col,n): перейти вперед к n-й строке данных
- LEAD(col,n): следующая n-я строка данных
- NTILE(n): распределяет строки в упорядоченном разделе по группам указанных данных.Каждая группа имеет номер, и номер начинается с 1. Для каждой строки NTILE возвращает номер группы, к которой принадлежит строка. Примечание: n должен быть типа int.
-
Рукописный TopN
8 Разница между Union и Union all
- union выполнит дедупликацию результирующего набора union, что менее эффективно, чем union all
- union all не выполняет дедупликацию результирующего набора, поэтому он эффективен