【问题标题】:Schedule a python script loading data to BigQuery under windows 10在 windows 10 下安排一个 python 脚本将数据加载到 BigQuery
【发布时间】:2018-06-28 19:23:50
【问题描述】:

有没有一种方法可以安排 python 脚本将数据加载到 Bigquery,而无需为每次运行复制从 google 帐户链接生成的身份验证代码。

我目前正在使用 Windows 任务调度程序来实现这一点。

【问题讨论】:

    标签: python windows oauth google-bigquery


    【解决方案1】:

    是的,有。您必须使用service account credentials。创建一个后,将其作为 JSON 文件下载到本地并在 Python 脚本中使用,如下所示:

    from google.cloud import bigquery as bq
    client =  bq.Client.from_service_account_json('path/to/credentials.json')
    

    这将使您需要的所有 BigQuery 连接都已自动为您处理身份验证。

    【讨论】:

    • 您的消息在发布前似乎被剪掉了
    • 我通过此链接 cloud.google.com/storage/docs/authentication#service_accounts 创建了凭据。我可以使用 cmd 将数据加载到 BigQuery,但是当使用具有相同命令的任务调度程序时,我的代码永远不会结束。我正在为 4 个计算机节点构建机器学习分类器。
    • 我不太明白。您可以使用服务帐户连接到 gcp 吗?
    • 是的,我无需输入 oauth 代码即可连接,如果我从命令提示符(cmd 终端)运行我的脚本,我可以从 GBQ 读取和写入日期。但是,当我使用“任务调度程序”安排相同的任务时,代码永远不会结束,它会在“任务调度程序”上出现“正在运行”。在 cmd 上它只持续 20 分钟。
    【解决方案2】:

    您可以通过以下链接 cloud.google.com/storage/docs/authentication#service_accounts 创建凭据。

    在 python 脚本中,您可以使用 private_key 参数将 json 文件路径直接传递给用于从 BQ 读取/写入 BQ 的函数。

    pandas_gbq.read_gbq(query, project_id= myprojectid, ..., private_key= 'jsonfilepath', dialect=’legacy’)

    pandas.to_gbq(dataframe, destination_table, project_id, chunksize=10000, ..., private_key='jsonfilepath')

    然后您安排任务以运行 python 脚本,就像您通常使用 windows 任务调度程序一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 2018-12-04
      • 1970-01-01
      • 1970-01-01
      • 2014-07-09
      • 2020-03-24
      • 2018-07-02
      相关资源
      最近更新 更多