range_hashed

简介: range_hashed

range_hashed 字典可以看做 hashed 字典的变种,它在原有功能的基础上增加了指定时间区间的特性,数据会以散列结构存储并按照时间排序。时间区间通过 range_minrange_max 元素指定,所指定的字段必须是 DateDateTime 类型。


现在仿照 hashed 字典的配置,创建一个名为 test_range_hashed_dictionary.xml 的配置文件,将 layout 改为 range_hashed 并增加 range_minrange_max 元素。它的完整示例如下所示:

<?xml version="1.0"?>
<dictionaries>
  <dictionary>
    <name>test_range_hashed_dict</name>
    <source>
      <!-- 准备好的测试数据 -->
      <file>
        <path>/var/lib/clickhouse/dictionaries_lib/sales.csv</path>
        <format>CSV</format>
      </file>
    </source>
    <layout>
      <range_hashed />
    </layout>
    <!-- 与测试数据的结构对应 -->
    <structure>
      <id>
        <name>id</name>
      </id>
      <range_min>
        <name>start</name>
      </range_min>
      <range_max>
        <name>end</name>
      </range_max>
      <attribute>
        <name>price</name>
        <type>Float32</type>
        <null_value></null_value>
      </attribute>
    </structure>
    <lifetime>
      <min>300</min>
      <max>360</max>
    </lifetime>
  </dictionary>
</dictionaries>点击复制复制失败已复制


保存文件,再次查询系统中的所有字典:

$ SELECT name, type, key, attribute.names, attribute.types FROM system.dictionaries;
┌─name───────────────────┬─type─┬─key────┬─attribute.names─┬─attribute.types─────┐
│ test_range_hashed_dict │      │ UInt64 │ ['price']       │ ['Float32']         │
│ test_hashed_dict       │      │ UInt64 │ ['code','name'] │ ['String','String'] │
│ test_flat_dict         │      │ UInt64 │ ['code','name'] │ ['String','String'] │
└────────────────────────┴──────┴────────┴─────────────────┴─────────────
目录
相关文章
range() 函数
`range()`函数在Julia中生成指定范围和步长的序列。它可以有四个参数:`start`(起始值),`stop`(结束值),`length`(长度)和`step`(步长)。例如,`range(1, stop=100)`产生从1到100的序列。如果`length`未指定,序列会在接近`stop`但能被`step`整除的位置结束。`collect()`与`range()`结合使用可创建数组。示例展示了不同参数组合下的序列生成,并将其转换为数组。
|
6月前
|
索引 Python
row[i] = col[j] = TrueIndexError: list assignment index out of range
row[i] = col[j] = TrueIndexError: list assignment index out of range
|
Python
【Numpy】深入剖析Numpy.arange()与range()的区别
【Numpy】深入剖析Numpy.arange()与range()的区别
160 0
|
算法 索引 Python
为什么 x in range(1000000000000001) 的执行速度这么快
为什么 x in range(1000000000000001) 的执行速度这么快
75 0
LeetCode 307. Range Sum Query - Mutable
update(i, val) 函数可以通过将下标为 i 的数值更新为 val,从而对数列进行修改。
104 0
LeetCode 307. Range Sum Query - Mutable
range
range() 是一个函数,可以用来生成一个自然数的序列。 该函数需要三个参数:起始位置(可以省略,默认是 0);结束位置;步长(可以省略,默认是 1)。 通过 range() 可以创建一个执行指定次数的 for 循环。
113 0
range
|
索引 Python
成功解决ValueError: column index (256) not an int in range(256)
成功解决ValueError: column index (256) not an int in range(256)
成功解决ValueError: column index (256) not an int in range(256)
|
Linux Python
ValueError: empty range for randrange() (0, 0, 0)
ValueError: empty range for randrange() (0, 0, 0)
|
人工智能 索引 Python