Улейная разметка для данных на s3 - PullRequest
0 голосов
/ 20 сентября 2018

Наши данные хранятся с использованием s3://bucket/YYYY/MM/DD/HH, и мы используем пожарную часть aws для посадки данных о паркетах в этих местах в режиме реального времени.Я могу запросить данные с помощью AWS athena, но у нас есть кластер запросов улья, который создает проблемы при запросе данных при включенном разделении.

Это то, что я делаю: PARTITIONED BY ( `year` string, `month` string, `day` string, `hour` string)

Это не работает, когда данные на s3 хранятся как s3:bucket/YYYY/MM/DD/HH

, однако это работает дляs3:bucket/year=YYYY/month=MM/day=DD/hour=HH

Принимая во внимание строгие контуры пожарного рукава, я не могу изменить пути s3.Поэтому мой вопрос в том, какова правильная схема разбиения в hive ddl, если у вас нет явно определенного имени столбца в вашем пути к данным, например year = или month =?

Ответы [ 2 ]

0 голосов
/ 01 апреля 2019

Теперь вы можете указать префикс S3 в пожарном шланге. https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html

myPrefix/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/
0 голосов
/ 20 сентября 2018

Если вы не можете получить имена папок в соответствии с соглашением об именах кустов, вам необходимо сопоставить все разделы вручную

ALTER TABLE tableName ADD PARTITION (year='YYYY') LOCATION 's3:bucket/YYYY'
...