【问题标题】:Ingesting logs into bigquery from a python script从 python 脚本将日志摄取到 bigquery
【发布时间】:2012-05-31 08:13:15
【问题描述】:

我想在不使用 appengine mapreduce 的情况下将日志从 appengine 应用提取到 bigquery?

【问题讨论】:

  • 那么,具体的编程问题是什么?你有什么问题吗?
  • 我可以使用 OAuth 来访问 BigQuery 并将数据从本地文件发送到 BigQuery 中的表(已创建)。现在,我想使用 Python 将来自应用引擎日志存储的日志发送到 BigQuery 中的一个表。
  • 我看到'log2bq'应用程序使用mapreduce管道将日志摄取到bigquery中,但我不想使用mapreduce。现在我无法弄清楚如何将日志从应用引擎日志存储发送到 bigquery 表。
  • 另外我想将日志直接从应用引擎日志存储发送到 bigquery。我不想先将它们存储到谷歌云存储中,然后将日志从云存储发送到 bigquery。
  • 为了清楚起见,log2bq 实际上并不使用 MapReduce...它使用 Mapper 函数,但不是 Reduce 步骤。另外,我不知道您为什么不想使用 Mapper 来访问 App Engine 日志 - 它极大地简化了您的代码!

标签: google-app-engine python-2.7 google-bigquery


【解决方案1】:

我们在这里开源了一个将 appengine 日志迁移到 bigquery 的 Java 实现:http://blog.streak.com/2012/07/export-your-google-app-engine-logs-to.html

【讨论】:

    【解决方案2】:

    请参阅 bigquery 文档 here。您可以发布包含要添加到表中的数据的多部分 http 请求。如果您正在进行追加,则无需提供架构。

    【讨论】:

    • :我需要将应用引擎的日志数据发送到 bigquery。我不想将日志存储到本地文件,然后将本地文件上传到 bigquery,而是直接将 appengine 日志发送到 bigquery。
    • 我想知道如何访问 appengine 日志,然后将它们导出到 bigquery。
    • “本地文件”导入请求不必是本地文件。它只是您在多部分 HTTP POST 请求中发送的数据。如果您有权访问您的 appengine 日志,则可以通过此机制将它们发送到 BigQuery。
    【解决方案3】:

    还有一个名为“log2bq”的 Python 运行时实现,它演示了如何将 App Engine 日志提取到 BigQuery:http://code.google.com/p/log2bq/

    【讨论】:

      【解决方案4】:

      Google 最近发布了一项 (BETA) 功能,名为“Google Cloud Logging:日志导出” https://cloud.google.com/logging/docs/install/logs_export

      他们总结为:

      将您的 Google Compute Engine 日志和 Google App Engine 日志导出到 Google Cloud Storage 存储桶、Google BigQuery 数据集、Google Cloud Pub/Sub 主题或三者的任意组合。

      我还没有尝试过这项新服务提供的所有功能,但是...

      我们最近开始在 Python GAE 项目中使用“将 App Engine 日志流式传输到 BigQuery”功能。这会将我们应用的日志直接发送到 BigQuery,以便在 BigQuery 数据集中提供近乎实时的日志记录。

      【讨论】:

        猜你喜欢
        • 2014-12-07
        • 1970-01-01
        • 2021-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-08
        • 2021-10-21
        相关资源
        最近更新 更多