文档首页 > > SQL语法参考> 数据定义语句> 创建输出流> Elasticsearch输出流

Elasticsearch输出流

分享
更新时间:2020/09/29 GMT+08:00

概述

CS将作业的输出数据输出到云搜索服务的Elasticsearch中。Elasticsearch是基于Lucene的当前流行的企业级搜索服务器,具备分布式多用户的能力。其主要功能包括全文检索、结构化搜索、分析、聚合、高亮显示等。能为用户提供实时搜索、稳定可靠的服务。适用于日志分析、站内搜索等场景。

云搜索服务(Cloud Search Service,简称CSS)为CS提供托管的分布式搜索引擎服务,完全兼容开源Elasticsearch搜索引擎,支持结构化、非结构化文本的多条件检索、统计、报表。云搜索服务的更多信息,请参见《云搜索服务用户指南》

前提条件

  • 请务必确保您的账户下已在云搜索服务里创建了集群。如何创建集群请参考《云搜索服务用户指南》创建集群章节。
  • 该场景作业需要运行在CS的独享集群上,因此要与云搜索服务建立VPC对等连接,且用户可以根据实际所需设置相应安全组规则。

    如何建立VPC对等连接,请参考《实时流计算服务用户指南》对等连接章节。

    如何设置安全组规则,请参见《虚拟私有云用户指南》“安全组”章节。

语法

语法格式

CREATE SINK STREAM stream_id (attr_name attr_type (',' attr_name attr_type)* )WITH (type = "es",region = "",cluster_address = "",es_index = "",es_type= "",es_fields= "",batch_insert_data_num= "");

语法说明

表1 语法说明

参数

是否必选

说明

type

输出通道类型,es表示输出到云搜索服务中。

region

数据所在的云搜索服务所在区域。例如"cn-north-1" 。

cluster_address

云搜索服务集群的内网访问地址,例如:x.x.x.x:x,多个地址时以逗号分隔。

es_index

待插入数据的索引,支持参数化。

es_type

待插入数据的文档类型,支持参数化。

es_fields

待插入数据字段的key,具体形式如:"id,f1,f2,f3,f4",并且保证与sink中数据列一一对应;如果不使用key,而是采用随机的属性字段,则无需使用id关键字,具体形式如:"f1,f2,f3,f4,f5"。

batch_insert_data_num

表示一次性批量写入的数据量,值必须为正整数,上限为100,默认值为10。

action

当值为add时,表示遇到相同id时,数据被强制覆盖,当值为upsert时,表示遇到相同id时,更新数据(选择upsert时,es_fileds字段中必须指定id),默认值为add。

enable_output_null

使用该参数来配置是否输出空字段。当该参数为true表示输出空字段(值为null),若为false表示不输出空字段。默认为false。

max_record_num_cache

记录最大缓存数。

注意事项

当配置项支持参数化时,表示将记录中的一列或者多列作为该配置项的一部分。例如当配置项设置为car_${car_brand}时,如果一条记录的car_brand列值为BMW,则该配置项在该条记录下为car_BMW。

示例

将流qualified_cars的数据输出到云搜索服务的集群。
CREATE SINK STREAM qualified_cars (
  car_id STRING,
  car_owner STRING,
  car_age INT,
  average_speed INT,
  total_miles INT
)
WITH (
  type = "es",
  region = "cn-north-1" ,
  cluster_address = "192.168.0.212:9200",
  es_index = "china",
  es_type = "zhejiang",
  es_fields = "id,owner,age,speed,miles",
  batch_insert_data_num = "10"
); 
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问