是否有人会使用BigTable而不是BigQuery?两者似乎都支持读写操作,后者提供高级'查询'操作.
我需要开发一个联盟网络(因此我需要跟踪点击次数和'销售'),所以我很困惑,因为bigQuery似乎只是一个更好的API的bigTable.
cloud bigtable google-bigquery google-cloud-platform google-cloud-spanner
我不确定为什么媒体普遍表示谷歌的TrueTime API难以复制(有线,Slashdot等).
我可以理解如何获得谷歌实现的低错误间隔是一件困难的事情,但我不知道API本身将如何变得非常困难.
例如,我掀起了一个黑客攻击版本.这是间隔.
typedef struct TT_interval {
struct timeval earliest;
struct timeval latest;
} TT_interval;
Run Code Online (Sandbox Code Playgroud)
这是现在的功能.
int TT_now(TT_interval* interval)
{
struct ntptimeval tv;
struct timeval delta;
struct timeval* earliest_p = &(interval->earliest);
struct timeval* latest_p = &(interval->latest);
struct timeval* now_p = &(tv.time);
struct timeval* delta_p = δ
timerclear(&delta);
timerclear(&interval->earliest);
timerclear(&interval->latest);
if(ntp_gettime(&tv) == 0) {
tv.maxerror = tv.maxerror > 0 ? tv.maxerror : -(tv.maxerror);
delta.tv_sec = delta.tv_sec + (tv.maxerror / 1000);
delta.tv_usec = delta.tv_usec + ((tv.maxerror % 1000) * 1000);
if(delta.tv_usec …Run Code Online (Sandbox Code Playgroud) c time distributed-computing google-cloud-platform google-cloud-spanner
有没有办法用云扳手进行本地开发?我已经浏览了文档和CLI工具,似乎没有任何东西.或者,有人可以建议一个SQL数据库,其行为类似于读取(不确定如何处理写入)?
编辑:澄清一下,我正在寻找一个与Cloud Spanner具有相同SQL风格的数据库,因此我可以在本地进行开发.确切的性能特征不如API和一致性行为重要.我认为Cockroach不符合这些要求吗?
sql database google-cloud-platform cockroachdb google-cloud-spanner
我是 GCP 堆栈的新手,所以我对用于存储数据的 GCP 技术数量感到非常困惑:
https://cloud.google.com/products/storage
虽然上面的文章中没有提到 google cloud spanner,但我知道它是存在的,并且 iti 用于数据存储:https : //cloud.google.com/spanner
从我目前的观点来看,我没有看到云 sql(引擎盖下有 postgres)和云扳手之间的任何显着差异。我发现它的语法有点不同,但是当我应该更喜欢这种技术而不是 spring cloud sql 时,它没有回答。
你能解释一下吗?
聚苯乙烯
我认为spring cloud sql是一个由google管理的具有自动复制和水平可扩展性的传统数据库。
google-cloud-sql google-cloud-platform google-cloud-spanner spring-cloud-gcp
是否可以对Google Cloud Spanner数据库/表格进行快照?出于合规性原因,我们必须拥有当前数据库的每日快照,以便在发生灾难时回滚到当前数据库:这在Spanner中是否可行?如果没有意图支持它吗?
对于那些可能会问为什么我们需要它的人,因为扳手是复制/冗余等 - 它不能防止人为错误(意外丢桌)或破坏/间谍因此问题和要求.
谢谢,M
我在Spanner中有以下查询优化问题,并希望有一个我缺少的技巧,这将帮助我将查询规划器弯曲到我的意愿.
这是简化的架构:
create table T0 (
key0 int64 not null,
value int64,
other int64 not null,
) primary key (key0);
create table T1 {
key1 int64 not null,
other int64 not null
} primary key (key1);
Run Code Online (Sandbox Code Playgroud)
并在IN子句中使用子查询进行查询:
select value from T0 t0
where t0.other in (
select t1.other from T1 t1 where t1.key1 in (42, 43, 44) -- note: this subquery is a good deal more complex than this
)
Run Code Online (Sandbox Code Playgroud)
通过T0的散列连接与子查询的输出生成10个元素集:
Operator Rows Executions
----------------------- ----- ----------
Serialize …Run Code Online (Sandbox Code Playgroud) 我关注这个很棒的博客。在这篇博客中,作者对所有类型的隔离和一致性以及它们之间的关系进行了完整的描绘。

但是基于谷歌的博客,还有另一种类型的一致性External Consistency,它是由谷歌的 Spanner 数据库提供的。据我了解:
External consistency = Strongly Consistency + Strict Serializable
Run Code Online (Sandbox Code Playgroud)
经过一番研究,外部一致性的定义可能是:
对于任意两个事务 1 和 2(即使在地球的两侧):如果 2 在 1 完成提交后开始提交,则 2 的时间戳大于 1 的时间戳。
我还没有看到之间的差异External consistency和Strict Serializability。请给我一个它满足Strict Serializability但不满足的例子External Consistency。
谢谢
在阅读新谷歌关系数据库Spanner的定价后,它指出成本是基于存储和使用.他们每节点收费0.9美元.问题是:如果我为开发创建数据库,并且每天只使用它6小时,每月最多100小时...我是否只需要支付活跃使用时间(接收查询)或整个时间月?费用类似于App Engine实例?
在第一种情况下,花费90美元来测试这个新数据库是没有问题的,但是如果他们收取整个月的费用(使用与否)......成本上涨到每月670美元......
任何人一直在使用这个数据库,可以分享最终的发票费用吗?
在教程中,他们建议在测试后删除de数据库,但是对于开发来说,删除数据库并每天重新创建数据库和数据是不合适的.
目前尚不清楚如何运行查询(或进行API调用)以列出所有表。使用Spanner可以做到吗?
我在 Google Cloud Spanner 中有一个 860M 行的表格,我试图了解解释的工作原理。
该表有一个字符串列geoid,该列有一个索引。
当我运行以下查询时,它只需要 36 毫秒:
SELECT count(*)
FROM usbg_2015
WHERE geoid= '340170175001'
Run Code Online (Sandbox Code Playgroud)
表结构为:
CREATE TABLE usbg_2015 (
geoid STRING(12),
quadkey STRING(24),
) PRIMARY KEY (geoid, quadkey)
Run Code Online (Sandbox Code Playgroud)
但是,我不明白为什么解释说它使用Table Scan而不是Index Scan。我将表扫描理解为对表的完整扫描,在这种情况下读取 860M 行,它应该花费超过 36 毫秒的时间。我缺少什么?