标签: google-bigquery

如何在Python中管理Google API错误

我目前正在使用BigQuery做很多事情,而且我正在使用很多东西try... except....看起来我从BigQuery返回的每个错误都是apiclient.errors.HttpError,但附加了不同的字符串,即:

<HttpError 409 when requesting https://www.googleapis.com/bigquery/v2/projects/some_id/datasets/some_dataset/tables?alt=json returned "Already Exists: Table some_id:some_dataset.some_table">

<HttpError 404 when requesting https://www.googleapis.com/bigquery/v2/projects/some_id/jobs/sdfgsdfg?alt=json returned "Not Found: Job some_id:sdfgsdfg">

其中许多人.现在,我看到处理这些问题的唯一方法是对错误消息运行正则表达式,但这很麻烦,绝对不理想.有没有更好的办法?

python google-api google-bigquery

17
推荐指数
2
解决办法
1万
查看次数

Google Bigtable vs BigQuery用于存储大量事件

背景

我们希望将不可变事件存储在(最好)托管服务中.一个事件的平均大小小于1 Kb,我们每秒有1-5个事件.存储这些事件的主要原因是,一旦我们创建可能对这些事件感兴趣的未来服务,就能够重放它们(可能使用表扫描).由于我们在谷歌云中,我们显然将谷歌的服务视为首选.

我怀疑Bigtable非常适合这个,但根据价格计算器,我们每月花费超过1400美元(这对我们来说是一个问题):

在此输入图像描述

看看像BigQuery这样的东西每月3美元的价格(如果我没有遗漏必要的东西):

在此输入图像描述

即使无模式数据库更适合我们,我们也可以将事件存储为带有一些元数据的blob.

问题

我们可以使用BigQuery而不是Bigtable来降低成本吗?例如,BigQuery有一些称为流插入的东西,对我来说似乎是我们可以使用的东西.有什么东西会在短期或长期内咬我们,如果走这条路线我可能不会意识到这一点吗?

google-app-engine bigtable google-bigquery google-cloud-bigtable

17
推荐指数
4
解决办法
1万
查看次数

BigQuery是否支持UPDATE,DELETE和INSERT(SQL DML)语句?

BigQuery支持SELECT语句,但它是否支持INSERT,UPDATE和DELETE等DML语句?

google-bigquery

17
推荐指数
1
解决办法
1万
查看次数

BigQuery转换为不同的时区

我在google大查询中将数据存储在unixtimestamp中.但是,当用户要求报告时,她将需要按当地时区过滤和分组数据.

数据存储在GMT中.用户可能希望在EST中看到数据.报告可能会要求按日期对数据进行分组.

我没有在这里看到时区转换功能:

有谁知道我怎么能在bigquery中做到这一点?即将时间戳转换为不同的时区后如何分组?

timezone datetime google-bigquery

16
推荐指数
4
解决办法
3万
查看次数

如何在BigQuery SQL中从纪元时间中提取日期

  1. 我有日期存储Epoch Time,我想从中提取 Date.我尝试了下面的代码,我得到null了输出.

    date_add( (timestamp( Hp.ASSIGN_TIME)), 1970-01-01,"second" ) as Extracted_date_Epoch
    
    Run Code Online (Sandbox Code Playgroud)

    出行时间格式(1424184621000000)

  2. 还有一个问题.下面的代码给了我正确的日子,但不是工作日,它给了所有的日子,是否有可能在大纪元时间存储两次之前的工作日?

    INTEGER(((Hp.ASSIGN_TIME - Hp.ARRIVAL_TIME) / 1000000) / 86400) as Days
    
    Run Code Online (Sandbox Code Playgroud)

sql google-bigquery

16
推荐指数
2
解决办法
3万
查看次数

BigQuery - 如何比较"日期"列(使用旧版SQL)?

我有一个BigQuery表,Date其中包含一个date类型的列.我正在尝试运行此查询:

SELECT * FROM dataset.table_name WHERE Date = "2016-07-11"
Run Code Online (Sandbox Code Playgroud)

这会引发错误:

Argument type mismatch in function EQUAL: 'Date' is type int32, '2016-07-11' is type string
Run Code Online (Sandbox Code Playgroud)

