外部字典
- 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 查询时用于检索必要的信息。