Можно ли получить доступ к таблицам больших запросов через файл .hql, который будет работать на dataproc - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь получить доступ к таблице BigQuery из моего файла .hql, который я буду запускать в кластере Dataproc. Я написал код ниже, чтобы установить таблицы как переменные в среде Hive:

Set hivevar:source_table_name=project_id:dataset_name:table_name;

Set hivevar:destination_table_name=project_id:datasetname:dest_tablename; 

Затем я написал запрос для вставки вывода в таблицу, представленную в BigQuery.

Insert into ${destination_table_name} select count(*) from ${source_table_name} where name like 'A%';

После запуска задания из Datapro c Я получаю сообщение об ошибке «таблица не найдена». Но таблица присутствует в наборе данных BigQuery.

Может кто-нибудь помочь в решении вопроса.

1 Ответ

2 голосов
/ 13 февраля 2020

Вы пытаетесь получить доступ к BigQuery таблицам в среде Hive. Когда вы выполняете этот запрос, Hive ищет псевдоним, который вы указали в своем собственном списке таблиц, а не в таблицах BigQuery.

В этой ссылке вы можете найти пакет, который позволяет подключать BigQuery и Hive.

Как видно из описания:

Это плагин Hive StorageHandler, который позволяет Hive взаимодействовать с BigQuery. Это позволяет вам сохранить существующие конвейеры, но перейти на BigQuery. Он использует высокопроизводительный API-интерфейс BigQuery Storage для чтения данных и API-интерфейс BigQuery для записи данных.

Следующие шаги выполняются в кластере Datapro c в Google Cloud Platform. Если вам нужно работать в кластере, вам понадобится установить Google Cloud SDK и коннектор Google Cloud Storage для Had oop.

Я держу, это помогает

...