google-bigquery - BigQuery 提取表架构
问题描述
有一个巨大的嵌套(结构化)表。
需求:
在其他项目其他区域创建具有相同架构和数据的相同表。复制不适用于不同的区域。
一直在尝试:
将表导出到存储桶(JSON 作为 AVRO 不允许在加载数据后编辑模式),然后提取旧表模式并从存储桶创建一个新表,提供模式。由于结构化表模式的大小和复杂性,无法手动键入模式。
错误得到:
创建表后,AVROauto schema detect
无法正确识别某些数据类型,JSON 失败并出现多个错误。
问题:
如何导出表模式,最好是 JSON?一旦我在 CLI 中运行它:
bq show --format=prettyjson Project1:BQDataset.Table1 | jq '.schema.fields'
我得到了一个巨大的(数百行).json,通过简单地突出显示 CLI 结果列表中的文本在控制台复制它是不可行的。 CLI 中的 JSON 结果片段
更新:问题已解决,这种初始方法不正确。
解决方案
您可以执行以下操作将结果保存在文件中:
bq show --format=prettyjson Project1:BQDataset.Table1 | jq '.schema.fields' > schema.json
您可以使用以下内容将文件复制到存储桶:
gsutil cp /path/to/file/schema.json gs://bucket/path/
无论如何,如果它更适合您,您可以通过以下方式在区域之间复制整个数据集
bq mk --transfer_config --project_id=myproject --data_source=cross_region_copy --target_dataset=123_demo_tokyo --display_name='My Dataset Copy' --params='{"source_dataset_id":"123_demo_eu","source_project_id":"mysourceproject","overwrite_destination_table":"true"}'
您可以在此处查看完整的参考资料
推荐阅读
- c++ - QAbstractVideoSurface 奇怪的行为
- stm32 - STM32 Flash 通过 SWD 编程,无需编程器
- html - 为什么所有浏览器都以蓝色显示 href 链接?
- powershell - 如何在 Powershell 命令中只返回一个值?
- javascript - 在 Mobile Safari 中,Sticky Header 会跳到屏幕顶部
- python - 如何在我的代码中正确使用带有树莓派相机模块的 openCV?
- amazon-web-services - AWS EC2 - yum 更新在 AutoScaling LaunchConfig UserData 中不起作用
- java - ReentrantReadWriteLock 阻止我对对象采取行动?
- php - 使用ajax将数据从视图传递到控制器时出错
- pixi.js - 在 pixi 中加载精灵的另一种方法