云服务器内容精选

  • 参数说明 表1 算子参数说明 参数 含义 类型 是否必填 默认值 Hive文件存储格式 配置Hive表文件的存储格式(目前支持四种格式: CS V、ORC、RC和PARQUET)。 说明: PARQUET格式是一种列式存储格式,PARQUET要求Loader的输出字段名和Hive表中的字段名保持一致。 Hive 1.2.0版本之后,Hive使用字段名称替代字段序号对ORC文件进行解析,因此,Loader的输出字段名和Hive表中的字段名需要保持一致。 enum 是 CSV Hive文件压缩格式 在下拉菜单中选择Hive表文件的压缩格式,未配置或选择“NONE”表示不压缩数据。 enum 是 NONE Hive ORC文件版本 通过该字段配置ORC文件的版本(当Hive表文件的存储格式是ORC时)。 enum 是 0.12 输出分隔符 配置分隔符。 string 是 无 输出字段 配置输出信息: 位置:配置输出字段的位置。 字段名:配置输出字段的字段名。 类型:配置字段类型,字段类型为“DATE”或“TIME”或“TIMESTAMP”时,需指定特定时间格式,其他类型指定无效。时间格式如:“yyyyMMdd HH:mm:ss”。 十进制格式:配置小数的刻度和精度。 长度:配置字段长度,字段值实际长度太长则按配置的长度截取,“类型”为“CHAR”时实际长度不足则空格补齐,“类型”为“VARCHAR”时实际长度不足则不补齐。 分区键:配置是否为分区列。可以不指定分区列,也可以指定多个分区列。配置多个列为分区列时,会按照配置列的先后顺序对其进行拼接。 map 是 无
  • 参数说明 表1 算子参数说明 参数 含义 类型 是否必填 默认值 输出分隔符 配置分隔符。 说明: 该配置仅用于MySQL专用连接器,当数据列内容中包含默认分隔符时,需要设置自定义分隔符,否则会出现数据错乱。 string 否 , 换行分隔符 用户根据数据实际情况,填写字符串作为换行符。支持任何字符串。默认使用操作系统的换行符。 说明: 该配置仅用于MySQL专用连接器,当数据列内容中包含默认分隔符时,需要设置自定义分隔符,否则会出现数据错乱。 string 否 \n 输出字段 配置关系型数据库输出字段的相关信息: 字段名:配置输出字段的字段名。 表列名:配置数据库表的列名。 类型:配置字段类型,需要和数据库的字段类型一致。 长度:配置字段长度,字段值实际长度太长则按配置的长度截取,“类型”为“CHAR”时实际长度不足则空格补齐,“类型”为“VARCHAR”时实际长度不足则不补齐。 map 是 无
  • 样例 通过“CSV文件输入”算子,生成十二个字段。 源文件如下: 创建ClickHouse表的语句如下: CREATE TABLE IF NOT EXISTS testck4 ON CLUSTER default_cluster( a Int32, b VARCHAR(100) NOT NULL, c char(100), d DateTime, e DateTime, f DateTime, g smallint, h bigint, l Float32, j Float64, k decimal(10,2), m boolean ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/default/testck4', '{replica}') PARTITION BY toYYYYMM(d)ORDER BY a; 配置“ClickHouse输出”算子,如下图: 作业执行成功后,查看testck4表中数据:
  • 示例 CSV编码格式:数据输出到DIS通道,使用csv编码,并且以逗号为分隔符,多个分区用car_owner做为key进行分发。数据输出示例:"ZJA710XC", "lilei", "BMW", 700000。 1 2 3 4 5 6 7 8 9 10 11 12 13 CREATE SINK STREAM audi_cheaper_than_30w ( car_id STRING, car_owner STRING, car_brand STRING, car_price INT ) WITH ( type = "dis", region = "xxx", channel = "dlioutput", encode = "csv", field_delimiter = "," ); JSON编码格式:数据输出到DIS通道,使用json编码,多个分区用car_owner,car_brand 做为key进行分发,“enableOutputNull”为“true”表示输出空字段(值为null),若为“false”表示不输出空字段。数据示例:"car_id ":"ZJA710XC", "car_owner ":"lilei", "car_brand ":"BMW", "car_price ":700000。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CREATE SINK STREAM audi_cheaper_than_30w ( car_id STRING, car_owner STRING, car_brand STRING, car_price INT ) WITH ( type = "dis", channel = "dlioutput", region = "xxx", partition_key = "car_owner,car_brand", encode = "json", enable_output_null = "false" );
  • 语法格式 1 2 3 4 5 6 7 8 9 CREATE SINK STREAM stream_id (attr_name attr_type (',' attr_name attr_type)* ) WITH ( type = "dis", region = "", channel = "", partition_key = "", encode= "", field_delimiter= "" );
  • 关键字 表1 关键字说明 参数 是否必选 说明 type 是 输出通道类型,dis表示输出到 数据接入服务 。 region 是 数据所在的DIS所在区域。 ak 否 访问密钥ID(Access Key ID)。访问密钥获取方式请参见我的凭证。 sk 否 Secret Access Key,与访问密钥ID结合使用的密钥。访问密钥获取方式请参见我的凭证。 channel 是 DIS通道。 partition_key 否 数据输出分组主键,多个主键用逗号分隔。当该参数没有配置的时候则随机派发。 encode 是 数据编码格式,可选为“csv”、“json”和“user_defined”。 说明: 若编码格式为“csv”,则需配置“field_delimiter”属性。 若编码格式为“json”,则需使用“enable_output_null”来配置是否输出空字段,具体见示例。 若编码格式为“user_defined”,则需配置“encode_class_name”和“encode_class_parameter”属性。 field_delimiter 是 属性分隔符。 当编码格式为csv时,需要设置属性分隔符,用户可以自定义,如:“,”。 当编码格式为json时,则不需要设置属性之间的分隔符。 json_config 否 当编码格式为json时,用户可以通过该参数来指定json字段和流定义字段的映射关系,格式为“field1=data_json.field1; field2=data_json.field2”。 enable_output_null 否 当编码格式为json时,需使用该参数来配置是否输出空字段。 当该参数为“true”表示输出空字段(值为null),若为“false”表示不输出空字段。默认值为“true”。 encode_class_name 否 当encode为user_defined时,需配置该参数,指定用户自实现编码类的类名(包含完整包路径),该类需继承类DeserializationSchema。 encode_class_parameter 否 当encode为user_defined时,可以通过配置该参数指定用户自实现编码类的入参,仅支持一个string类型的参数。
  • 功能描述 DLI 将Flink作业的输出数据写入数据接入服务(DIS)中。适用于将数据过滤后导入DIS通道,进行后续处理的场景。 数据接入服务(Data Ingestion Service,简称DIS)为处理或分析流数据的自定义应用程序构建数据流管道,主要解决云服务外的数据实时传输到云服务内的问题。数据接入服务每小时可从数十万种数据源(如IoT数据采集、日志和定位追踪事件、网站点击流、社交媒体源等)中连续捕获、传送和存储数TB数据。DIS的更多信息,请参见《数据接入服务用户指南》。
  • 示例 示例一: 该示例将car_info数据,以buyday字段为分区字段,parquet为编码格式,转储数据到OBS。 1 2 3 4 5 6 7 8 9 10 11 12 13 create sink stream car_infos ( carId string, carOwner string, average_speed double, buyday string ) partitioned by (buyday) with ( type = "filesystem", file.path = "obs://obs-sink/car_infos", encode = "parquet", ak = "{{myAk}}", sk = "{{mySk}}" ); 数据最终在OBS中的存储目录结构为:obs://obs-sink/car_infos/buyday=xx/part-x-x。 数据生成后,可通过如下SQL语句建立OBS分区表,用于后续批处理: 创建OBS分区表。 1 2 3 4 5 6 7 8 create table car_infos ( carId string, carOwner string, average_speed double ) partitioned by (buyday string) stored as parquet location 'obs://obs-sink/car_infos'; 从关联OBS路径中恢复分区信息。 1 alter table car_infos recover partitions; 示例二 该示例将car_info数据,以buyday字段为分区字段,csv为编码格式,转储数据到HDFS。 1 2 3 4 5 6 7 8 9 10 11 12 create sink stream car_infos ( carId string, carOwner string, average_speed double, buyday string ) partitioned by (buyday) with ( type = "filesystem", file.path = "hdfs://node-master1sYAx:9820/user/car_infos", encode = "csv", field_delimiter = "," ); 数据最终在HDFS中的存储目录结构为:/user/car_infos/buyday=xx/part-x-x。
  • HDFS代理用户配置 登录 MRS 管理页面。 选择MRS的HDFS Namenode配置,在“自定义”中添加配置参数。 图1 HDFS服务配置 其中,core-site值名称“hadoop.proxyuser.myname.hosts”和“hadoop.proxyuser.myname.groups”中的“myname”为传入的krb认证用户名称。 需要保证写入HDFS数据路径权限为777。 配置完成后,单击“保存配置”进行保存。
  • 功能描述 创建sink流将数据输出到分布式文件系统(HDFS)或者 对象存储服务 (OBS)等文件系统。数据生成后,可直接对生成的目录创建非DLI表,通过DLI SQL进行下一步处理分析,并且输出数据目录支持分区表结构。适用于数据转储、大数据分析、备份或活跃归档、深度或冷归档等场景。 对象存储服务(Object Storage Service,简称OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。
  • 语法格式 1 2 3 4 5 6 7 8 9 CREATE SINK STREAM stream_id (attr_name attr_type (',' attr_name attr_type)* ) [PARTITIONED BY (attr_name (',' attr_name)*] WITH ( type = "filesystem", file.path = "obs://bucket/xx", encode = "parquet", ak = "", sk = "" );
  • 关键字 表1 关键字说明 参数 是否必选 说明 type 是 输出流类型。“type”为“filesystem”,表示输出数据到文件系统。 file.path 是 输出目录,格式为: schema://file.path。 当前schame只支持obs和hdfs。 当schema为obs时,表示输出到对象存储服务OBS。 当schema为hdfs时,表示输出到HDFS。HDFS需要配置代理用户,具体请参考HDFS代理用户配置。 示例:hdfs://node-master1sYAx:9820/user/car_infos,其中node-master1sYAx:9820为MRS集群NameNode所在节点信息。 encode 是 输出数据编码格式,当前支持“parquet”格式和“csv”格式。 当schema为obs时,输出数据编码格式仅支持“parquet”格式。 当schema为hdfs时,输出数据编码格式支持“parquet”格式和“csv”格式。 ak 否 输出到OBS时该参数必填。用于访问OBS认证的accessKey,可使用全局变量,屏蔽敏感信息。 关于全局变量在控制台上的使用方法,请参考《 数据湖探索 用户指南》。 sk 否 输出到OBS时该参数必填。用于访问OBS认证的secretKey,可使用全局变量,屏蔽敏感信息。 关于全局变量在控制台上的使用方法,请参考《 数据湖 探索用户指南》。 krb_auth 否 创建跨源认证的认证名。开启kerberos认证时,需配置该参数。如果创建的MRS集群未开启kerb认证的集群,请确保在DLI队列host文件中添加MRS集群master节点的“/etc/hosts”信息。 field_delimiter 否 属性分隔符。 当编码格式为“csv”时,需要设置属性分隔符,用户可以自定义,如:“,”。
  • 注意事项 使用文件系统输出流的Flink作业必须开启checkpoint,保证作业的一致性。 为了避免数据丢失或者数据被覆盖,开启作业异常自动重启或者手动重启,需要配置为“从checkpoint恢复”。 checkpoint间隔设置需在输出文件实时性、文件大小和恢复时长之间进行权衡,比如10分钟。 checkpoint支持如下两种模式: AtLeastOnce:事件至少被处理一次。 ExactlyOnce:事件仅被处理一次。 使用文件系统输出流写入数据到OBS时,应避免多个作业写同一个目录的情况。 OBS对象存储桶的默认行为为覆盖写,可能导致数据丢失。 OBS并行文件系统桶的默认行为追加写,可能导致数据混淆。 因为以上OBS桶类型行为的区别,为避免作业异常重启可能导致的数据异常问题,请根据您的业务需求选择OBS桶类型。
  • 输出 推理结果以“JSON”体的形式返回,具体字段请参见表1。 表1 参数说明 字段名 类型 描述 detection_classes 字符串数组 输出物体的检测类别列表,如["yunbao","cat"] detection_boxes 数组,元素为浮点数数组 输出物体的检测框坐标列表,坐标表示为 detection_scores 浮点数数组 输出每种检测列表的置信度,用来衡量识别的准确度。 推理结果的“JSON Schema”表示如下: { "type": "object", "properties": { "detection_classes": { "items": { "type": "string" }, "type": "array" }, "detection_boxes": { "items": { "minItems": 4, "items": { "type": "number" }, "type": "array", "maxItems": 4 }, "type": "array" }, "detection_scores": { "items": { "type": "string" }, "type": "array" } } }
  • 请求样例 该模式下的推理方式均为输入一张待处理图片,推理结果以“JSON”格式返回。示例如下: 页面预测 在服务详情的“预测”页签,上传需要检测的图片,单击“预测”即可获取检测结果。 Postman调REST接口预测 部署上线成功后,您可以从服务详情页的调用指南中获取预测接口地址,预测步骤如下: 选择“Headers”设置请求头部,“Content-Type”的值设为“multipart/form-data”,“X-Auth-Token”的值设为用户实际获取的token值。 图1 设置请求头部 选择“Body”设置请求体,“key”选择为“images”,选择为“File”类型,接着通过选择文件按钮选择需要处理的图片,最后单击“send”,发送您的预测请求。 图2 设置请求体