扩展字典的数据结构

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

扩展字典的数据结构由 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 的映射关系就是单射

目录
相关文章
|
3月前
|
存储 数据安全/隐私保护 Python
Python常用数据结构——字典的应用
Python常用数据结构——字典的应用
|
3月前
|
存储 数据安全/隐私保护 Python
Python常用数据结构—字典
Python常用数据结构—字典
|
7月前
|
存储 NoSQL 算法
【Redis技术进阶之路】「底层源码解析」揭秘高效存储模型与数据结构底层实现(字典)(二)
【Redis技术进阶之路】「底层源码解析」揭秘高效存储模型与数据结构底层实现(字典)
116 0
|
4月前
|
存储 JSON NoSQL
Tair的发展问题之Tair 扩展了的高级数据结构有哪些
Tair的发展问题之Tair 扩展了的高级数据结构有哪些
|
6月前
|
存储 Python
Python中使用列表和字典来存储和处理复杂的数据结构
Python中使用列表和字典来存储和处理复杂的数据结构
|
5月前
|
存储 数据可视化 数据处理
`geopandas`是一个开源项目,它为Python提供了地理空间数据处理的能力。它基于`pandas`库,并扩展了其对地理空间数据(如点、线、多边形等)的支持。`GeoDataFrame`是`geopandas`中的核心数据结构,它类似于`pandas`的`DataFrame`,但包含了一个额外的地理列(通常是`geometry`列),用于存储地理空间数据。
`geopandas`是一个开源项目,它为Python提供了地理空间数据处理的能力。它基于`pandas`库,并扩展了其对地理空间数据(如点、线、多边形等)的支持。`GeoDataFrame`是`geopandas`中的核心数据结构,它类似于`pandas`的`DataFrame`,但包含了一个额外的地理列(通常是`geometry`列),用于存储地理空间数据。
|
6月前
|
存储 Python 容器
Python零基础入门-5 数据结构(集合和字典)
Python零基础入门-5 数据结构(集合和字典)
|
6月前
|
索引 Python 容器
【Python核心数据结构探秘】:元组与字典的完美协奏曲
【Python核心数据结构探秘】:元组与字典的完美协奏曲
|
7月前
|
存储 Python
python基础篇:图解Python字典,一目了然的键值对数据结构!
【4月更文挑战第6天】python基础篇:图解Python字典,一目了然的键值对数据结构!
148 2
python基础篇:图解Python字典,一目了然的键值对数据结构!
|
7月前
|
存储 程序员 索引
数据结构深度剖析:列表、元组、字典和集合
【4月更文挑战第8天】Python的四种基础数据结构——列表、元组、字典和集合,各自拥有独特的特性和应用场景。列表是可变序列,方便增删改元素;元组不可变,常用于保证数据不变性;字典是键值对容器,快速访问通过键;集合是无序不重复元素集,适合成员测试和去重。理解并灵活运用这些数据结构,能提升代码效率,有效处理和分析数据。
86 1