BigQuery: слишком много полных листовых полей 10852 - PullRequest
1 голос
/ 26 марта 2019

Я импортирую некоторые данные из Google Cloud Datastore с 980 столбцами.Сначала я экспортировал его в Bucket и пытался импортировать его в BigQuery (используя руководство GCP здесь ).Однако я получаю ошибку Too many total leaf fields: 10852.

Я точно знаю, что ни одна из сущностей не имеет более 1000 полей.Есть ли вероятность, что процесс импорта преобразует мои данные и создает дополнительные поля?

Ответы [ 2 ]

2 голосов
/ 26 марта 2019

Схема, сгенерированная службой Managed Import / Export , будет содержать не более 10 тыс. Полей. Итак, похоже, что вы импортируете в таблицу BigQuery, в которой уже есть данные. BigQuery примет объединение существующей схемы и новой схемы. Таким образом, даже если какая-либо конкретная сущность имеет менее 1000 полей, если объединение всех имен полей во всех ваших сущностях, а также существующие поля в схеме BigQuery.

Некоторые опции у вас есть: 1) Используйте новую таблицу для каждого импорта в BigQuery. 2) Попробуйте использовать projectionFields для ограничения полей, загружаемых в BigQuery.

0 голосов
/ 29 марта 2019

Решение Джима Моррисона (с использованием projectionFields ) решило проблему для меня.В итоге я пропустил список интересующих меня столбцов сущностей и экспортировал только это подмножество в BigQuery.Следующая инструкция командной строки достигает этого.

bq --location=US load --source_format=DATASTORE_BACKUP --projection_fields="field1, field4, field2, field3"  --replace mydataset.table gs://mybucket/2019-03-25T02:56:02_47688/default_namespace/kind_data/default_namespace_datakind.export_metadata

...