Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
7060b8a3
C
ClickHouse
项目概览
2dot5
/
ClickHouse
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
ClickHouse
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
7060b8a3
编写于
12月 18, 2017
作者:
A
Andrey Dudin
提交者:
GitHub
12月 18, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Create dictionary.md
上级
bee53d48
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
98 addition
and
0 deletion
+98
-0
docs/ru/table_engines/dictionary.md
docs/ru/table_engines/dictionary.md
+98
-0
未找到文件。
docs/ru/table_engines/dictionary.md
0 → 100644
浏览文件 @
7060b8a3
<a
name=
"table_engines-dictionary"
></a>
# Dictionary
Движок
`Dictionary`
отображает данные словаря как таблицу ClickHouse.
К примеру у нас есть словарь
`products`
со следующим конфигом:
```
xml
<dictionaries>
<dictionary>
<name>
products
</name>
<source>
<odbc>
<table>
products
</table>
<connection_string>
DSN=some-db-server
</connection_string>
</odbc>
</source>
<lifetime>
<min>
300
</min>
<max>
360
</max>
</lifetime>
<layout>
<flat/>
</layout>
<structure>
<id>
<name>
product_id
</name>
</id>
<attribute>
<name>
title
</name>
<type>
String
</type>
<null_value></null_value>
</attribute>
</structure>
</dictionary>
</dictionaries>
```
Проверяем:
```
sql
:)
select
name
,
type
,
key
,
attribute
.
names
,
attribute
.
types
,
bytes_allocated
,
element_count
,
source
from
system
.
dictionaries
where
name
=
'products'
;
SELECT
name
,
type
,
key
,
attribute
.
names
,
attribute
.
types
,
bytes_allocated
,
element_count
,
source
FROM
system
.
dictionaries
WHERE
name
=
'products'
┌─
name
─────┬─
type
─┬─
key
────┬─
attribute
.
names
─┬─
attribute
.
types
─┬─
bytes_allocated
─┬─
element_count
─┬─
source
──────────┐
│
products
│
Flat
│
UInt64
│
[
'title'
]
│
[
'String'
]
│
23065376
│
175032
│
ODBC
:
.
products
│
└──────────┴──────┴────────┴─────────────────┴─────────────────┴─────────────────┴───────────────┴─────────────────┘
```
В таком виде данные из словаря можно смотреть/использовать при помощи функций
[
dictGet*
](
../functions/ext_dict_functions.md
)
.
Это бывает не всегда угодно, когда требуется выполнять JOIN операции или просто получить данные находящиеся сейчас в словаре.
Мы можем использовать джок таблицы
`Dictionary`
для отображения данных словаря в таблицу.
Синтаксис:
`CREATE TABLE %table_name% (%fields%) engine = Dictionary(%dictionary_name%)`
Попробуем:
```
sql
:)
create
table
products
(
product_id
UInt64
,
title
String
)
Engine
=
Dictionary
(
products
);
CREATE
TABLE
products
(
product_id
UInt64
,
title
String
,
)
ENGINE
=
Dictionary
(
products
)
Ok
.
0
rows
in
set
.
Elapsed
:
0
.
004
sec
.
```
Проверим что у нас в таблице?
```
sql
:)
select
*
from
products
limit
1
;
SELECT
*
FROM
products
LIMIT
1
┌────
product_id
─┬─
title
───────────┐
│
152689
│
Некоторый
товар
│
└───────────────┴─────────────────┘
1
rows
in
set
.
Elapsed
:
0
.
006
sec
.
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录