华为云用户手册

  • 通过加载数据的时间删除 用户可基于特定的加载时间删除数据。 命令: DELETE FROM TABLE db_name.table_name WHERE SEGMENT.STARTTIME BEFORE date_value; 示例: DELETE FROM TABLE carbonTable WHERE SEGMENT.STARTTIME BEFORE '2017-07-01 12:07:20'; 上述命令可删除'2017-07-01 12:07:20'之前的所有segment。 有关详细信息,请参阅DELETE SEGMENT by DATE。
  • 删除结果 数据对应的segment被删除,数据将不能再被访问。可通过SHOW SEGMENTS命令显示segment状态,查看是否成功删除。 调用DELETE SEGMENT命令时,物理上而言,Segment并没有从文件系统中被删除。使用命令SHOW SEGMENTS查看Segment信息,可看见被删除的Segment的状态被标识为"Marked for Delete"。但使用SELECT * FROM tablename命令查询时,不会显示被删除的Segment的内容。 下一次加载数据且达到最大查询执行时间(由“max.query.execution.time”配置,默认为“60分钟”)后,Segment才会从文件系统中真正删除。 如果用户想要强制删除物理Segment文件,那么可以使用CLEAN FILES命令。 示例: CLEAN FILES FOR TABLE table1; 该命令将从物理上删除状态为“Marked for delete”的Segment文件。 如果在“max.query.execution.time”规定的时间到达之前使用该命令,可能会导致查询失败。“max.query.execution.time”可在“carbon.properties”文件中设置,表示一次查询允许花费的最长时间。
  • 通过Segment ID删除 每个Segment都有与其关联的唯一Segment ID。使用这个Segment ID可以删除该Segment。 运行如下命令获取Segment ID。 命令: SHOW SEGMENTS FOR Table dbname.tablename LIMIT number_of_loads; 示例: SHOW SEGMENTS FOR TABLE carbonTable; 上述命令可显示tablename为carbonTable的表的所有Segment信息。 SHOW SEGMENTS FOR TABLE carbonTable LIMIT 2; 上述命令可显示number_of_loads规定条数的Segment信息。 输出结果如下: +-----+----------+--------------------------+------------------+------------+------------+-------------+--------------+--+| ID | Status | Load Start Time | Load Time Taken | Partition | Data Size | Index Size | File Format |+-----+----------+--------------------------+------------------+------------+------------+-------------+--------------+--+| 3 | Success | 2020-09-28 22:53:26.336 | 3.726S | {} | 6.47KB | 3.30KB | columnar_v3 || 2 | Success | 2020-09-28 22:53:01.702 | 6.688S | {} | 6.47KB | 3.30KB | columnar_v3 |+-----+----------+--------------------------+------------------+------------+------------+-------------+--------------+--+ SHOW SEGMENTS命令输出包括ID、Status、Load Start Time、Load Time Taken、Partition、Data Size、Index Size、File Format。最新的加载信息在输出中第一行显示。 获取到需要删除的Segment的Segment ID后,执行如下命令删除对应Segment: 命令: DELETE FROM TABLE tableName WHERE SEGMENT.ID IN (load_sequence_id1, load_sequence_id2, ....); 示例: DELETE FROM TABLE carbonTable WHERE SEGMENT.ID IN (1,2,3); 详细信息,请参阅DELETE SEGMENT by ID。
  • spark-defaults.conf相关参数 登录客户端节点,在“{客户端安装目录}/Spark/spark/conf/spark-defaults.conf”文件中配置表4相关参数。 表4 spark-defaults.conf中的Spark配置参考 参数 默认值 描述 spark.driver.memory 4G 指定用于driver端进程的内存,其中SparkContext已初始化。 说明: 在客户端模式下,不要使用SparkConf在应用程序中设置该参数,因为驱动程序JVM已经启动。要配置该参数,请在--driver-memory命令行选项或默认属性文件中进行配置。 spark.executor.memory 4GB 指定每个执行程序进程使用的内存。 spark.sql.crossJoin.enabled true 如果查询包含交叉连接,请启用此属性,以便不会抛出错误,此时使用交叉连接而不是连接,可实现更好的性能。
  • 使用自定义列创建表 可通过指定各列及其数据类型来创建表。 命令示例: CREATE TABLE IF NOT EXISTS productdb.productSalesTable ( productNumber Int, productName String, storeCity String, storeProvince String, productCategory String, productBatch String, saleQuantity Int, revenue Int) STORED AS carbondata TBLPROPERTIES ( 'table_blocksize'='128'); 上述命令所创建的表的详细信息如下: 表1 表信息定义 参数 描述 productSalesTable 待创建的表的名称。该表用于加载数据进行分析。 表名由字母、数字、下划线组成。 productdb 数据库名称。该数据库将与其中的表保持逻辑连接以便于识别和管理。 数据库名称由字母、数字、下划线组成。 productName storeCity storeProvince procuctCategory productBatch saleQuantity revenue 表中的列,代表执行分析所需的业务实体。 列名(字段名)由字母、数字、下划线组成。 table_blocksize CarbonData表使用的数据文件的block大小,默认值为1024,最小值为1,最大值为2048,单位为MB。 如果“table_blocksize”值太小,数据加载时,生成过多的小数据文件,可能会影响HDFS的使用性能。 如果“table_blocksize”值太大,数据查询时,索引匹配的block数据量较大,某些block会包含较多的blocklet,导致读取并发度不高,从而降低查询性能。 一般情况下,建议根据数据量级别来选择大小。例如:GB级别用256,TB级别用512,PB级别用1024。 所有Integer类型度量均以BigInt类型进行处理与显示。 CarbonData遵循严格解析,因此任何不可解析的数据都会被保存为null。例如,在BigInt列中加载double值(3.14),将会保存为null。 在Create Table中使用的Short和Long数据类型在DESCRIBE命令中分别显示为Smallint和Bigint。 可以使用DESCRIBE格式化命令查看表数据大小和表索引大小。
  • 操作步骤 运行如下命令删除表。 命令: DROP TABLE [IF EXISTS] [db_name.]table_name; 一旦执行该命令,将会从系统中删除表。命令中的“db_name”为可选参数。如果没有指定“db_name”,那么将会删除当前数据库下名为“table_name”的表。 示例: DROP TABLE productdb.productSalesTable; 通过上述命令,删除数据库“productdb”下的表“productSalesTable”。
  • 加载数据到CarbonData Table 创建CarbonData table之后,可以从CSV文件加载数据到所创建的表中。 用所要求的参数运行以下命令从CSV文件加载数据。该表的列名需要与CSV文件的列名匹配。 LOAD DATA inpath 'hdfs://hacluster/data/test.csv' into table x1 options('DELIMITER'=',', 'QUOTECHAR'='"','FILEHEADER'='imei, deviceinformationid,mac, productdate,updatetime, gamepointid,contractnumber'); 其中,“test.csv”为准备CSV文件的CSV文件,“x1”为示例的表名。 CSV样例内容如下: 13418592122,1001,MAC地址,2017-10-23 15:32:30,2017-10-24 15:32:30,62.50,74.5613418592123,1002,MAC地址,2017-10-23 16:32:30,2017-10-24 16:32:30,17.80,76.2813418592124,1003,MAC地址,2017-10-23 17:32:30,2017-10-24 17:32:30,20.40,92.9413418592125,1004,MAC地址,2017-10-23 18:32:30,2017-10-24 18:32:30,73.84,8.5813418592126,1005,MAC地址,2017-10-23 19:32:30,2017-10-24 19:32:30,80.50,88.0213418592127,1006,MAC地址,2017-10-23 20:32:30,2017-10-24 20:32:30,65.77,71.2413418592128,1007,MAC地址,2017-10-23 21:32:30,2017-10-24 21:32:30,75.21,76.0413418592129,1008,MAC地址,2017-10-23 22:32:30,2017-10-24 22:32:30,63.30,94.4013418592130,1009,MAC地址,2017-10-23 23:32:30,2017-10-24 23:32:30,95.51,50.1713418592131,1010,MAC地址,2017-10-24 00:32:30,2017-10-25 00:32:30,39.62,99.13 命令执行结果如下: +------------+|Segment ID |+------------+|0 |+------------+No rows selected (3.039 seconds)
  • 在Spark-shell上使用CarbonData 用户若需要在Spark-shell上使用CarbonData,需通过如下方式创建CarbonData Table,加载数据到CarbonData Table和在CarbonData中查询数据的操作。 spark.sql("CREATE TABLE x2(imei string, deviceInformationId int, mac string, productdate timestamp, updatetime timestamp, gamePointId double, contractNumber double) STORED AS carbondata")spark.sql("LOAD DATA inpath 'hdfs://hacluster/data/x1_without_header.csv' into table x2 options('DELIMITER'=',', 'QUOTECHAR'='\"','FILEHEADER'='imei, deviceinformationid,mac, productdate,updatetime, gamepointid,contractnumber')")spark.sql("SELECT * FROM x2").show()
  • 在CarbonData中查询数据 创建CarbonData table并加载数据之后,可以执行所需的数据查询操作。以下为一些查询操作举例。 获取记录数 为了获取在CarbonData table中的记录数,可以运行以下命令。 select count(*) from x1; 使用Groupby查询 为了获取不重复的deviceinformationid记录数,可以运行以下命令。 select deviceinformationid,count (distinct deviceinformationid) from x1 group by deviceinformationid; 用Filter查询 为了获取特定deviceinformationid的记录,可以运行以下命令。 select * from x1 where deviceinformationid='1010'; 在执行数据查询操作后,如果查询结果中某一列的结果含有中文字等非英文字符,会导致查询结果中的列不能对齐,这是由于不同语言的字符在显示时所占的字宽不尽相同。
  • 创建CarbonData Table 在Spark Beeline被连接到JDBCServer之后,需要创建一个CarbonData table用于加载数据和执行查询操作。下面是创建一个简单的表的命令。 create table x1 (imei string, deviceInformationId int, mac string, productdate timestamp, updatetime timestamp, gamePointId double, contractNumber double) STORED AS carbondata TBLPROPERTIES ('SORT_COLUMNS'='imei,mac'); 命令执行结果如下: +---------+| Result |+---------++---------+No rows selected (1.093 seconds)
  • CarbonData主要规格 表1 CarbonData主要规格 实体 测试值 测试环境 表数 10000 3个节点,每个executor 4个CPU核,20GB。Driver内存5GB,3个Executor。 总列数:107 String:75 Int:13 BigInt:7 Timestamp:6 Double:6 表的列数 2000 3个节点,每个executor4个CPU核,20GB。Driver内存5GB,3个Executor。 原始CSV文件大小的最大值 200GB 17个cluster节点,每个executor 150GB,25个CPU核。Driver内存10 GB,17个Executor。 每个文件夹的CSV文件数 100个文件夹,每个文件夹10个文件,每个文件大小50MB。 3个节点,每个executor4个CPU核,20GB。Driver内存5GB,3个Executor。 加载文件夹数 10000 3个节点,每个executor4个CPU核,20GB。Driver内存5GB,3个Executor。
  • 二级索引表规格 表2 二级索引表规格 实体 测试值 二级索引表数量 10 二级索引表中的组合列的列数 5 二级索引表中的列名长度(单位:字符) 120 二级索引表名长度(单位:字符) 120 表中所有二级索引表的表名+列名的累积长度*(单位:字符) 3800** * Hive允许的上限值或可用资源的上限值。 ** 二级索引表使用hive注册,并以json格式的值存储在HiveSERDEPROPERTIES中。由hive支持的SERDEPROPERTIES的最大字符数为4000个字符,无法更改。
  • 算子数据处理规则 在Loader导入或导出数据的任务中,每个算子对于原始数据中NULL值、空字符串定义了不同的处理规则;在算子中无法正确处理的数据,将成为脏数据,无法导入或导出。 在转换步骤中,算子数据处理规则请参见下表。 表1 数据处理规则一览表 转换步骤 规则描述 CSV文件输入 分隔符在原始数据中连续出现两次,将生成空字符串字段。 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。 遇到类型转换错误,当前数据保存为脏数据。 固定宽度文件输入 原始数据包含NULL值,不做转换处理。 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。 配置转换字段类型,与原始数据实际类型不同,全部数据成为脏数据。例如将字符串类型转换为数值类型。 配置字段分割长度,大于原字段值的长度,则数据分割失败,当前行成为脏数据 表输入 原始数据包含NULL值,不做转换处理。 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。 配置转换字段类型,与原始数据实际类型不同,全部数据成为脏数据。例如将字符串类型转换为数值类型。 HBase输入 原始数据包含NULL值,不做转换处理。 配置HBase表名错误,全部数据成为脏数据。 “主键”没有配置主键列,全部数据成为脏数据。 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。 配置转换字段类型,与原始数据实际类型不同,全部数据成为脏数据。例如将字符串类型转换为数值类型。 长整型时间转换 原始数据包含NULL值,不做转换处理。 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。 遇到类型转换错误,当前数据保存为脏数据。 空值转换 原始数据包含NULL值,转换为用户指定的值。 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。 随机值转换 不涉及处理NULL值、空字符串,不生成脏数据。 增加常量字段 不涉及处理NULL值、空字符串,不生成脏数据。 拼接转换 原始数据包含NULL值,将转换为空字符串。 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。 分隔转换 原始数据包含NULL值,当前行成为脏数据。 配置分割后字段列数,大于原始数据实际可分割出来的字段列数,当前行成为脏数据。 取模转换 原始数据包含NULL值,当前行成为脏数据。 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。 数据类型转换失败,当前行成为脏数据。 剪切字符串 传入数据为NULL值,不做转换处理。 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。 字符截取的起点位置或终点位置,大于输入字段的长度时,当前行成为脏数据。 EL操作转换 传入数据为NULL值,不做转换处理。 输入一个或多个字段的值,输出计算结果。 输入类型和算子不兼容时,当前行为脏数据。 字符串大小写转换 传入数据为NULL值,不做转换处理。 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。 字符串逆序转换 传入数据为NULL值,不做转换处理。 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。 字符串空格清除转换 传入数据为NULL值,不做转换处理。 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。 过滤行转换 条件逻辑为“AND”,如果未添加过滤条件,全部数据成为脏数据;或者原始数据满足添加的全部过滤条件,当前行成为脏数据。 条件逻辑为“OR”,如果未添加过滤条件,全部数据成为脏数据;或者原始数据满足任意添加的过滤条件,当前行成为脏数据。 文件输出 传入数据为NULL值,不做转换处理。 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。 数据类型转换失败,当前行成为脏数据。 表输出 HBase输出 原始数据包含NULL值,如果“NULL值处理方式”设置为“true”,将转换为空字符串并保存。如果“NULL值处理方式”设置为“false”,不保存数据。 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。 数据类型转换失败,当前行成为脏数据。 Hive输出 如果指定了一个或多个列为分区列,则在“到”页面上,会显示“分割程序”属性,该属性表示使用多少个处理器去对分区数据进行处理。 如果没有指定任何列为分区列,则表示不需要对输入数据进行分区处理,“分割程序”属性默认隐藏。 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。 数据类型转换失败,当前行成为脏数据。 父主题: 算子帮助
  • CarbonData关键技术和优势 快速查询响应:高性能查询是CarbonData关键技术的优势之一。CarbonData查询速度大约是Spark SQL查询的10倍。CarbonData使用的专用数据格式围绕高性能查询进行设计,其中包括多种索引技术和多次的Push down优化,从而对TB级数据查询进行最快响应。 高效率数据压缩:CarbonData使用轻量级压缩和重量级压缩的组合压缩算法压缩数据,可以减少60%~80%数据存储空间,很大程度上节省硬件存储成本。
  • CarbonData结构 CarbonData作为Spark内部数据源运行,不需要额外启动集群节点中的其他进程,CarbonData Engine在Spark Executor进程之中运行。 图2 CarbonData结构 存储在CarbonData Table中的数据被分成若干个CarbonData数据文件,每一次数据查询时,CarbonData Engine模块负责执行数据集的读取、过滤等实际任务。CarbonData Engine作为Spark Executor进程的一部分运行,负责处理数据文件块的一个子集。 Table数据集数据存储在HDFS中。同一Spark集群内的节点可以作为HDFS的数据节点。
  • CarbonData特性 SQL功能:CarbonData与Spark SQL完全兼容,支持所有可以直接在Spark SQL上运行的SQL查询操作。 简单的Table数据集定义:CarbonData支持易于使用的DDL(数据定义语言)语句来定义和创建数据集。CarbonData DDL十分灵活、易于使用,并且足够强大,可以定义复杂类型的Table。 便捷的数据管理:CarbonData为数据加载和维护提供多种数据管理功能。CarbonData支持加载历史数据以及增量加载新数据。加载的数据可以基于加载时间进行删除,也可以撤销特定的数据加载操作。 CarbonData文件格式是HDFS中的列式存储格式。该格式具有许多新型列存储文件的特性,例如,分割表和数据压缩。CarbonData具有以下独有的特点: 伴随索引的数据存储:由于在查询中设置了过滤器,可以显著加快查询性能,减少I/O扫描次数和CPU资源占用。CarbonData索引由多个级别的索引组成,处理框架可以利用这个索引来减少需要安排和处理的任务,也可以通过在任务扫描中以更精细的单元(称为blocklet)进行skip扫描来代替对整个文件的扫描。 可选择的数据编码:通过支持高效的数据压缩,可基于压缩/编码数据进行查询,在将结果返回给用户之前,才将编码转化为实际数据,这被称为“延迟物化”。 支持一种数据格式应用于多种用例场景:例如,交互式OLAP-style查询,顺序访问(big scan),随机访问(narrow scan)。
  • 日志级别 Loader中提供了如表2所示的日志级别,日志级别优先级从高到低分别是ERROR、WARN、INFO、DEBUG,程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少。 表2 日志级别 级别 描述 ERROR ERROR表示错误日志输出。 WARN WARN表示当前事件处理存在异常信息。 INFO INFO表示系统及各事件正常运行状态信息。 DEBUG DEBUG表示系统及系统调试信息。 如果您需要修改日志级别,请执行如下操作: 请参考修改集群服务配置参数,进入Loader的“全部配置”页面。 左边菜单栏中选择所需修改的角色所对应的日志菜单。 选择所需修改的日志级别。 保存配置,在弹出窗口中单击“确定”,完成后重启服务使配置生效。
  • 概述 loader-tool工具是Loader客户端工具之一,包括“lt-ucc”、“lt-ucj”、“lt-ctl”三个工具。 Loader支持通过参数选项或作业模板这两种方式,对连接器进行创建、更新、查询和删除,以及对Loader作业进行创建、更新、查询、删除、启动和停止等操作。 本章节适用于MRS 3.x及后续版本。 loader-tool工具是异步接口,命令提交后其结果不会实时返回到控制台,因此对连接器的创建、更新、查询和删除等操作,以及对Loader作业的创建、更新、查询、删除、启动和停止等操作,其成功与否需要在Loader WebUI确认或通过查询server端日志确认。 参数选项方式: 通过直接添加具体配置项的参数调用脚本。 作业模板方式: 修改作业模板中所有配置项的参数值,调用脚本时引用修改后的作业模板文件。 Loader客户端安装后,系统自动在“Loader客户端安装目录/loader-tools-1.99.3/loader-tool/job-config/”目录生成各种场景对应的作业模板,不同模板中配置项存在差异。作业模板中包含作业信息以及关联的连接器信息。 作业模板为xml文件,文件名格式为“数据原保存位置-to-数据新保存位置.xml”,例如“sftp-to-hdfs.xml”。如果此场景的作业支持转换步骤,则存在同名的转换步骤配置文件,文件类型为json,例如“sftp-to-hdfs.json”。 作业模板中包含了连接器的配置信息。创建、更新连接器时,实际上仅调用到作业模板中的连接器的信息。
  • Loader宏定义 目前Loader默认支持以下时间宏定义: 表1 Loader常用宏定义 名称 替换后效果 说明 @{dateformat("yyyy-MM-dd")}@ 2016-05-17 当前日期。 @{dateformat("yyyy-MM-dd HH:mm:ss")}@ 2016-05-17 16:50:00 当前日期和时间。 @{timestamp()}@ 1463476137557 从1970年到现在的毫秒数。 @{dateformat("yyyy-MM-dd HH:mm:ss",-7,DAYS)}@ 2016-05-10 16:50:00 最近7天,即当前时间减7天。 第二个参数支持加减运算。 第三个参数为时间运算的单位,参考“java.util.concurrent.TimeUnit.java”定义,分为DAYS、HOURS 、MINUTES、SECONDS。 在以下场景中,可以使用宏进行配置参数: 指定以当天时间命名的数据目录 参数项配置为“/user/data/inputdate_@{dateformat("yyyy-MM-dd")}@”。 通过SQL语句查询最近7天的数据 select * from table where time between '@{dateformat("yyyy-MM-dd HH:mm:ss",-7,DAYS)}@' and '@{dateformat("yyyy-MM-dd HH:mm:ss")}@' 指定当天的表名 参数项配置为“table_@{dateformat("yyyy-MM-dd")}@”。
  • 参数说明 表1 算子参数说明 参数 含义 类型 是否必填 默认值 HBase表类型 配置HBase表类型,可选项为normal(普通HBase表)和phoenix表。 enum 是 normal NULL值处理方式 配置NULL值处理方式。选中单选框时是将转换为空字符串并保存。不选中单选框时是不保存数据。 boolean 否 不选中单选框 HBase输出字段 配置HBase输出信息: 字段名:配置输出字段的字段名。 表名:配置HBase表名。 列族名:配置HBase列族名,如果HBase/Phoenix建表时未配置列族名,默认列族名为 '0'。 列名:配置HBase列名。 类型:配置字段类型,字段类型为“DATE”或“TIME”或“TIMESTAMP”时,需指定特定时间格式,其他类型指定无效。时间格式如:“yyyyMMdd HH:mm:ss”。 长度:配置字段长度,字段值实际长度太长则按配置的长度截取,“类型”为“CHAR”时实际长度不足则空格补齐,“类型”为“VARCHAR”时实际长度不足则不补齐。 主键:配置是否为主键列。普通HBase表主键只能指定一个;phoenix表主键可以指定多个,配置多个列为主键时,会按照配置列的先后顺序对其进行拼接。必需配置一个主键列。 map 是 无
  • 参数说明 表1 算子参数说明 参数 含义 类型 是否必填 默认值 Spark文件存储格式 配置SparkSQL表文件的存储格式(目前支持四种格式:CSV、ORC、RC和PARQUET)。 说明: PARQUET格式是一种列式存储格式,PARQUET要求Loader的输出字段名和SparkSQL表中的字段名保持一致。 Hive 1.2.0版本之后,Hive使用字段名称替代字段序号对ORC文件进行解析,因此,Loader的输出字段名和SparkSQL表中的字段名需要保持一致。 enum 是 CSV Spark文件压缩格式 在下拉菜单中选择SparkSQL表文件的压缩格式,未配置或选择“NONE”表示不压缩数据。 enum 是 NONE Spark ORC文件版本 通过该字段配置ORC文件的版本(当SparkSQL表文件的存储格式是ORC时)。 enum 是 0.12 输出分隔符 配置分隔符。 string 是 无 输出字段 配置输出信息: 位置:配置输出字段的位置。 字段名:配置输出字段的字段名。 类型:配置字段类型,字段类型为“DATE”或“TIME”或“TIMESTAMP”时,需指定特定时间格式,其他类型指定无效。时间格式如:“yyyyMMdd HH:mm:ss”。 十进制格式:配置小数的刻度和精度。 长度:配置字段长度,字段值实际长度太长则按配置的长度截取,“类型”为“CHAR”时实际长度不足则空格补齐,“类型”为“VARCHAR”时实际长度不足则不补齐。 分区键:配置是否为分区列。可以不指定分区列,也可以指定多个分区列。配置多个列为分区列时,会按照配置列的先后顺序对其进行拼接。 map 是 无
  • 参数说明 表1 算子参数说明 参数 含义 类型 是否必填 默认值 输出分隔符 配置分隔符。 string 是 无 换行符 用户根据数据实际情况,填写字符串作为换行符。支持任何字符串。默认使用操作系统的换行符。 string 否 \n 输出字段 配置输出信息: 位置:配置输出字段的位置。 字段名:配置输出字段的字段名。 类型:配置字段类型,字段类型为“DATE”或“TIME”或“TimeStamp”时,需指定特定时间格式,其他类型指定无效。时间格式如:“yyyyMMdd HH:mm:ss”。 长度:配置字段长度,字段值实际长度太长则按配置的长度截取,“类型”为“CHAR”时实际长度不足则空格补齐,“类型”为“VARCHAR”时实际长度不足则不补齐。 map 否 无
  • 参数说明 表1 算子参数说明 参数 含义 类型 是否必填 默认值 Hive文件存储格式 配置Hive表文件的存储格式(目前支持四种格式:CSV、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 是 无
  • 参数说明 表1 算子参数说明 参数 含义 类型 是否必填 默认值 更新字段名 需要更新的字段 string 是 无 操作符 操作符,支持“+”、“-”和“=” enum 是 + 更新值 用来更新的值 与字段类型相匹配 否 无 条件逻辑连接符 配置条件逻辑连接符,可配置“AND”或“OR”。 enum 是 AND 条件 配置过滤条件相关信息: 输入字段名:配置输入字段名,需填写上一个转换步骤生成的字段名。 操作:配置操作符。 比较值:配置比较值,可直接输入值或输入“#{已存在的字段名}”格式引用字段的具体值。 map 是 无
  • 参数说明 表1 算子参数说明 参数 含义 类型 是否必填 默认值 el操作之后生成的字段 配置EL表达式: 名称:表达式输出结果的名称。 el表达式:表达式,格式为:表达式名称(输入字段名,是否用小写字母表示输出结果)。例如,md5sum(fieldname,true)。 md5sum:生成md5校验值。 sha1sum:生成sha1校验值。 sha256sum:生成sha256校验值。 sha512sum:生成sha512校验值。 类型:表达式输出结果类型,建议选择“VARCHAR”。 时间格式:表达是输出结果格式。 长度:表达式输出结果长度。 map 是 无
  • 参数说明 表1 算子参数说明 参数 含义 类型 是否必填 默认值 逆序转换的字段 配置字符串逆序转换的字段相关信息: 输入字段名:配置输入字段名,需填写上一个转换步骤生成的字段名。 输出字段名:配置输出字段名。 类型:配置字段类型。 输出字段长度:配置字段长度,字段值实际长度太长则按配置的长度截取,“类型”为“CHAR”时实际长度不足则空格补齐,“类型”为“VARCHAR”时实际长度不足则不补齐。 map 是 无
  • 参数说明 表1 算子参数说明 参数 含义 类型 是否必填 默认值 配置字段 配置常量字段相关信息: 输出字段名:配置字段名。 类型:配置字段类型。 时间格式:字段类型为“DATE”或“TIME”或“TIMESTAMP”时,需指定特定时间格式,其他类型指定无效。时间格式如:“yyyyMMdd HH:mm:ss”。 长度:配置字段长度,字段值实际长度太长则按配置的长度截取,“类型”为“CHAR”时实际长度不足则空格补齐,“类型”为“VARCHAR”时实际长度不足则不补齐。 常量值:配置符合类型的常量值。 map 是 无
  • 参数说明 表1 算子参数说明 参数 含义 类型 是否必填 默认值 被截取的字段 配置被截取字段相关信息: 输入字段名:配置输入字段名,需填写上一个转换步骤生成的字段名。 输出字段名:配置输出字段名。 开始位置:截取开始位置,从序号1开始。 结束位置:截取结束位置,不确定字符串长度时,可指定为-1表示被截取字段的末尾。 输出字段类型:输出字段的类型。 输出字段长度:配置字段长度,字段值实际长度太长则按配置的长度截取,“输出字段类型”为“CHAR”时实际长度不足则空格补齐,“输出字段类型”为“VARCHAR”时实际长度不足则不补齐。 map 是 无
  • 参数说明 表1 算子参数说明 参数 含义 类型 是否必填 默认值 转换类型 配置长整型时间转换类型: long to date:长整型数值转换为DATE类型。 long to time:长整型数值转换为TIME类型。 long to timestamp:长整型数值转换为TIMESTAMP类型。 date to long:DATE类型转换为长整型数值。 time to long:TIME类型转换为长整型数值。 timestamp to long:TIMESTAMP类型转换为长整型数值。 enum 是 long to date 输入字段名 配置输入的待转换字段名称,需填写上一个转换步骤生成的字段名。 string 是 无 输出字段名 配置输出字段的字段名。 string 是 无 字段单位 配置长整型数值字段的单位,根据“转换类型”长整型数据可以是输入字段或生成字段,可选值为“second”和“milisecond”。 enum 是 second 输出字段类型 配置输出字段的类型,可选值为“BIGINT”,“DATE”,“TIME”和“TIMESTAMP”。 enum 是 BIGINT 时间格式 配置时间字段格式,时间格式如:“yyyyMMdd HH:mm:ss”。 string 否 无
共100000条