BigQuery:总叶字段太多 10852
BigQuery: Too many total leaf fields 10852
我正在从 Google Cloud Datastore 导入一些数据,大约有 980 列。我先将它导出到 Bucket 并尝试将其导入 BigQuery(使用 GCP guide here)。但是,我收到错误 Too many total leaf fields: 10852
。
我确定 none 个实体有超过 1000 个字段。导入过程是否有可能转换我的数据并创建其他字段?
Managed Import/Export 服务生成的架构将包含不超过 10k 的字段。因此,看起来您正在导入一个已经有数据的 BigQuery table。 BigQuery 将合并现有架构和新架构。因此,即使任何给定实体的字段少于 1000 个,如果您所有实体中所有字段名称的联合,加上 BigQuery 架构中的现有字段。
您的一些选择包括:
1) 每次导入 BigQuery 时使用新的 table。
2) 尝试使用 projectionFields 来限制加载到 BigQuery 中的字段。
Jim Morrison 的解决方案(使用 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
我正在从 Google Cloud Datastore 导入一些数据,大约有 980 列。我先将它导出到 Bucket 并尝试将其导入 BigQuery(使用 GCP guide here)。但是,我收到错误 Too many total leaf fields: 10852
。
我确定 none 个实体有超过 1000 个字段。导入过程是否有可能转换我的数据并创建其他字段?
Managed Import/Export 服务生成的架构将包含不超过 10k 的字段。因此,看起来您正在导入一个已经有数据的 BigQuery table。 BigQuery 将合并现有架构和新架构。因此,即使任何给定实体的字段少于 1000 个,如果您所有实体中所有字段名称的联合,加上 BigQuery 架构中的现有字段。
您的一些选择包括: 1) 每次导入 BigQuery 时使用新的 table。 2) 尝试使用 projectionFields 来限制加载到 BigQuery 中的字段。
Jim Morrison 的解决方案(使用 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