创建DLI表关联DCS
功能描述
使用CREATE TABLE命令创建DLI表并关联DCS上已有的Key。
前提条件
创建DLI表关联DCS之前需要创建跨源连接,绑定队列。
语法格式
- 指定Key
1 2 3 4 5 6 7 8 9 10 11
CREATE TABLE [IF NOT EXISTS] TABLE_NAME( FIELDNAME1 FIELDTYPE1, FIELDNAME2 FIELDTYPE2) USING REDIS OPTIONS ( 'host'='xx', 'port'='xx', 'passwdauth' = 'xxx', 'encryption' = 'true', 'table'='namespace_in_redis:key_in_redis', 'key.column'= 'FIELDNAME1' );
- 通配key
1 2 3 4 5 6 7 8 9 10 11
CREATE TABLE [IF NOT EXISTS] TABLE_NAME( FIELDNAME1 FIELDTYPE1, FIELDNAME2 FIELDTYPE2) USING REDIS OPTIONS ( 'host'='xx', 'port'='xx', 'passwdauth' = 'xxx', 'encryption' = 'true', 'keys.pattern'='key*:*', 'key.column'= 'FIELDNAME1' );
关键字
参数 |
描述 |
---|---|
host |
DCS的连接IP,需要先创建跨源连接。 创建增强型跨源连接后,使用DCS提供的"连接地址"。"连接地址"有多个时,选择其中一个即可。
说明:
访问DCS目前只支持增强型跨源。 |
port |
DCS的连接端口,例如6379。 |
password |
(已废弃)创建DCS集群时填写的密码。访问非安全Redis集群时不需要填写。 |
passwdauth |
跨源密码认证名称。跨源认证信息创建方式请参考《数据湖探索用户指南》>《跨源认证》。 |
encryption |
使用跨源密码认证时配置为“true”。 |
table |
对应Redis中的Key或Hash Key。
|
keys.pattern |
使用正则表达式匹配多个Key或Hash Key。该参数仅用于查询时使用。查询redis数据时与“table”参数二选一。 |
key.column |
非必填。用于指定schema中的某个字段作为Redis中key的标识。在插入数据时与参数“table”配合使用。 |
partitions.number |
读取数据时,并发task数。 |
scan.count |
每批次读取的数据记录数,默认为100。如果在读取过程中,redis集群中的CPU使用率还有提升空间,可以调大该参数。 |
iterator.grouping.size |
每批次插入的数据记录数,默认为100。如果在插入过程中,redis集群中的CPU使用率还有提升空间,可以调大该参数。 |
timeout |
连接redis的超时时间,单位ms,默认值2000(2秒超时)。 |
访问DCS时,不支持复杂类型数据(Array、Struct、Map等)。
可以考虑以下几种方式进行复杂类型数据处理:
- 字段扁平化处理,将下一级的字段展开放在同一层Schema字段中。
- 使用二进制方式进行写入与读取,并通过自定义函数进行编解码。
示例
- 指定table
1 2 3 4 5 6 7 |
create table test_redis(name string, age int) using redis options(
'host' = '192.168.4.199',
'port' = '6379',
'passwdauth' = 'xxx',
'encryption' = 'true',
'table' = 'person'
);
|
- 通配table名
1 2 3 4 5 6 7 8 |
create table test_redis_keys_patten(id string, name string, age int) using redis options(
'host' = '192.168.4.199',
'port' = '6379',
'passwdauth' = 'xxx',
'encryption' = 'true',
'keys.pattern' = 'p*:*',
'key.column' = 'id'
);
|