用于访问日志的BigQuery API - 我正在丢失数据

问题描述 投票:0回答:1

我已经访问MySQL表的访问日志,但最近它变得太过于MySQL。然后,我决定保存在Google BigQuery中。我不知道这是否是更好的选择,但似乎可行。有人对此发表评论吗?好的...

我开始整合到Google BigQuery,我用Flask(一个Python框架)制作了一个小应用程序。我创建了端点来接收数据并发送到BigQuery。现在,我的常规应用程序将数据发送到指向我的Flask应用程序的URL,然后轮流发送到BigQuery。这里有任何观察或建议吗?

最后我的问题,有时我会丢失数据。我制作了一个脚本来测试我的一般应用程序以查看结果,我多次运行脚本并注意到我丢失了一些数据,因为有时会保存相同的数据,有时不会。有人知道会发生什么事吗?最重要的是..在这种情况下如何防止丢失数据?我的应用程序如何准备好注意数据没有被Google BigQuery搜出然后对待它,比如再试一次?

我正在使用google-cloud-python库(参考:https://googlecloudplatform.github.io/google-cloud-python/latest/bigquery/usage.html#tables)。

我的代码:

client = bigquery.Client(project=project_id)
table_ref = client.dataset(dataset_id).table(table_id)
SCHEMA = [SchemaField(**field) for field in schema]
errors = client.create_rows(table_ref, [row], SCHEMA)

就这些

python rest api logging google-bigquery
1个回答
1
投票

正如我所料,你不处理errors。确保您处理并了解流式插入的工作原理。如果您流式传输1000行,并且56次失败,则会返回该行,并且您只需要重试56行。 insertId也很重要。

Streaming Data into BigQuery

© www.soinside.com 2019 - 2024. All rights reserved.