【问题标题】:Upload automatically a large file for bigquery processing自动上传大文件以进行 bigquery 处理
【发布时间】:2014-07-08 20:17:18
【问题描述】:

我正在计划和 App 处理一个大文件 (150MB) 以进行 bigquery 分析,而不使用任何 UI。我已尝试使用 google 应用程序脚本,但无法上传此文件,服务器错误。例如,有什么方法可以将脚本上传到谷歌云存储?提前谢谢你。

【问题讨论】:

    标签: google-apps-script google-bigquery google-cloud-storage


    【解决方案1】:

    从您的另一个问题的答案:Upload a csv file using google scripts to bigquery fails,听起来您所达到的限制是谷歌应用脚​​本上的帖子大小限制为 10 MB。所以我不知道使用 Google Apps Script 有什么办法解决这个问题(即使是 Google Cloud Storage 也会有同样的限制)。

    您说您不想使用 UI...您可以使用 Python 吗?如果您安装了Google Cloud SDK,则可以使用bq 命令行客户端运行BigQuery 安装,也可以通过gsutil 工具将文件上传到Google Cloud Storage。这些是否解决了您的用例?如果没有,您能否提供有关您的用例的更多信息?这个 150MB 的文件在哪里?您需要上传一次还是为每个用户上传? (关于您的另一个问题,您提到您希望其他用户能够上传......他们都使用相同的文件还是不同的文件?它是静态的还是改变的?您可以将它加载到 BigQuery 一次然后复制每个需要它的用户的表?

    【讨论】:

    • 嗨,乔丹,非常感谢您的帮助。我想建立一个在线服务,其中客户端每个上传不同的 csv 文件,我们使用 bigquery 进行分析。由于这是一个 150MB 的文件,我无法找到一种自动获取 bigquery 脚本来运行它的方法。即使我将它上传到任何服务器,也无法通过代码从这个地方“发送”到 bigquery...
    • 您的客户将文件上传到哪里?你能让他们把它上传到谷歌云存储吗?这样,在您的 BigQuery 导入作业中,您只需将 BigQuery 指向 GCS 路径,而不必通过网络移动任何字节。
    【解决方案2】:

    您可以创建一个非常简单的 html 表单,允许用户选择文件并将其发送到特定存储桶。像这样的东西对我有用。

    <form action="http://storage.googleapis.com/Put_your_own_bucket_name_here" 
          method="post" enctype="multipart/form-data">Select a local file to send to cloud storage:
        <input type="hidden" name="key" value="${filename}" />
        <input type="hidden" name="success_action_redirect" value="Use your OK URL here" />
        <input type="file" name="file">
        <input type="submit" value="Upload">
    </form>
    

    ${filename} 表示将使用上传的文件名。

    如果您希望未经身份验证的用户发送文件,请务必修改存储桶权限。您可以从开发人员控制台中的云存储浏览器为您的项目执行此操作。

    查看https://developers.google.com/storage/docs/reference-methods#postobject 以获取完整参考。

    【讨论】:

      猜你喜欢
      • 2023-03-20
      • 2020-04-25
      • 2013-10-16
      • 2013-07-09
      • 1970-01-01
      • 2016-06-18
      • 2017-02-18
      • 2019-09-23
      • 1970-01-01
      相关资源
      最近更新 更多