Database GCP中BigTable中的columnfamily与关系数据库中的列有何关系

Database GCP中BigTable中的columnfamily与关系数据库中的列有何关系,database,google-cloud-platform,google-cloud-bigtable,bigtable,Database,Google Cloud Platform,Google Cloud Bigtable,Bigtable,我正在尝试将当前在关系数据库中的表迁移到BigTable。 假设该表当前具有以下结构: 表:消息 栏目: 消息id 信息文本 消息时间戳 如何在BigTable中创建类似的表? 从文档中可以看到,BigTable使用ColumnFamily。ColumnFamily是否等同于关系数据库中的列?BigTable在许多方面不同于关系数据库系统 关于数据库结构,BigTable应该被视为一个宽列的NoSQL数据库 基本上,每个记录都由一行表示,对于这一行,您可以提供任意数量的名称-值对 此行具有以

我正在尝试将当前在关系数据库中的表迁移到BigTable。 假设该表当前具有以下结构:

表:消息

栏目:

  • 消息id
  • 信息文本
  • 消息时间戳
如何在BigTable中创建类似的表?
从文档中可以看到,BigTable使用ColumnFamily。ColumnFamily是否等同于关系数据库中的列?

BigTable在许多方面不同于关系数据库系统

关于数据库结构,BigTable应该被视为一个宽列的NoSQL数据库

基本上,每个记录都由一行表示,对于这一行,您可以提供任意数量的名称-值对

此行具有以下特征

行键

  • 每一行都由一个行键进行单音识别。它类似于关系数据库中的主键。该字段由系统按字典顺序存储,是表中唯一的索引信息
  • 在构造此键时,您可以选择单个字段或组合多个字段,并用
    或任何其他分隔符分隔
  • 此键的构造是构造表时要考虑的最重要方面。你必须考虑如何查询这些信息。除此之外,请记住以下几点(始终记住词典顺序):
    • 通过连接字段定义前缀,使您能够高效地获取信息。BigTable允许和您扫描以某个前缀开头的信息
    • 相关的,以一种允许您将公共信息(例如,在来自某个来源的所有消息中)存储在一起的方式对密钥进行建模,以便以更高效的方式获取
    • 同时,以最大化BigTable集群中不同节点之间的分散性和负载平衡的方式定义键
列族

  • 与行关联的信息按列族组织。它与关系数据库中的任何概念都没有对应关系
  • 列族允许您粘合多个相关字段和列
  • 首先需要定义柱族

  • 列将存储实际值。它在某种意义上类似于关系数据库中的列
  • 不同的行可以有不同的列。BigTable将稀疏地存储信息,如果不为行提供值,它将不占用空间
  • BigTable是一个三维数据库:对于每个记录,除了实际值之外,还存储一个时间戳
在您的用例中,您可以这样建模您的表(例如,考虑您也能够识别消息的来源,并且它是一个值信息):

行键=消息来源#消息时间戳(截断为半小时,小时…)1#消息id

列系列=消息详细信息

=消息文本、消息时间戳

这将生成行键,例如,考虑消息是从ID为代码的设备发送的MT43/COD>:

MT43#1330516800#1242635
请按照@norbjd的建议,参阅相关文章,以获得对这些概念的深入解释

需要注意的与关系数据库的一个重要区别是:BigTable仅提供原子单行事务,如果使用单集群路由,则提供原子单行事务



例如,请参见:

BigTable在许多方面不同于关系数据库系统

关于数据库结构,BigTable应该被视为一个宽列的NoSQL数据库

基本上,每个记录都由一行表示,对于这一行,您可以提供任意数量的名称-值对

此行具有以下特征

行键

  • 每一行都由一个行键进行单音识别。它类似于关系数据库中的主键。该字段由系统按字典顺序存储,是表中唯一的索引信息
  • 在构造此键时,您可以选择单个字段或组合多个字段,并用
    或任何其他分隔符分隔
  • 此键的构造是构造表时要考虑的最重要方面。你必须考虑如何查询这些信息。除此之外,请记住以下几点(始终记住词典顺序):
    • 通过连接字段定义前缀,使您能够高效地获取信息。BigTable允许和您扫描以某个前缀开头的信息
    • 相关的,以一种允许您将公共信息(例如,在来自某个来源的所有消息中)存储在一起的方式对密钥进行建模,以便以更高效的方式获取
    • 同时,以最大化BigTable集群中不同节点之间的分散性和负载平衡的方式定义键
列族

  • 与行关联的信息按列族组织。它与关系数据库中的任何概念都没有对应关系
  • 列族允许您粘合多个相关字段和列
  • 首先需要定义柱族

  • 列将存储实际值。它在某种意义上类似于关系数据库中的列
  • 对于不同的ro,可以有不同的列