Загрузка данных из HDFS
Selena предоставляет следующие варианты для загрузки данных из HDFS:
- Синхронная загрузка с использованием INSERT+
FILES() - Асинхронная загрузка с использованием Broker Load
- Непрерывная асинхронная загрузка с использованием Pipe
Каждый из этих вариантов имеет свои преимущества, которые подробно описаны в следующих разделах.
В большинстве случаев мы рекомендуем использовать метод INSERT+FILES(), который намного проще в использовании.
Однако метод INSERT+FILES() в настоящее время поддерживает только форматы файлов Parquet, ORC и CSV. Поэтому, если вам нужно загрузить данные других форматов файлов, таких как JSON, или выполнить изменения данных, такие как DELETE во время загрузки данных, вы можете использовать Broker Load.
Если вам нужно загрузить большое количество файлов данных со значительным общим объемом данных (например, более 100 ГБ или даже 1 ТБ), мы рекомендуем использовать метод Pipe. Pipe может разделять файлы на основе их количества или размера, разбивая задачу загрузки на более мелкие последовательные задачи. Такой подход гарантирует, что ошибки в одном файле не повлияют на всю задачу загрузки и минимизирует необходимость повторных попыток из-за ошибок данных.
Перед началом работы
Подготовка исходных данных
Убедитесь, что исходные данные, которые вы хотите загрузить в Selena, правильно сохранены в вашем кластере HDFS. В этой теме предполагается, что вы хотите загрузить /user/amber/user_behavior_ten_million_rows.parquet из HDFS в Selena.
Проверка привилегий
Вы можете загружать данные в таблицы Selena только как пользователь, имеющий привилегию INSERT на эти таблицы Selena. Если у вас нет привилегии INSERT, следуйте инструкциям в GRANT, чтобы предоставить привилегию INSERT пользователю, которого вы используете для подключения к вашему кластеру Selena. Синтаксис: GRANT INSERT ON TABLE <table_name> IN DATABASE <database_name> TO { ROLE <role_name> | USER <user_identity>}.
Сбор данных для аутентификации
Вы можете использовать простой метод аутентификации для установления соединений с вашим кластером HDFS. Для использования простой аутентификации вам необходимо собрать имя пользователя и пароль учетной записи, которую вы можете использовать для доступа к NameNode кластера HDFS.
Использование INSERT+FILES()
Этот метод доступен начиная с версии 1.5.0 и в настоящее время поддерживает только форматы файлов Parquet, ORC и CSV (начиная с v1.5.2).
Преимущества INSERT+FILES()
FILES() может читать файл, хранящийся в облачном хранилище, на основе указанных вами свойств, связанных с путем, определять схему таблицы данных в файле, а затем возвращать данные из файла в виде строк данных.
С помощью FILES() вы можете:
- Запрашивать данные напрямую из HDFS, используя SELECT.
- Создавать и загружать таблицу, используя CREATE TABLE AS SELECT (CTAS).
- Загружать данные в существующую таблицу, используя INSERT.