数据源连接(SERVER)保存访问 Lance 数据集所需的地址、访问方式和凭据,可供多个外表映射共享。每张外表通过 server:// CONNECTION 指定数据集具体访问路径。
适用范围与接入方式选择
已满足适用范围,使用读写节点(RW)主地址执行 SERVER 管理操作,并选择目标数据库,账号需要具有 SERVERS_ADMIN 权限。接入方式如下表所示,每个 SERVER 选择一种接入方式,并提供该方式所需的完整配置。
方式 | 适用场景 |
已知数据集在 OSS 路径,直接读取。 | |
基于 Directory Namespace 规范,在 OSS 上解析表位置。 | |
通过 REST 服务发现数据集位置和访问配置。 |
创建 SERVER
执行以下语句创建数据源连接。请按下表参数说明,替换示例中的名称(example_server)和连接配置(YOUR_CONNECTION_OPTIONS_JSON)。
CREATE SERVER example_server
FOREIGN DATA WRAPPER lance
OPTIONS (EXTRA_SERVER_INFO 'YOUR_CONNECTION_OPTIONS_JSON');参数说明
参数或语法项 | 填写要求 | 说明 |
SERVER 名称( | 必填 | 数据源名称,在集群内唯一、不区分大小写,长度不超过 64 个字符。 |
| 必填 | 固定填写 |
| 必填 | 连接参数的 JSON 对象。将 |
查看 SERVER
执行以下语句查看名称和类型,Wrapper 应为 lance。查询 mysql.servers 需要 SERVERS_ADMIN 权限。
SET SESSION use_imci_engine = OFF;
SELECT Server_name, Wrapper
FROM mysql.servers
WHERE Server_name = 'example_server';修改 SERVER 与轮换凭据
执行以下语句修改 SERVER 配置。修改 EXTRA_SERVER_INFO 会整体替换原配置,并影响引用该 SERVER 的全部外表。因此,请基于原有完整连接配置,修改必要字段,并保留所有仍需使用的字段,最后将新配置替换到 YOUR_UPDATED_CONNECTION_OPTIONS_JSON。
ALTER SERVER example_server
OPTIONS (EXTRA_SERVER_INFO 'YOUR_UPDATED_CONNECTION_OPTIONS_JSON');SERVER 手工配置的凭据,如有到期时间,需在到期前轮换,正在执行的查询不会自动续期。轮换凭据时,AccessKey ID 和 AccessKey Secret 必须成组更新。使用 STS(Security Token Service)时,还需提供同组 token。
执行 ALTER SERVER 后,新语句自动加载更新后的配置,无需执行 FLUSH TABLES;已开始执行的语句继续使用原有 SERVER 配置。修改完成后,切换到目标外表所在的数据库,执行查询验证(如以下示例查询)。以下以已创建并引用待验证 SERVER 的 example_table 外表为例。
SET SESSION use_imci_engine = OFF;
SHOW CREATE TABLE example_table;
SELECT * FROM example_table LIMIT 10;删除 SERVER
停止使用相关外表后,先使用 DROP FOREIGN TABLE 删除所有引用该 SERVER 的外表,再使用 DROP SERVER 删除数据源连接(SERVER)。删除外表和 SERVER 不会删除 OSS 数据,仍引用已删除 SERVER 的外表无法正常读取。
DROP FOREIGN TABLE example_table;
DROP SERVER example_server;