华为云用户手册

  • 功能描述 DLI将Flink作业的输出数据输出到云搜索服务CSS的Elasticsearch中。Elasticsearch是基于Lucene的当前流行的企业级搜索服务器,具备分布式多用户的能力。其主要功能包括全文检索、结构化搜索、分析、聚合、高亮显示等。能为用户提供实时搜索、稳定可靠的服务。适用于日志分析、站内搜索等场景。 云搜索服务(Cloud Search Service,简称CSS)为DLI提供托管的分布式搜索引擎服务,完全兼容开源Elasticsearch搜索引擎,支持结构化、非结构化文本的多条件检索、统计、报表。 云搜索服务的更多信息,请参见《云搜索服务用户指南》。 创建CSS集群时如果开启了安全模式,后续将无法关闭。
  • 语法格式 1 2 3 4 5 6 7 8 9 CREATE SOURCE STREAM stream_id (attr_name attr_type (',' attr_name attr_type)* ) WITH ( type = "kafka", kafka_bootstrap_servers = "", kafka_group_id = "", kafka_topic = "", encode = "json", json_config="" );
  • 前提条件 Kafka服务端的端口如果监听在hostname上,则需要将Kafka Broker节点的hostname和IP的对应关系添加到DLI队列中。Kafka Broker节点的hostname和IP请联系Kafka服务的部署人员。如何添加IP域名映射,请参见《数据湖探索用户指南》中修改主机信息章节。 Kafka是线下集群,需要通过增强型跨源连接功能将Flink作业与Kafka进行对接。且用户可以根据实际所需设置相应安全组规则。 如何建立增强型跨源连接,请参考《数据湖探索用户指南》中增强型跨源连接章节。 如何设置安全组规则,请参见《虚拟私有云用户指南》中“安全组”章节。
  • 关键字 表1 关键字说明 参数 是否必选 说明 type 是 数据源类型,“Kafka”表示数据源。 kafka_bootstrap_servers 是 Kafka的连接端口,需要确保能连通(需要通过增强型跨源开通DLI队列和Kafka集群的连接)。 kafka_group_id 否 group id。 kafka_topic 是 读取的Kafka的topic。目前只支持读取单个topic。 encode 是 数据编码格式,可选为“csv”、“json”、“blob”和“user_defined”。 若编码格式为“csv”,则需配置“field_delimiter”属性。 若编码格式为“json”,则需配置“json_config”属性。 当编码格式为"blob"时,表示不对接收的数据进行解析,当前表仅能有一个且为Array[TINYINT]类型的表字段。 若编码格式为“user_defined”,则需配置“encode_class_name”和“encode_class_parameter”属性。 encode_class_name 否 当encode为user_defined时,需配置该参数,指定用户自实现解码类的类名(包含完整包路径),该类需继承类DeserializationSchema。 encode_class_parameter 否 当encode为user_defined时,可以通过配置该参数指定用户自实现解码类的入参,仅支持一个string类型的参数。 json_config 否 当encode为json时,用户可以通过该参数指定json字段和流属性字段的映射关系。 格式:"field1=json_field1;field2=json_field2" 格式说明:field1、field2为创建的表字段名称。json_field1、json_field2为kafka输入数据json串的key字段名称。 具体使用方法可以参考示例说明。 说明: 如果定义的source stream中的属性和json中的属性名称相同,json_configs可以不用配置。 field_delimiter 否 当encode为csv时,用于指定csv字段分隔符,默认为逗号。 quote 否 可以指定数据格式中的引用符号,在两个引用符号之间的属性分隔符会被当做普通字符处理。 当引用符号为双引号时,请设置quote = "\u005c\u0022"进行转义。 当引用符号为单引号时,则设置quote = "'"。 说明: 目前仅适用于CSV格式。 设置引用符号后,必须保证每个字段中包含0个或者偶数个引用符号,否则会解析失败。 start_time 否 kafka数据读取起始时间。 当该参数配置时则从配置的时间开始读取数据,有效格式为yyyy-MM-dd HH:mm:ss。start_time要不大于当前时间,若大于当前时间,则不会有数据读取出。 该参数配置后,只会读取Kafka topic在该时间点后产生的数据。 kafka_properties 否 可通过该参数配置kafka的原生属性,格式为"key1=value1;key2=value2"。具体的属性值可以参考Apache Kafka中的描述。 kafka_certificate_name 否 跨源认证信息名称。跨源认证信息类型为“Kafka_SSL”时,该参数有效。 说明: 指定该配置项时,服务仅加载该认证下指定的文件和密码,系统将自动设置到“kafka_properties”属性中。 Kafka SSL认证需要的其他配置信息,需要用户手动在“kafka_properties”属性中配置。
  • 参数说明 表1 参数说明 参数 是否必选 说明 默认值 transientThreshold 否 连续transientThreshold个窗口发生数据改变表示发生数据概念迁移。 5 numTrees 否 随机森林中Tree的数量。 15 maxLeafCount 否 Tree最大叶子节点数量。 15 maxTreeHeight 否 Tree最大高度。 12 seed 否 算法使用的随机种子值。 4010 numClusters 否 分类数,默认包含异常和非异常两类。 2 dataViewMode 否 算法学习模式。 history:学习所有历史数据。 horizon:仅考虑最近一段时间历史数据,默认为4个窗口。 history
  • 示例 左外连接时利用student_info表中的courseId与course_info中的courseId进行匹配,返回已经选课的学生姓名及所选的课程名称,没有匹配值的右表记录将返回NULL。 1 2 SELECT student_info.name, course_info.courseName FROM student_info LEFT OUTER JOIN course_info ON (student_info.courseId = course_info.courseId);
  • 配置Event Time Event Time是指事件产生的时间,即数据产生时自带时间戳。 语法格式 1 2 3 CREATE SOURCE STREAM stream_name(...) WITH (...) TIMESTAMP BY {attr_name}.rowtime SET WATERMARK (RANGE {time_interval} | ROWS {literal}, {time_interval}); 语法说明 设置Event Time需要选定流中的某一个属性来作为时间戳,同时需要设置Watermark策略。 由于网络等原因,有时会导致乱序的产生;对于迟来的数据,需要Watermark来保证一个特定的时间后去触发Window进行计算。Watermark主要是用来处理乱序数据,流处理从事件产生,到发送到DLI服务,中间有一个过程。 Watermark有两种设置策略: 按时间周期 1 SET WATERMARK(range interval {time_unit}, interval {time_unit}) 按事件个数 1 SET WATERMARK(rows literal, interval {time_unit}) 一个逗号表示一个参数,第一个参数表示Watermark发送周期,第二个参数表示允许最大延迟时间。 注意事项 无。 示例 time2事件产生时间开始,每10s发送一次watermark,事件最大允许延迟时间为20s。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 CREATE SOURCE STREAM student_scores ( student_number STRING, /* 学号 */ student_name STRING, /* 姓名 */ subject STRING, /* 学科 */ score INT, /* 成绩 */ time2 TIMESTAMP ) WITH ( type = "dis", region = "", channel = "dliinput", partition_count = "1", encode = "csv", field_delimiter="," ) TIMESTAMP BY time2.rowtime SET WATERMARK (RANGE interval 10 second, interval 20 second); INSERT INTO score_greate_90 SELECT student_name, sum(score) over (order by time2 RANGE UNBOUNDED PRECEDING) FROM student_scores; 每收到10个数据发送一次watermark,事件最大允许延迟时间为20s。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 CREATE SOURCE STREAM student_scores ( student_number STRING, /* 学号 */ student_name STRING, /* 姓名 */ subject STRING, /* 学科 */ score INT, /* 成绩 */ time2 TIMESTAMP ) WITH ( type = "dis", region = "", channel = "dliinput", partition_count = "1", encode = "csv", field_delimiter="," ) TIMESTAMP BY time2.rowtime SET WATERMARK (ROWS 10, interval 20 second); INSERT INTO score_greate_90 SELECT student_name, sum(score) over (order by time2 RANGE UNBOUNDED PRECEDING) FROM student_scores;
  • 配置Processing Time Processing Time是指系统时间,与数据本身的时间戳无关,即在Flink算子内计算完成的时间。 语法格式 1 2 3 4 CREATE SOURCE STREAM stream_name(...) WITH (...) TIMESTAMP BY proctime.proctime; CREATE TEMP STREAM stream_name(...) TIMESTAMP BY proctime.proctime; 语法说明 设置Processing Time只需在timestamp by后配置proctime.proctime即可,后续可以直接使用proctime字段。 注意事项 无。 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 CREATE SOURCE STREAM student_scores ( student_number STRING, /* 学号 */ student_name STRING, /* 姓名 */ subject STRING, /* 学科 */ score INT /* 成绩 */ ) WITH ( type = "dis", region = "", channel = "dliinput", partition_count = "1", encode = "csv", field_delimiter="," )TIMESTAMP BY proctime.proctime; INSERT INTO score_greate_90 SELECT student_name, sum(score) over (order by proctime RANGE UNBOUNDED PRECEDING) FROM student_scores;
  • 示例 将car_infos数据输出到OBS的obs-sink桶下,输出目录为car_infos, 输出文件以greater_30作为文件名前缀,当单个文件超过100M时新起一个文件,同时数据输出用csv编码,使用逗号作为属性分隔符,换行符作为行分隔符。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 CREATE SINK STREAM car_infos ( car_id STRING, car_owner STRING, car_brand STRING, car_price INT, car_timestamp LONG ) WITH ( type = "obs", encode = "csv", region = "xxx", field_delimiter = ",", row_delimiter = "\n", obs_dir = "obs-sink/car_infos", file_prefix = "greater_30", rolling_size = "100m" ); orc编码格式示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 CREATE SINK STREAM car_infos ( car_id STRING, car_owner STRING, car_brand STRING, car_price INT, car_timestamp LONG ) WITH ( type = "obs", region = "xxx", encode = "orc", obs_dir = "dli-append-2/obsorc", FILE_PREFIX = "es_info", max_record_num_per_file = "100000", dump_interval = "60" ); parquet编码示例请参考文件系统输出流(推荐)中的示例。
  • 关键字 表1 关键字说明 参数 是否必选 说明 type 是 输出通道类型,“obs”表示输出到对象存储服务。 region 是 对象存储服务所在区域。 ak 否 访问密钥ID(Access Key ID)。访问密钥获取方式请参见我的凭证。 sk 否 Secret Access Key,与访问密钥ID结合使用的密钥。访问密钥获取方式请参见我的凭证。 encode 是 编码方式。当前支持csv/json/orc/avro/avro_merge/parquet格式。 field_delimiter 否 属性分隔符。 仅当编码方式为csv时需要配置,若不配置,默认分隔符为逗号。 row_delimiter 否 行分隔符。当编码格式为csv、json时需要设置。 json_config 否 当编码格式为json时,用户可以通过该参数来指定json字段和流定义字段的映射关系,格式为“field1=data_json.field1;field2=data_json.field2”。 obs_dir 是 文件存储目录。格式为{桶名}/{目录名}, 如obs-a1/dir1/subdir。当编码格式为csv(append为false)、json(append为false)、avro_merge、parquet时,支持参数化。 file_prefix 否 输出文件名前缀。生成的文件会以file_prefix.x的方式命名,如file_prefix.1、 file_prefix.2,若没有设置,默认文件前缀为temp。 rolling_size 否 单个文件最大允许大小。 说明: rolling_size和rolling_interval必须至少配一样或者都配置。 当文件大小超过设置size后,会生成新文件。 支持的单位包括KB/MB/GB,若没写单位,表示单位为字节数。 当编码格式为orc时不需要设置。 rolling_interval 否 数据保存到对应目录的时间模式。 说明: rolling_size和rolling_interval必须至少配一样或者都配置。 设置后数据会按照输出时间输出到相应时间目录下。 支持的格式为yyyy/MM/dd/HH/mm, 最小单位只到分钟,大小写敏感。例如配置为yyyy/MM/dd/HH, 则数据会写入对应小时这个时间点所产生的目录下,比如2018-09-10 16时产生的数据就会写到{obs_dir}/2018-09-10_16目录下。 当rolling_size和rolling_interval都配置时,表示每个时间所对应的目录下,单个文件超过设置大小时,另起新文件。 quote 否 修饰符,仅当编码格式为csv时可配置,配置后会在每个属性前后各加上修饰符,建议使用不可见字符配置,如"\u0007"。 array_bracket 否 数组括号,仅当编码格式为csv时可配置, 可选值为"()", "{}", "[]", 例如配置了"{}", 则数组输出格式为{a1,a2}。 append 否 值为true或者false,默认为true。 当OBS不支持append模式,且编码格式为csv和json时,可将该参数设置为false。Append为false时需要设置max_record_num_per_file和dump_interval。 max_record_num_per_file 否 文件最大记录数,当编码格式为csv(append为false)、json(append为false)、orc、avro、avro_merge和parquet时需配置,表明一个文件最多存储记录数,当达到最大值,则另起新文件。 dump_interval 否 触发周期, 当编码格式为orc或者配置了DIS通知提醒时需进行配置。 在orc编码方式中,该配置表示周期到达时,即使文件记录数未达到最大个数配置,也将文件上传到OBS上。 在DIS通知提醒功能中,该配置表示每周期往DIS发送一个通知提醒,表明该目录已写完。 dis_notice_channel 否 OBS目录完成通知通道。表示每周期往DIS通道中发送一条记录,该记录内容为OBS目录路径,表明该目录已书写完毕。 encoded_data 否 当编码格式为json(append为false)、avro_merge和parquet时,可通过配置该参数指定真正需要编码的数据,格式为${field_name},表示直接将该流字段的内容作为一个完整的记录进行编码。
  • 功能描述 创建sink流将DLI数据输出到对象存储服务(OBS)。DLI可以将作业分析结果输出到OBS上。适用于大数据分析、原生云应用程序数据、静态网站托管、备份/活跃归档、深度/冷归档等场景。 对象存储服务(Object Storage Service,简称OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。OBS的更多信息,请参见《对象存储服务控制台指南》。 推荐使用《文件系统输出流(推荐)》。
  • 语法格式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 CREATE SINK STREAM stream_id (attr_name attr_type (',' attr_name attr_type)* ) WITH ( type = "obs", region = "", encode = "", field_delimiter = "", row_delimiter = "", obs_dir = "", file_prefix = "", rolling_size = "", rolling_interval = "", quote = "", array_bracket = "", append = "", max_record_num_per_file = "", dump_interval = "", dis_notice_channel = "" )
  • 示例代码 计算所有商品库存(items)的方差。命令示例如下: select variance(items) from warehouse; --等效于如下语句。 select var_pop(items) from warehouse; 返回结果如下: _c0 203.42352 与group by配合使用,对所有商品按照仓库(warehourseId)进行分组,并计算同组商品库存(items)的方差。命令示例如下: select warehourseId, variance(items) from warehourse group by warehourseId; --等效于如下语句。 select warehourseId, var_pop(items) from warehourse group by warehourseId; 返回结果如下: 1 2 3 4 warehouseId _c1 city1 19.23124 city2 17.23344 city3 12.43425
  • 参数说明 表1 参数说明 参数 是否必选 说明 connector.type 是 固定为filesystem。 connector.file-path 是 数据输出目录,格式为: schema://file.path。 说明: 当前schame只支持obs和hdfs。 当schema为obs时,表示输出到对象存储服务OBS。注意,OBS必须是并行文件系统,不能是OBS桶。 示例:obs://bucketName/fileName,表示数据输出到obs的bucketName桶下的fileName目录中。 当schema为hdfs时,表示输出到HDFS。 示例:hdfs://node-master1sYAx:9820/user/car_infos,其中node-master1sYAx:9820为MRS集群NameNode所在节点信息。 format.type 是 输出数据编码格式,当前支持“parquet”格式和“csv”格式。 当schema为obs时,输出数据编码格式仅支持“parquet”格式。 当schema为hdfs时,输出数据编码格式支持“parquet”格式和“csv”格式。 format.field-delimiter 否 属性分隔符。 当编码格式为“csv”时,需要设置属性分隔符,用户可以自定义,默认为“,”。 connector.ak 否 用于访问obs的accessKey 当写入obs时必须填写该字段。 connector.sk 否 用于访问obs的secretKey 当写入obs时必须填写该字段。 connector.partitioned-by 否 分区字段,多个字段以“,”分隔
  • 示例 对表student_info按字段name进行分组,计算每组中记录数,若其记录数等于子查询中表course_info的记录数,返回表student_info中字段name等于表course_info字段name的记录数。 1 2 3 SELECT name FROM student_info GROUP BY name HAVING count(name) = (SELECT count(*) FROM course_info);
  • 示例 将“SELECT courseId FROM course_info WHERE courseName = 'Biology'”定义为公共表达式nv,然后在后续的查询中直接利用nv代替该SELECT语句。 1 WITH nv AS (SELECT courseId FROM course_info WHERE courseName = 'Biology') SELECT DISTINCT courseId FROM nv;
  • 语法格式 将SELECT查询结果插入到表中: 1 2 3 4 5 6 7 INSERT INTO DLI_TABLE SELECT field1,field2... [FROM DLI_TEST] [WHERE where_condition] [LIMIT num] [GROUP BY field] [ORDER BY field] ...; 将某条数据插入到表中: 1 2 INSERT INTO DLI_TABLE VALUES values_row [, values_row ...];
  • 参数说明 表1 参数描述 参数 描述 DLI_TABLE 已创建跨源连接的DLI表名称。 DLI_TEST 为包含待查询数据的表。 field1,field2...,field 表“DLI_TEST”中的列值,需要匹配表“DLI_TABLE”的列值和类型。 where_condition 查询过滤条件。 num 对查询结果进行限制,num参数仅支持INT类型。 values_row 想要插入到表中的值,列与列之间用逗号分隔。
  • 示例 将数据以csv格式写入到edgeHub主题abcd中。 1 2 3 4 5 6 7 8 9 CREATE SINK STREAM excellent_students( name string, score int) WITH ( type = "edgehub", topic = "abcd", encode = "csv", field_delimiter = "," );
  • 语法格式 1 2 3 4 5 6 7 8 9 CREATE SINK STREAM stream_id (attr_name attr_type (',' attr_name attr_type)* ) WITH ( type = "edgehub", topic = "", encode = "", json_config = "", ENABLE_OUTPUT_NULL = "", field_delimiter = '' );
  • 功能描述 DLI将边缘作业分析处理过的数据,写入到EdgeHub中,便于后续进行处理。 适用于物联网IOT场景,将实时流计算能力从云端延伸到边缘,在边缘快速实现对流数据实时、快速、准确地分析处理,增加数据处理计算的速度和效率。同时将数据在边缘预处理,可以有效减少无效的数据上云,减少资源消耗,提升分析效率。边缘作业依赖于智能边缘平台(Intelligent EdgeFabric, IEF),IEF通过纳管用户的边缘节点,提供将云上应用延伸到边缘的能力,联动边缘和云端的数据,同时,在云端提供统一的设备/应用监控、日志采集等运维能力,为企业提供完整的边缘计算解决方案。IEF的更多信息,请参见《智能边缘平台用户指南》。 仅Flink 1.7版本适配边缘作业场景,且Flink 1.7 EOS。DLI后续版本不再提供边缘作业场景的语法参考。
  • 关键字 表1 关键字说明 参数 是否必选 说明 type 是 数据源类型,“edgehub”表示数据源为智能边缘平台的edgehub。 topic 是 主题,需要消费数据的edgehub中的主题名称。 encode 是 数据编码格式,可选为“csv”和“json”。 若编码格式为“csv”,则需配置“field_delimiter”属性。 若编码格式为“json”,则需配置“json_config”属性。 field_delimiter 否 属性分隔符。当“encode”为“csv”时,用于指定csv字段分隔符,默认为“,"。 当“encode”为“json”时,不需要设置属性之间的分隔符。 json_config 否 当“encode”为“json”时,可以通过该参数指定json字段和流定义字段的映射关系,格式为: "field1=data_json.field1;field2=data_json.field2;field3=$" 其中"field3=$"表示field3的内容为整个json串。 enable_output_null 否 当“encode”为“json”时,可以使用该参数来配置是否输出空字段。 “true”表示输出空字段(值为null)。 “false”表示不输出空字段。
  • 关键字 表1 CREATE TABLE参数描述 参数 描述 host OpenTSDB连接地址。 获取OpenTSDB连接地址需要先创建跨源连接,管理控制台操作请参考经典型跨源连接和增强型跨源连接。 访问CloudTable OpenTSDB,填写OpenTSDB链接地址。 访问MRS OpenTSDB,若使用增强型跨源连接,填写OpenTSDB所在节点IP与端口,格式为"IP:PORT",OpenTSDB存在多个节点时,用分号间隔。若使用经典型跨源,填写经典型跨源返回的连接地址,管理控制台操作请参考经典型跨源连接。 metric 所创建的DLI表对应的OpenTSDB中的指标名称。 tags metric对应的标签,用于归类、过滤、快速检索等操作。可以是1个到8个,以“,”分隔,包括对应metric下所有tagk的值。
  • 表达式GROUP BY 功能描述 按表达式对流进行分组操作。 语法格式 1 2 3 4 SELECT [ ALL | DISTINCT ] { * | projectItem [, projectItem ]* } FROM tableExpression [ WHERE booleanExpression ] [ GROUP BY { groupItem [, groupItem ]* } ] 语法说明 groupItem:可以是单字段,多字段,也可以是字符串函数等调用,不能是聚合函数。 注意事项 无 示例 先利用substring函数取字段name的子字符串,并按照该子字符串进行分组,返回每个子字符串及对应的记录数。 1 2 insert into temp SELECT substring(name,6),count(name) FROM student GROUP BY substring(name,6);
  • 按列GROUP BY 功能描述 按列进行分组操作。 语法格式 1 2 3 4 SELECT [ ALL | DISTINCT ] { * | projectItem [, projectItem ]* } FROM tableExpression [ WHERE booleanExpression ] [ GROUP BY { groupItem [, groupItem ]* } ] 语法说明 GROUP BY:按列可分为单列GROUP BY与多列GROUP BY。 单列GROUP BY:指GROUP BY子句中仅包含一列。 多列GROUP BY:指GROUP BY子句中不止一列,查询语句将按照GROUP BY的所有字段分组,所有字段都相同的记录将被放在同一组中。 注意事项 GroupBy在流处理表中会产生更新结果 示例 根据score及name两个字段对表student进行分组,并返回分组结果。 1 2 insert into temp SELECT name,score, max(score) FROM student GROUP BY name,score;
  • Grouping sets, Rollup, Cube 功能描述 GROUPING SETS 的 GROUP BY 子句可以生成一个等效于由多个简单 GROUP BY 子句的 UNION ALL 生成的结果集,并且其效率比 GROUP BY 要高。 ROLLUP与CUBE按一定的规则产生多种分组,然后按各种分组统计数据。 CUBE生成的结果集显示了所选列中值的所有组合的聚合。 Rollup生成的结果集显示了所选列中值的某一层次结构的聚合。 语法格式 SELECT [ ALL | DISTINCT ] { * | projectItem [, projectItem ]* } FROM tableExpression [ WHERE booleanExpression ] [ GROUP BY groupingItem] 语法说明 groupingItem:是Grouping sets(columnName [, columnName]*)、Rollup(columnName [, columnName]*)、Cube(columnName [, columnName]*) 注意事项 无 示例 分别产生基于user和product的结果 INSERT INTO temp SELECT SUM(amount) FROM Orders GROUP BY GROUPING SETS ((user), (product));
  • CASE表达式 语法格式 1 2 3 CASE value WHEN value1 [, value11 ]* THEN result1 [ WHEN valueN [, valueN1 ]* THEN resultN ]* [ ELSE resultZ ] END 或 1 2 3 CASE WHEN condition1 THEN result1 [ WHEN conditionN THEN resultN ]* [ ELSE resultZ ] END 语法说明 当value值为value1则返回result1,都不满足则返回resultZ,若没有else语句,则返回null。 当condition1为true时返回result1,都不满足则返回resultZ,若没有else语句,则返回null。 注意事项 所有result的类型都必须一致。 所有condition类型都必须是布尔类型。 当没有满足的分支时,若指定else语句,则返回else的值,若没有else语句,则返回null。 示例 当units等于5时返回1,否则返回0。 示例1: 1 insert into temp SELECT CASE units WHEN 5 THEN 1 ELSE 0 END FROM Orders; 示例2: 1 insert into temp SELECT CASE WHEN units = 5 THEN 1 ELSE 0 END FROM Orders;
  • 语法格式 将SELECT查询结果插入到表中: 1 2 3 4 5 6 7 INSERT INTO DLI_TABLE SELECT field1,field2... [FROM DLI_TEST] [WHERE where_condition] [LIMIT num] [GROUP BY field] [ORDER BY field] ...; 将某条数据插入到表中: 1 2 INSERT INTO DLI_TABLE VALUES values_row [, values_row ...];
  • 注意事项 DLI表必须已经存在。 在“创建表关联HBase”章节创建的表中,OPTIONS里的Cols指定的列族如果不存在,insert into执行时会报错。 如果插入的(rowkey, 列族, 列)已存在,则执行插入操作时,会覆盖hbase中相同的(rowkey, 列族, 列)。 不建议对同一张表并发插入数据,因为有一定概率发生并发冲突,导致插入失败。 不支持INSERT OVERWRITE语法。
  • 参数说明 表1 参数描述 参数 描述 DLI_TABLE 已创建跨源连接的DLI表名称。 DLI_TEST 为包含待查询数据的表。 field1,field2...,field 表“DLI_TEST”中的列值,需要匹配表“DLI_TABLE”的列值和类型。 where_condition 查询过滤条件。 num 对查询结果进行限制,num参数仅支持INT类型。 values_row 想要插入到表中的值,列与列之间用逗号分隔。
共100000条