外部字典
- RFC PR: datafuselabs/databend-docs#996
- Tracking Issue: datafuselabs/databend#15901
概述
实现外部字典功能允许Databend访问来自其他外部数据源的数据。
动机
在Databend中访问MySQL等外部数据库的数据通常需要导出MySQL数据集,然后将其导入Databend数据库。当处理大量信息时,这一过程变得繁琐,并且由于频繁更新可能导致数据不一致。
引入外部字典功能通过促进Databend与各种数据库系统之间的无缝集成,解决了这些挑战。通过字典创建,直接访问外部数据集实现了实时修改,同时简化了整体数据管理。
指南级解释
DICTIONARY使用以下语法进行创建、删除和查询。
- 创建名为user_info的字典。
CREATE DICTIONARY user_info(
user_id UInt86,
user_name String,
user_address String
)
primary key(user_id)
SOURCE(MYSQL(
host '[localhost](http://localhost/)'
user 'root'
password 'root'
db 'db_name'
table 'table_name'
));
- 查询现有字典。
SHOW DICTIONARIES;
- 查询用于创建字典user_info的SQL语句。
SHOW CREATE DICTIONARY user_info;
- 删除字典user_info。
DROP DICTIONARY user_info;
您可以使用dict_get(dict_name, dict_field, dict_id)
从字典中查询数据。
dict_get
函数接受三个参数:第一个是字典的名称,第二个是要查询的字段,第三个是查询字典的ID。
参考级解释
DICTIONARY的相关元数据存储在Databend的元模块中,并在执行SQL查询时用于检索必要的信息。