- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我将 event
系列存储在 BigTable 中,格式如下:
rowKey | col_1 | col_2
----------------------|-------|------
uuid1!uuid2!timestamp | val1 | val2
....
col_1
包含一个 float64
而 col_2
包含一个 63 个字符长的字符串。
这一系列 event
中的特定范围被分组并松散地关联到我们将称为 operation
的对象:
{
"id": 123,
"startDate": "2019-07-15T14:02:12.335+02:00",
"endDate": "2019-07-15T14:02:16.335+02:00"
}
所以你可以说一个operation
是一个event
的时间窗口,并且可能关联到10-1000个event
。
当我想向用户显示此数据时,我首先查询 operation
对象,然后为每个 operation
执行 BigTable 查询以找到 >它涵盖的事件
。
通过监控我发现每个 BigTable(一个开发实例,请注意)查询可能需要 20 毫秒到 300 毫秒。
这让我想知道,考虑到 BigTable 的架构 - 执行小的、单独的查询是否有意义?
执行一个涵盖我的 operation
范围的大查询,然后在我的应用程序中将事件划分到它们各自的 operation
是否更有意义?
最佳答案
很可能是的,但这里的细节很重要。
如果每个用户请求只有几个操作,那么并行发出小查询实际上可能更好。这将使您获得每个请求的最佳延迟,但会以集群的每个请求 CPU 开销为代价。您的应用程序代码也会更加复杂。
如果每个用户请求有很多操作,您肯定希望通过扫描获得更高的吞吐量效率。
对于高级用例,您还可以在两者之间做出折衷,并将扫描分成并行运行的 N 个分片,其中 N << #operations。
您绝对不应该做的一件事是一次发送一个小请求,因为您只会产生一堆不必要的往返!
关于go - BigTable:一个大查询还是一打小查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57612508/
为什么 BigTable 被构造为“family:qualifier”的两级层次结构?具体来说,为什么要强制执行此操作而不是仅使用列,并且例如建议用户将其限定符命名为“vertical:column”
Google 现在允许您使用 BigTable(在 Google Cloud Platform 中托管为名为“Cloud Bigtable”的产品)开发应用程序。但是,我找不到太多关于如何为其设计模式
Google Cloud Bigtable 看起来很棒,但是我对备份和冗余有一些疑问。 是否有备份数据以防止人为错误的任何选项? 集群当前在单个区域中运行 - 是否有任何方法可以缓解区域不可用的情况?
我们有一些用例,希望在 Google Bigtable 中长期存储大量数据: 产品开发期间 用于性能调整 用于演示 我们需要存储数据,但我们并不真正需要它始终“在线”。当前的成本瓶颈似乎是节点的成本,
我想衡量 Cloud Bigtable 在获取具有特定前缀的键的许多行计数方面的性能。 假设一个模式的行键在末尾带有 unix 时间戳,例如,event_id#unix_timestamp。 如果我需
根据Cloud Bigtable performance docs我应该有一定的数据量来保证最高的吞吐量。 在“性能较慢的原因”下它说: The workload isn't appropriate
BigTable 是否支持类似于 INCR 的原子增量操作?在 Redis 中? BT的Golang库中有这个函数-https://godoc.org/cloud.google.com/go/bigt
我们正在试用 BigTable 并进行容量规划。我们认为一个节点可以满足我们实现初期的需求,以后我们会根据需要添加更多节点。我唯一的问题是,我们是否需要多个节点才能提供高可用性? (我对什么是“节点”
我们已经设置了具有 5 个节点的 Bigtable 集群,GCP 控制台指出它应该支持 50K QPS @ 6ms 的读取和写入。 我们正在尝试加载一个大型数据集(约 8 亿条记录),其中约 50 个
我有一个只有一个列族的表,该列的 TTL 为 24 小时,但我需要在截止日期前删除一些数据。 为了实现这个目标,我伪造了插入日期。例如:如果我需要在插入后 1 小时删除一行,我将插入日期设置为 23
我有一个只有一个列族的表,该列的 TTL 为 24 小时,但我需要在截止日期前删除一些数据。 为了实现这个目标,我伪造了插入日期。例如:如果我需要在插入后 1 小时删除一行,我将插入日期设置为 23
我正在尝试使用以下 YAML 配置文件部署 Bigtable 实例: resources: - name: foo-bigtable-instance type: bigtableadmin.v2
有人可以提供一个真实的例子来说明如何在 Bigtable 中构建数据吗?请从搜索引擎、社交网络或任何其他熟悉的角度讨论,清楚而务实地说明行 -> 列族 -> 列组合如何优于传统的规范化关系方法。 最佳
我创建了一个 Google Bigtable 集群。我正在尝试连接以下 this tutorial我试图下载他们的 cli 项目并构建它,但是当我尝试执行任何命令时它都会失败。我还尝试构建更简单的连接
避免热点的 Bigtable 行键方案? 一家公司需要您在 Google Bigtable 中创建一个架构,以允许对过去 2 年的记录进行历史分析。收到的每条记录每 15 分钟发送一次,其中包含设备的
我们目前正在调查使用多个列族对我们的 bigtable 查询性能的影响。我们发现将列拆分为多个列族并不会提高性能。有没有人有过类似的经历? 关于我们的基准设置的更多细节。此时,我们生产表中的每一行都包
假设有一行包含列族和其中的列。该列族有一个 gc 策略,并且该列中的所有值都刚刚过期。 那么,该行会发生什么情况?该行会被垃圾收集器删除吗?或者,它仍然存在并且可以访问吗? 我检查了文档,但只发现 h
假设有一行包含列族和其中的列。该列族有一个 gc 策略,并且该列中的所有值都刚刚过期。 那么,该行会发生什么情况?该行会被垃圾收集器删除吗?或者,它仍然存在并且可以访问吗? 我检查了文档,但只发现 h
来自 CBT 的文档 // READING OP HERE timestamp := bigtable.Now() mut := bigtable.NewMutation() mut.Set(colu
来自bigtable的论文。 bigtable我读到了这个: Each METADATA row stores approximately 1KB of data in memory. With a
我是一名优秀的程序员,十分优秀!