google-cloud-platform - 我可以使用 GCP 中的 bigQuery 命令行工具进行 ETL 工作吗?
问题描述
我想问你一个关于谷歌云平台的bigQuery的问题。
我想做的工作是使用 bq load 的 ETL。
ETL 是指提取、转换和加载。
具体来说,我想在 JSON 格式的数据中添加一列。另外,我想更改添加列的数据类型。
例如
{
Cookie: 'test_cookie'
Time: "2020-10-26 00:00 UTC"
Data named }
已经存在。
这里
{
Cookie: 'test_cookie'
dt: "2020-10-26"
hour : 00
timestamp : "2020-10-26 00:00 UTC"
}
即将以这种方式执行数据 ETL 操作。
我发布了一个问题,因为很难找到与 Google Cloud Platform 文档相关的任何内容。
是否可以进行上述工作?
谢谢你。
解决方案
您应该能够使用 bq 命令行工具完成大部分操作。有几种方法可以处理它。
- 做一些 unix 脚本来包装整个过程,保留 bq 命令行工具来执行你的加载。这更像是一个 ETL 场景。
- 采用更多 ELT 方法,首先将数据加载到阶段表中,然后在 BigQuery 中使用一些日期函数对其进行操作,以解析出时间列并加载结果数据。
GCP 的文档相当完善,这里有一些链接可以帮助您入门: https ://cloud.google.com/bigquery/docs/quickstarts/quickstart-command-line
https://cloud.google.com/bigquery/docs/reference/bq-cli-reference
https://cloud.google.com/bigquery/docs/bq-command-line-tool
https://codelabs.developers.google.com/codelabs/bigquery-cli#0
推荐阅读
- php - 如何在 Mac 上签名 xdebug.so 或关闭签名验证
- maven - 如何替换 MANIFEST.MF 中的 Spring Boot 1.4/1.5 主类来打包和使用我的自定义 JarLauncher 类
- javascript - 生成具有给定变量的随机字符串
- javascript - rxjs6 不会在管道中的 promise 内传递值
- html - 为什么多行跨度会改变相邻 div 的宽度?
- ruby - 如何使用多行字符串 here-doc 使用可枚举或循环块进行插值
- matlab - 是否可以在 Matlab simulink 中找到用于多输入单输出传递函数的模块?
- angular - 如何处理需要定制组件的客户项目
- javascript - 如何在动态对象键名上添加其他键值?
- codeigniter - CodeIgniter 上传路径无效