Joh*_*han 17 google-app-engine bigtable google-bigquery google-cloud-bigtable
背景
我们希望将不可变事件存储在(最好)托管服务中.一个事件的平均大小小于1 Kb,我们每秒有1-5个事件.存储这些事件的主要原因是,一旦我们创建可能对这些事件感兴趣的未来服务,就能够重放它们(可能使用表扫描).由于我们在谷歌云中,我们显然将谷歌的服务视为首选.
我怀疑Bigtable非常适合这个,但根据价格计算器,我们每月花费超过1400美元(这对我们来说是一个大问题):
看看像BigQuery这样的东西每月3美元的价格(如果我没有遗漏必要的东西):
即使无模式数据库更适合我们,我们也可以将事件存储为带有一些元数据的blob.
问题
我们可以使用BigQuery而不是Bigtable来降低成本吗?例如,BigQuery有一些称为流插入的东西,对我来说似乎是我们可以使用的东西.有什么东西会在短期或长期内咬我们,如果走这条路线我可能不会意识到这一点吗?
小智 8
FYI
Cloud Bigtable不是关系数据库; 它不支持SQL查询或连接,也不支持多行事务.此外,它不适用于少量数据(<1 TB).
请考虑以下情况: - 如果您需要对联机事务处理(OLTP)系统提供完整的SQL支持,请考虑使用Google Cloud SQL.
如果您需要在线分析处理(OLAP)系统中进行交互式查询,请考虑使用Google BigQuery.
如果您需要存储大于10 MB的不可变blob,例如大图像或电影,请考虑使用Google Cloud Storage.
如果需要存储高度结构化的对象,或者需要支持ACID事务和类似SQL的查询,请考虑使用Cloud Datastore.
在整体成本归结为您将"查询"的数据多久.如果它是一个备份而你不经常重播事件,它将是便宜的.但是,如果您需要每天重播一次,则开始轻松触发5 $/TB扫描.我们也很惊讶插入和存储的价格是多么便宜,但这是因为谷歌希望你在某个时间点运行昂贵的查询.你必须围绕一些事情进行设计.例如,AFAIK流媒体插入没有写入表格的保证,你必须经常在列表的尾部轮询,看看它是否真的被写入.可以使用时间范围表装饰器有效地完成拖尾(不支付扫描整个数据集).
如果您不关心订单,您甚至可以免费列出一张桌子.然后不需要运行'查询'.
此流程图可能有助于在不同的谷歌云存储产品之间做出决定(免责声明!从谷歌云页面复制了这张图片)
如果您的用例是一个实时数据库(比方说,网站的后端),那么BigTable就是您所需要的(尽管它并不是真正的OLTP系统)。如果它更像是一种数据分析/数据仓库类目的,那么BigQuery就是您所需要的。
想想 OLTP 与 OLAP;或者如果你熟悉 Cassandra 和 Hadoop,BigTable 大致等同于 Cassandra,BigQuery 大致等同于 Hadoop(同意,不是一个公平的比较,但你明白了)
https://cloud.google.com/images/storage-options/flowchart.svg
请记住,Bigtable不是关系数据库,它是没有任何 SQL 功能(如 JOIN 等)的 noSQL 解决方案。如果您想要 RDBMS OLTP,您可能需要查看cloudSQL (mysql/ postgres) 或spanner。
Cloud Spanner相对年轻,但功能强大,前景广阔。至少,谷歌营销声称它的功能是两全其美的(传统 RDBMS 和 noSQL)
成本方面
成本方面已经在这里很好地涵盖了/sf/answers/2439155141/
我知道这是一个很晚的答案,但无论如何添加它以防将来它可能会帮助其他人。
| 归档时间: |
|
| 查看次数: |
14428 次 |
| 最近记录: |