扩展字典的数据结构

简介: 扩展字典的数据结构

扩展字典的数据结构由 structure 元素定义,由键值 key 和属性 attribute 两部分组成,它们分别描述字典的数据标识字段属性structure 的完整形式如下所示:

<dictionary>
  <structure>
    <!-- <id>或<key> -->
    <id>
      <!-- Key属性 -->
    </id>
    <attribute>
      <!-- 字段属性 -->
    </attribute>
  </structure>
</dictionary>点击复制复制失败已复制


key

key 用于定义字典的键值,每个字典必须包含 1 个键值 key 字段,用于定位数据,类似数据库的表主键。键值 key 分为数值型复合型两类。


数值型

数值型 keyUInt64 整型定义,支持 flathashedrange_hashedcache 类型的字典,它的定义方法如下所示:

<structure>
  <id>
    <!-- 名称自定义 -->
    <name>Id</name>
  </id>
</structure>点击复制复制失败已复制


复合型

复合型 key 使用 Tuple 元组定义,可以由 1 到多个字段组成,类似数据库中的复合主键。它仅支持 complex_key_hashedcomplex_key_cacheip_trie 类型的字典。其定义方法如下所示:

<structure>
  <key>
    <attribute>
      <name>field1</name>
      <type>String</type>
    </attribute>
    <attribute>
      <name>filed2</name>
      <type>UInt64</type>
    </attribute>
    <!-- 省略…… -->
  </key>
  <!-- 省略…… -->
</structure>点击复制复制失败已复制


attribute

attribute 用于定义字典的属性字段,字典可以拥有 1 到多个属性字段。它的完整定义方法如下所示:

<structure>
  <!-- 省略…… -->
  <attribute>
    <name>Name</name>
    <type>DataType</type>
    <!-- 空字符串 -->
    <null_value></null_value>
    <expression>generateUUIDv4()</expression>
    <hierarchical>true</hierarchical>
    <injective>true</injective>
    <is_object_id>true</is_object_id>
  </attribute>
  <!-- 省略…… -->
</structure>点击复制复制失败已复制


attribute 元素下共有 7 个配置项,其中 nametypenull_value 为必填项。这些配置项的详细说明如下:

配置名称 必填 默认值 说明
name 字段名称
type 字段类型,参加数据类型
null_value 在查询时,条件 key 没有对应元素时的默认值
expression 无表达式 表达式,可以调用函数或者使用运算符
hierarchical false 是否支持层次结构
injective false 是否支持集合单射优化。开启后,在后续的 GROUP BY 查询中,如果调用 distGet 函数通过 key 获取 value ,则该 value 直接从 GROUP BY 数据返回。
is_object_id false 是否开启 MongoDB 优化,通过 ObjectIDMongoDB 文档执行查询


提示

假设有两个集合 AB 。如果集合 A 中的每个元素 x ,在集合 B 中都有一个唯一与之对应的元素 y ,那么集合 AB 的映射关系就是单射

目录
相关文章
|
4月前
|
Serverless Python
在Python中,用于实现哈希表的数据结构主要是字典(`dict`)
在Python中,用于实现哈希表的数据结构主要是字典(`dict`)
25 1
|
2月前
|
存储 NoSQL 算法
【Redis技术进阶之路】「底层源码解析」揭秘高效存储模型与数据结构底层实现(字典)(二)
【Redis技术进阶之路】「底层源码解析」揭秘高效存储模型与数据结构底层实现(字典)
54 0
|
2月前
|
存储 Python
Python数据结构讲解字典
Python数据结构讲解字典
21 1
|
3月前
|
缓存 NoSQL 数据库
除了字典,还有哪些其他的缓存数据结构可以在Python中使用?
除了字典,还有哪些其他的缓存数据结构可以在Python中使用?
21 1
|
4月前
|
Python 容器
在Python中,字典(dict)数据结构
在Python中,字典(dict)数据结构
24 2
|
5月前
|
Serverless 数据库 索引
Python基础语法、内建数据结构列表、元组、字典、集合的讲解及应用(附源码 超详细必看)
Python基础语法、内建数据结构列表、元组、字典、集合的讲解及应用(附源码 超详细必看)
54 0
|
5月前
|
存储 索引 Python
python数据结构,集合(set)和字典(dict)之间的主要区别是什么?
python数据结构,集合(set)和字典(dict)之间的主要区别是什么?
|
5月前
|
Python
python数据结构,字典(dict)是如何工作的?如何进行键值对查找和插入?
python数据结构,字典(dict)是如何工作的?如何进行键值对查找和插入?
|
8月前
|
存储 数据处理 Python
标题:Python数据结构详解:列表、元组、字典和集合
标题:Python数据结构详解:列表、元组、字典和集合
|
9月前
|
存储 索引 Python
【100天精通python】Day9:数据结构_字典、集合
【100天精通python】Day9:数据结构_字典、集合
67 0