首页 文章

自动将文件从Google Cloud 端存储上传到Bigquery

提问于
浏览
4

我们设置了自动FTP流程,每天将数据文件导入Google Cloud 端存储 .

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

做这个的最好方式是什么?我目前的第一个想法是设置一个app引擎实例,其中包含每天运行python脚本的cron作业 . 有更好的解决方案吗?

2 回答

  • 0

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

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

    忘了提 - Cloud 功能支持(截至目前)只有node.js用于编写脚本 - 这通常不是问题,只是想提一下:o)

  • 2

    类似于米哈伊尔答案的方法 - 但代码更多:

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

    Codewise,在 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
        });
    };
    

相关问题