Google Cloud Bigtable和Google Cloud Datastore/App Engine数据存储区之间有什么区别,主要的实际优点/缺点是什么?AFAIK Cloud Datastore构建于Bigtable之上.
google-app-engine google-cloud-datastore google-cloud-bigtable
背景
我们希望将不可变事件存储在(最好)托管服务中.一个事件的平均大小小于1 Kb,我们每秒有1-5个事件.存储这些事件的主要原因是,一旦我们创建可能对这些事件感兴趣的未来服务,就能够重放它们(可能使用表扫描).由于我们在谷歌云中,我们显然将谷歌的服务视为首选.
我怀疑Bigtable非常适合这个,但根据价格计算器,我们每月花费超过1400美元(这对我们来说是一个大问题):
看看像BigQuery这样的东西每月3美元的价格(如果我没有遗漏必要的东西):
即使无模式数据库更适合我们,我们也可以将事件存储为带有一些元数据的blob.
问题
我们可以使用BigQuery而不是Bigtable来降低成本吗?例如,BigQuery有一些称为流插入的东西,对我来说似乎是我们可以使用的东西.有什么东西会在短期或长期内咬我们,如果走这条路线我可能不会意识到这一点吗?
google-app-engine bigtable google-bigquery google-cloud-bigtable
我们的堆栈由Google Data Proc(Spark 2.0)和Google BigTable(HBase 1.2.0)组成,我正在寻找使用这些版本的连接器.
对于我找到的连接器,我不清楚Spark 2.0和新的DataSet API支持:
该项目使用SBT在Scala 2.11中编写.
谢谢你的帮助
hbase scala apache-spark google-cloud-bigtable google-cloud-dataproc
我是Google Cloud Bigtable的新手,并且有一个非常基本的问题,即云产品是否可以保护我的数据免受用户错误或应用程序损坏的影响?我在Google网站上看到很多提及数据安全且受到保护但如果上述方案被覆盖则不清楚,因为我没有看到如何从以前的时间点副本恢复数据的参考.我相信这个论坛上有人知道!
我想基于BigTable中的数据生成一些报告。为此,我想创建一个查询,该查询将从BigTable中获取最新数据并将其传递到Data Studio报告中。现在的问题是,当我在BigQuery中创建BigTable连接时,即使在空表上也无法执行任何查询。我通过以下方式为BigQuery创建类型:
bq mk \
--external_table_definition=gs://somebucket/big-table-definition.json \
datareportingdataset.datareportingtable
Run Code Online (Sandbox Code Playgroud)
并且命令成功执行。我的big-table-definition.json
样子如下:
{
"sourceFormat": "BIGTABLE",
"sourceUris": [
"https://googleapis.com/bigtable/projects/playground-2/instances/data-reporting/tables/data-reporting-table"
],
"bigtableOptions": {
"readRowkeyAsString": "true",
"columnFamilies" : [
{
"familyId": "cf1",
"onlyReadLatest": "true",
"columns": [
{
"qualifierString": "temp",
"type": "STRING"
},
{
//the rest of the columns
]
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
执行简单select *
查询时的错误如下所示:
Error while reading table: datareportingdataset.datareportingtable, error message: Error detected while parsing row starting at position: 2. Error: Data between close double quote (") and field separator.
Run Code Online (Sandbox Code Playgroud)
首先,我怀疑BigTable中有一些数据,但是当我从那里删除所有内容时,仍然会发生错误。我发现它必须与json文件本身有关,因为当我将“ …
Google Cloud BigTable不支持协处理器:
不支持协处理器.您无法创建实现org.apache.hadoop.hbase.coprocessor接口的类.
https://cloud.google.com/bigtable/docs/hbase-differences
我可以理解协处理器需要在每个Tablet(RS)节点上部署客户代码(jar).尽管如此,端点协处理器对HBase应用程序至关重要,可确保在某些情况下的数据位置.Apache Phoenix等HBase扩展依赖于Observer协处理器来维护二级索引,因此缺乏协处理器支持看起来像是一个与我不兼容的主要领域.
未来是否可以支持协处理器,以及在BigTable平板电脑上执行自定义Java"存储过程"有哪些变通方法?
更新1: Apache Phoenix coprosessors列表:
我希望Google提供有关Cloud Bigtable服务提供的持久性和可用性保证的指导.
到目前为止,我的理解是:
最小集群需要3个节点的事实表明,至少在区域内,数据非常耐用并且复制到3个节点.
然而,谷歌的回答是"Cloud Bigtable不会复制数据" - 与Cloud Bigtable主页上的引用直接相矛盾,该主页声称"它是使用复制存储策略构建的".那是哪个呢?它复制与否?如果是这样,保留了多少份?
群集只能在特定区域内设置的事实表明群集的可用性直接与该区域的可用性相关联.因此,如果我想拥有一个高度可用的基于Bigtable的数据存储,那么最佳做法是跨多个区域设置独立的集群并自己处理集群中的写入同步吗?
没有关于跨区域的Bigtable集群是否独立的信息.如果我要跨多个区域设置集群,并且一个区域出现故障,我们是否可以期望其他区域中的集群继续工作?或者是否存在一些潜在的单一故障点,甚至可能跨区域影响集群?
与针对这些细节非常具体的App Engine数据存储区相比,Cloud Bigtable文档相当缺乏 - 或者至少,我没有找到一个详细介绍这些方面的页面.
Cloud Bigtable文档在其他方面同样含糊不清,例如关于值的大小限制问题,文档指出单个值应保持低于"每个单元约10 MB"."~10 MB"究竟是什么意思?!我可以对10MB的限制进行硬编码并期望它始终有效,还是会根据未知因素每天变化?
无论如何,如果我听起来很激动,道歉.我真的很想使用Bigtable服务.但是,我和许多其他人一样,在能够投资之前需要了解它的耐久性/可用性方面.谢谢.
high-availability google-cloud-platform google-cloud-bigtable
我正在尝试评估是否可以在 HBase 或 Bigtable 中的单个行上设置 TTL。
我知道 Cassandra 允许在插入时使用 TTL。我想知道 HBase 和 Google Cloud Bigtable 中是否可以实现同样的功能。
INSERT INTO test (k,v) VALUES ('test', 1) USING TTL 10;
Run Code Online (Sandbox Code Playgroud) hbase bigtable ttl google-cloud-platform google-cloud-bigtable
我们有一些用例,我们希望在Google Bigtable中长期存储大量数据:
我们需要存储数据,但我们并不需要它始终"在线".当前的成本瓶颈似乎是在这些情况下长时间闲置的节点的成本.
如何在产品开发过程中使用Google Bigtable?我知道开发模式(和模拟器),它们适用于某些用例,但我们仍然需要生产环境用于其他用例.
真的,理想的是能够切换"关闭"Bigtable(同时仍然支付存储但不支持节点的数据)并在需要时调出节点.我不相信这个功能存在.如果没有其他可能的解决方法/替代方案?
如果我有大量数据存储和可搜索性的用例,为什么我会选择Google Cloud Bigtable而不是Google Cloud Datastore?
我已经看到了SO和其他方面的几个问题"比较"Bigtable和Datastore,但它似乎归结为相同的非特定答案.
这是我目前的知识和想法:
数据存储更昂贵.
在这个问题的背景下,让我们完全忘记定价.
Bigtable适用于庞大的数据集.
看起来像Datastore也是?我不知道具体是什么让Bigtable在这里客观上优越.
Bigtable比Datastore更适合分析.
怎么样?为什么?看起来我也可以在Datastore中进行分析,没问题.为什么Bigtable似乎是整个行业范围内的分析决策?GMail,eBay等从数据存储无法提供的Bigtable获得什么价值?
Bigtable与Hadoop,Spark等集成在一起.
数据存储区不是很好,考虑到它是基于Bigtable构建的吗?
从这个问题来看,这个陈述是在答案中做出的:
Bigtable和Datastore非常不同.是的,数据存储区建立在Bigtable之上,但这并不像它那样.这有点像说汽车是建在[汽车]车轮的顶部,因此汽车与车轮没什么不同.
然而,这看起来似乎是荒谬的,因为汽车(包括车轮)本身提供的价值不仅仅是汽车车轮本身的价值.
乍一看,Bigtable严格比Datastore差,只提供单一索引并限制快速搜索.我错过了什么?
bigtable nosql google-cloud-datastore google-cloud-platform google-cloud-bigtable