У меня есть корзина в облачном хранилище Google со следующей иерархией имен.
gs://<bucket>/events/year=2020/month=03/day=23/hour=12
Я использовал следующую команду для создания таблицы BigQuery Native с многораздельной информацией куста для импорта из облачного хранилища Google. Это работает.
bq load --project_id=<projectId> --source_format=NEWLINE_DELIMITED_JSON --autodetect --hive_partitioning_mode=AUTO --hive_partitioning_source_uri_prefix=gs://<bucket>/events/ <targetTableName> "gs://<bucket>/events/*" "<schema>"
И следующий запрос также работает.
SELECT * from table WHERE year=2020
Но, когда я пытаюсь сделать то же самое с внешней таблицей, таблица создается с кустом Информация о разделе. Но запросы не распознают ни один из разделов.
bq mkdef --source_format=NEWLINE_DELIMITED_JSON --autodetect --hive_partitioning_mode=AUTO --hive_partitioning_source_uri_prefix="gs://<bucket>/events" --require_hive_partition_filter=True "gs://<bucket>/events/*" > <table_Def>
bq mk --dataset_id=<datasetId> --data_source=google_cloud_storage --external_table_definition=<tableDef> --schema=<schema> --table <tableName>
И следующий запрос не работает.
SELECT * from table WHERE year=2020
В документации говорится, что это должно поддерживаться. Может, кто-нибудь расскажет, что мне здесь не хватает?