• 沒有找到結果。

1.19.1 创建 DLI 表关联 CSS

功能描述

使用CREATE TABLE命令创建DLI表并关联CSS上已有的表。

前提条件

创建DLI表关联CSS之前需要创建跨源连接。管理控制台操作请参考经典型跨源连接和

增强型跨源连接。

语法格式

CREATE TABLE [IF NOT EXISTS] TABLE_NAME(

FIELDNAME1 FIELDTYPE1, FIELDNAME2 FIELDTYPE2) USING CSS OPTIONS ( 'es.nodes'='xx',

'resource'='type_path_in_CSS', 'pushdown'='true',

'strict'='false',

'batch.size.entries'= '1000', 'batch.size.bytes'= '1mb', 'es.nodes.wan.only' = 'true', 'es.mapping.id' = 'FIELDNAME');

关键字

1-51 CREATE TABLE 参数描述

参数 描述

es.nodes CSS的连接地址,需要先创建跨源连接,管理控制台操作请参考经典

型跨源连接和增强型跨源连接。

创建经典型跨源连接后,使用经典型跨源连接中返回的连接地址。

创建增强型跨源连接后,使用CSS提供的"内网访问地址",格式为

"IP1:PORT1,IP2:PORT2"。

resource 指定在CSS关联的资源名,用"/index/type"指定资源位置(可简单理 解index为database,type为table,但绝不等同)。

说明

● ES 6.X版本中,单个Index只支持唯一type,type名可以自定义。

● ES 7.X版本中,单个Index将使用“_doc”作为type名,不再支持自定义。

若访问ES 7.X版本时,该参数只需要填写index即可。

pushdown CSS的下压功能是否开启,默认为“true”。包含大量IO传输的表在 有where过滤条件的情况下能够开启pushdown降低IO。

strict CSS的下压是否是严格的,默认为“false”。精确匹配的场景下比 pushdown降低更多IO。

参数 描述 batch.size.e

ntries 单次batch插入entry的条数上限,默认为1000。如果单条数据非常 大,在bulk存储设置的数据条数前提前到达了单次batch的总数据量 上限,则停止存储数据,以batch.size.bytes为准,提交该批次的数 据。

batch.size.b

ytes 单次batch的总数据量上限,默认为1mb。如果单条数据非常小,在 bulk存储到总数据量前提前到达了单次batch的条数上限,则停止存 储数据,以batch.size.entries为准,提交该批次的数据。

es.nodes.w

an.only 是否仅通过域名访问es节点,默认为false。使用经典型跨源的连接地 址作为es.nodes时,该参数需要配置为true;使用css服务提供的原始 内网IP地址作为es.nodes时,不需要填写该参数或者配置为false。

es.mapping

.id 指定一个字段,其值作为es中Document的id。

说明

● 相同/index/type下的Document id是唯一的。如果作为Document id的字 段存在重复值,则在执行插入es时,重复id的Document将会被覆盖。

● 该特性可以用作容错解决方案。当插入数据执行一半时,DLI作业失败,会 有部分数据已经插入到es中,这部分为冗余数据。如果设置了Document id,则在重新执行DLI作业时,会覆盖上一次的冗余数据。

es.net.ssl 连接安全CSS集群,默认值为false es.certificat

e.name 连接安全CSS集群,使用的跨源认证信息名称。跨源认证信息创建方 式请参考《数据湖探索用户指南》>《跨源认证》。

说明

batch.size.entries和batch.size.bytes分别对数据条数和数据量大小进行限制。

示例

CREATE TABLE IF NOT EXISTS dli_to_css (doc_id String, name string, age int) USING CSS OPTIONS (

es.nodes 'to-css-1174404703-LzwpJEyx.datasource.com:9200', resource '/dli_index/dli_type',

pushdown 'false', strict 'true',

es.nodes.wan.only 'true', es.mapping.id 'doc_id');

1.19.2 插入数据至 CSS 表

功能描述

INSERT INTO命令将DLI表中的数据插入到已关联的指定CSS表中。

语法格式

● 将SELECT查询结果插入到表中:

INSERT INTO DLI_TABLE SELECT field1,field2...

[FROM DLI_TEST]

[WHERE where_condition]

[LIMIT num]

[GROUP BY field]

[ORDER BY field] ...;

● 将某条数据插入到表中:

INSERT INTO DLI_TABLE

VALUES values_row [, values_row ...];

关键字

SELECT对应关键字说明请参考SELECT基本语句。

参数说明

1-52 参数描述

参数 描述

DLI_TABLE 创建的DLI表名称,为插入数据的目的表。

DLI_TEST 为包含待查询数据的表。

field1,field2...,field 表“DLI_TEST”中的列值,需要匹配表“DLI_TABLE”的 列值和类型。

where_condition 查询过滤条件。

num 对查询结果进行限制,num参数仅支持INT类型。

values_row 想要插入到表中的值,列与列之间用逗号分隔。

注意事项

● DLI表必须已经存在。

● DLI表在创建时需要指定Schema信息,如果select子句或者values中字段数量与 CSS表的Schema字段数量不匹配时,系统将报错。

● 类型不一致时不一定报错,例如插入int类型数据,但CSS中Schema保存的是文本 类型,int类型会被转换成文本类型。

● 不建议对同一张表并发插入数据,因为有一定概率发生并发冲突,导致插入失 败。

示例

● 查询表“user”中的数据插入表“test”中。

INSERT INTO test SELECT ATTR_EXPR FROM user

WHERE user_name='cyz' LIMIT 3

GROUP BY user_age

● 插入数据“1”到表“test”中

INSERT INTO test VALUES (1);

1.19.3 查询 CSS 表

SELECT命令用于查询CSS表中的数据。

语法格式

SELECT * FROM table_name LIMIT number;

关键字

LIMIT:对查询结果进行限制,number参数仅支持INT类型。

注意事项

所查询的表必须是已经存在的表,否则会出错。

示例

查询表dli_to_css中的数据。

SELECT * FROM dli_to_css limit 100;