我目前正在使用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">
其中许多人.现在,我看到处理这些问题的唯一方法是对错误消息运行正则表达式,但这很麻烦,绝对不理想.有没有更好的办法?
背景
我们希望将不可变事件存储在(最好)托管服务中.一个事件的平均大小小于1 Kb,我们每秒有1-5个事件.存储这些事件的主要原因是,一旦我们创建可能对这些事件感兴趣的未来服务,就能够重放它们(可能使用表扫描).由于我们在谷歌云中,我们显然将谷歌的服务视为首选.
我怀疑Bigtable非常适合这个,但根据价格计算器,我们每月花费超过1400美元(这对我们来说是一个大问题):
看看像BigQuery这样的东西每月3美元的价格(如果我没有遗漏必要的东西):
即使无模式数据库更适合我们,我们也可以将事件存储为带有一些元数据的blob.
问题
我们可以使用BigQuery而不是Bigtable来降低成本吗?例如,BigQuery有一些称为流插入的东西,对我来说似乎是我们可以使用的东西.有什么东西会在短期或长期内咬我们,如果走这条路线我可能不会意识到这一点吗?
google-app-engine bigtable google-bigquery google-cloud-bigtable
BigQuery支持SELECT语句,但它是否支持INSERT,UPDATE和DELETE等DML语句?
我在google大查询中将数据存储在unixtimestamp中.但是,当用户要求报告时,她将需要按当地时区过滤和分组数据.
数据存储在GMT中.用户可能希望在EST中看到数据.报告可能会要求按日期对数据进行分组.
我没有在这里看到时区转换功能:
有谁知道我怎么能在bigquery中做到这一点?即将时间戳转换为不同的时区后如何分组?
我有日期存储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)
还有一个问题.下面的代码给了我正确的日子,但不是工作日,它给了所有的日子,是否有可能在大纪元时间存储两次之前的工作日?
INTEGER(((Hp.ASSIGN_TIME - Hp.ARRIVAL_TIME) / 1000000) / 86400) as Days
Run Code Online (Sandbox Code Playgroud)我有一个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大查询数据类型的文档,检查了TimeStamp与Datetime数据类型之间的差异.
据我了解,主要区别是:
与Timestamps不同,DATETIME对象不会及时引用绝对实例.相反,它是民用时间,或用户在手表或日历上看到的时间.
那我什么时候应该使用Timestamp/Datetime?
谢谢
我们在Google Kubernetes Engine上托管了NodeJS API,我们想开始将事件记录到BigQuery中.
我可以看到3种不同的方法:
对于这个特定的用例,我们不需要进行任何转换,只是将事件直接发送到正确的格式.但是我们稍后可能会有其他用例,我们需要将主数据存储区(MySQL)中的表同步到BQ进行分析,所以可能马上从Dataflow开始值得吗?
几个问题 :
拥有一个GAE数据存储类,其中包含几个100'000的对象.想要做几个涉及的查询(涉及计数查询).Big Query似乎适合这样做.
目前有一种使用Big Query查询实时AppEngine数据存储区的简便方法吗?
BigQuery允许您创建日期分区表:https: //cloud.google.com/bigquery/docs/creating-partitioned-tables
我希望能够在日期分区表之上创建视图,理想情况下仍然可以获得性能优势.我读过的所有内容都表明这是不可能的?
有没有人有运气呢?