我也试过这个查询:

SELECT * FROM dataset.table_name WHERE Date = TIMESTAMP("2016-07-11")
Run Code Online (Sandbox Code Playgroud)

但是这会返回0结果,尽管我的表中至少包含一个2016-07-11在该Date列中具有此值()的记录.

那么,我如何比较dateBigQuery中的字段?

google-bigquery google-cloud-platform

16
推荐指数
1
解决办法
1万
查看次数

BigQuery - 日期时间与时间戳

我查看了Google大查询数据类型的文档,检查了TimeStamp与Datetime数据类型之间的差异.

据我了解,主要区别是:

与Timestamps不同,DATETIME对象不会及时引用绝对实例.相反,它是民用时间,或用户在手表或日历上看到的时间.

那我什么时候应该使用Timestamp/Datetime?

谢谢

google-bigquery bigquery-standard-sql

16
推荐指数
1
解决办法
4969
查看次数

通过Google Pub/Sub + Dataflow直接流入BigQuery的优缺点

我们在Google Kubernetes Engine上托管了NodeJS API,我们想开始将事件记录到BigQuery中.

我可以看到3种不同的方法:

  1. 使用API​​中的Node BigQuery SDK将每个事件直接插入BigQuery(如"流式插入示例"中所述:https://cloud.google.com/bigquery/streaming-data-into-bigquery或此处:https:/ /github.com/googleapis/nodejs-bigquery/blob/7d7ead644e1b9fe8428462958dbc9625fe6c99c8/samples/tables.js#L367)
  2. 将每个事件发布到Cloud Pub/Sub主题,然后编写Cloud Dataflow管道以将其流式传输到BigQuery(仅在Java或Python中),例如https://blog.doit-intl.com/replacing-mixpanel- with-bigquery-dataflow-and-kubernetes-b5f844710674https://github.com/bomboradata/pubsub-to-bigquery
  3. 将每个事件从API发布到Pub/Sub主题,但不是Dataflow使用自定义工作进程,该进程在一侧订阅Pub/Sub主题并在另一侧流入BQ.像这里:https: //github.com/GoogleCloudPlatform/kubernetes-bigquery-python/blob/master/pubsub/pubsub-pipe-image/pubsub-to-bigquery.py 或在这里:https://github.com/mchon89 /Google_PubSub_BigQuery/blob/master/pubsub_to_bigquery.py

对于这个特定的用例,我们不需要进行任何转换,只是将事件直接发送到正确的格式.但是我们稍后可能会有其他用例,我们需要将主数据存储区(MySQL)中的表同步到BQ进行分析,所以可能马上从Dataflow开始值得吗?

几个问题 :

  • 选项1(直接向BQ发送单个事件)似乎最简单,如果你没有任何变换.它是否像发布Pub/Sub主题一样快速可靠?我主要关注延迟和错误/重复处理(https://cloud.google.com/bigquery/troubleshooting-errors#streaming).也许这在单独的过程中做得更好?
  • 对于选项2,是否有任何数据流"预设"不需要您编写自定义代码,只需要从Pu​​b/Sub +读取可靠地发送到BQ而不进行转换(可能只是重复数据删除/错误处理)
  • 有一个简单的自定义工作程序(选项3)是否有任何缺点,从Pub/Sub读取然后流入BQ并执行所有错误处理/重试等?

google-bigquery google-cloud-pubsub google-cloud-dataflow

16
推荐指数
1
解决办法
2052
查看次数

Google App Engine:在数据存储上使用大查询?

拥有一个GAE数据存储类,其中包含几个100'000的对象.想要做几个涉及的查询(涉及计数查询).Big Query似乎适合这样做.

目前有一种使用Big Query查询实时AppEngine数据存储区的简便方法吗?

google-app-engine google-bigquery

15
推荐指数
3
解决办法
7174
查看次数

BigQuery日期分区视图

BigQuery允许您创建日期分区表:https: //cloud.google.com/bigquery/docs/creating-partitioned-tables

我希望能够在日期分区表之上创建视图,理想情况下仍然可以获得性能优势.我读过的所有内容都表明这是不可能的?

有没有人有运气呢?

sql google-bigquery

15
推荐指数
2
解决办法
2981
查看次数