Сгенерируйте инструкцию CREATE TABLE из метастора Hive

#hive #database-schema #amazon-athena #presto #hive-metastore

#улей #база данных-схема #amazon-athena #presto #hive-метастор

Вопрос:

Существует кластер Hadoop и сопутствующее хранилище метафор Hive, которое описывает местоположение и схему для различных данных на S3. У меня нет доступа к кластеру, но я могу получить доступ к метастору MySQL.

Я хочу получить доступ к данным на S3 в виде таблиц, но, учитывая мой нечастый шаблон доступа, Amazon Athena имеет гораздо больше смысла, чем запускать кластер EMR и указывать на хранилище метафор Hive. Проблема в том, что мне нужно CREATE EXTERNAL TABLE в Athena перед запросом данных.

Я знаю, что в метасторе есть все данные, которые мне нужны для генерации этого CREATE TABLE запроса, который мне нужно передать Athena.

Существует ли какой-либо существующий инструмент или код, который может сгенерировать этот запрос для меня? Должен ли я сгенерировать CREATE TABLE инструкцию в SQL или Python?

Комментарии:

1.Если вы можете получить доступ к базе данных хранилища метафор, можете ли вы временно создать другой экземпляр хранилища метафор? Затем вы можете использовать, например, Presto’s SHOW CREATE TABLE prestosql.io/docs/current/sql/show-create-table.html (или что-то встроенное в Hive), чтобы получить информацию для вашего CREATE . Сработает ли это?

2. Я понимаю это как использование Presto для генерации CREATE TABLE . Это сработало бы, но мне нужно развернуть и настроить Presto.

3. Кирк, я понимаю, что это может быть не самый простой вариант, это именно то, что я, вероятно, сделал бы. Может быть, кто-нибудь может предложить что-нибудь попроще. Повторно: разверните Presto, вы можете запустить его с помощью EMR или с помощью Starburst (то есть нашего) Вуаля на AWS ( starburstdata.com/presto-aws-cloud ).

4. @PiotrFindeisen спасибо. В идеале я хотел бы просто использовать компонент или модуль Presto, который генерирует это CREATE .