【问题标题】:Automate file upload from Google Cloud Storage to Bigquery自动将文件从 Google Cloud Storage 上传到 Bigquery
【发布时间】:2018-06-20 05:49:39
【问题描述】:

我们设置了一个自动 FTP 流程,每天将数据文件导入 Google Cloud Storage。

我想设置一个每日自动作业,将这个 csv 上传到一个 bigquery 表中。

最好的方法是什么?我目前的第一个想法是使用每天运行 python 脚本的 cron 作业设置一个应用程序引擎实例。有没有更好的解决方案?

【问题讨论】:

标签: google-bigquery google-cloud-platform google-cloud-storage


【解决方案1】:

与 Mikhail 的答案类似 - 但有更多代码:

使用 Google Cloud Functions,您可以在每次收到新文件时自动执行 BigQuery:

代码方面,在 package.json 中导入 BigQuery:

{
  "dependencies": {
    "@google-cloud/bigquery": "^0.9.6"
  } 
}

index.js 上,您可以以任何适当的方式处理新文件:

var bigQuery = BigQuery({ projectId: 'your-project-id' });

exports.processFile = (event, callback) => {
  console.log('Processing: ' + JSON.stringify(event.data));
  query(event.data);
  callback();
};

var BigQuery = require('@google-cloud/bigquery');

function query(data) {
    const filename = data.name.split('/').pop();
    const full_filename = `gs://${data.bucket}/${data.name}`

    // if you want to run a query:
    query = '...'
    bigQuery.query({
        query: query,
        useLegacySql: false
    });
};

【讨论】:

    【解决方案2】:

    Background Cloud FunctionCloud Storage trigger 是您的最佳选择!

    您可以将其设置为监视特定存储桶中的新文件并在触发触发时执行加载脚本

    忘了提 - 云函数支持(截至目前)仅 node.js 用于脚本 - 这通常不是问题,但只是想提一下 :o)

    【讨论】:

      猜你喜欢
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      • 2019-05-29
      • 2021-04-25
      • 2018-12-23
      • 1970-01-01
      • 2018-01-28
      • 2020-06-06
      相关资源
      最近更新 更多