华为云用户手册

  • OVERLAPS 功能描述 若两个时间范围有重叠,则返回TRUE,反之,则返回FALSE。 语法说明 BOOLEAN (timepoint1, temporal1) OVERLAPS (timepoint2, temporal2) 入参说明 参数名 数据类型 参数说明 timepoint1/timepoint2 DATE/TIME/TIMESTAMP 时间点。 temporal1/temporal2 DATE/TIME/TIMESTAMP/INTERVAL 时间点或时间间隔。 (timepoint, temporal)在判断是否重叠时为闭区间。 temporal可以是DATE/TIME/TIMESTAMP也可以是INTERVAL。 当temporal是DATE/TIME/TIMESTAMP时,(timepoint, temporal)表示timepoint, temporal之间的时间间隔。允许temporal在timepoint之前,如(DATE '1997-04-25', DATE '1997-04-23')也合法。 当temporal是INTERVAL时,(timepoint, temporal)表示timepoint, timepoint+temporal之间的时间间隔。 必须保证(timepoint1, temporal1)和(timepoint2, temporal2)是同一数据类型的时间间隔。 示例 测试语句 SELECT (TIME '2:55:00', INTERVAL '1' HOUR) OVERLAPS (TIME '3:30:00', INTERVAL '2' HOUR) AS `result`, (TIME '2:30:00', INTERVAL '1' HOUR) OVERLAPS (TIME '3:30:00', INTERVAL '2' HOUR) AS `result2`,(TIME '2:30:00', INTERVAL '1' HOUR) OVERLAPS (TIME '3:31:00', INTERVAL '2' HOUR) AS `result3`,(TIME '9:00:00', TIME '10:00:00') OVERLAPS (TIME '10:00:00', INTERVAL '3' HOUR) AS `result4`,(TIMESTAMP '1997-04-25 12:00:00', TIMESTAMP '1997-04-25 12:20:00') OVERLAPS (TIMESTAMP '1997-04-25 13:00:00', INTERVAL '2' HOUR) AS `result5`,(DATE '1997-04-23', INTERVAL '2' DAY) OVERLAPS (DATE '1997-04-25', INTERVAL '2' DAY) AS `result6`,(DATE '1997-04-25', DATE '1997-04-23') OVERLAPS (DATE '1997-04-25', INTERVAL '2' DAY) AS `result7`FROMtesttable; 测试结果 result result2 result3 result4 result5 result6 result7 true true false true false true true
  • DATE_FORMAT 功能描述 将时间戳或时间戳格式的字符串转换为指定格式的日期字符串。 语法说明 STRING DATE_FORMAT(timestamp, dateformat) 入参说明 参数名 数据类型 参数说明 timestamp TIMESTAMP/STRING 时间点。 dateformat STRING 日期格式字符串。 示例 测试语句 SELECT DATE_FORMAT(TIMESTAMP '1997-04-25 10:11:12', 'yyyy-MM-dd HH:mm:ss') AS `result`, DATE_FORMAT(TIMESTAMP '1997-04-25 10:11:12', 'yyyy-MM-dd') AS `result2`,DATE_FORMAT(TIMESTAMP '1997-04-25 10:11:12', 'yy/MM/dd HH:mm') AS `result3`, DATE_FORMAT('1997-04-25 10:11:12', 'yyyy-MM-dd') AS `result4`FROMtesttable; 测试结果 result result2 result3 result4 1997-04-25 10:11:12 1997-04-25 97/04/25 10:11 1997-04-25
  • CEIL 功能描述 返回将时间点向上取值到指定时间单位的值。 语法说明 TIME/TIMESTAMP(3) CEIL(timepoint TO timeintervalunit) 入参说明 参数名 数据类型 参数说明 timepoint TIMESTAMP/TIME SQL时间或SQL时间戳。 timeintervalunit TIMEUNIT 时间单位,类型可以是YEAR/QUARTER/MONTH/WEEK/DAY/DOY/HOUR/MINUTE/SECOND。 示例 测试语句。 SELECT CEIL(TIME '13:14:15' TO MINUTE) AS `result` CEIL(TIMESTAMP '1997-04-25 13:14:15' TO MINUTE) AS `result2`, CEIL(TIMESTAMP '1997-04-25 13:14:15' TO MINUTE) AS `result3`FROMtesttable; 测试结果 result result2 result3 13:15 13:15 1997-04-25T13:15
  • FLOOR 功能描述 返回将时间点向下取值到指定时间单位的值。 语法说明 TIME/TIMESTAMP(3) FLOOR(timepoint TO timeintervalunit) 入参说明 参数名 数据类型 参数说明 timepoint TIMESTAMP/TIME SQL时间或SQL时间戳。 timeintervalunit TIMEUNIT 时间单位,类型可以是YEAR/QUARTER/MONTH/WEEK/DAY/DOY/HOUR/MINUTE/SECOND。 示例 测试语句。 SELECT FLOOR(TIME '13:14:15' TO MINUTE) AS `result` FLOOR(TIMESTAMP '1997-04-25 13:14:15' TO MINUTE) AS `result2`, FLOOR(TIMESTAMP '1997-04-25 13:14:15' TO MINUTE) AS `result3`FROMtesttable; 测试结果 message message2 message3 13:14 13:14 1997-04-25T13:14
  • DAYOFYEAR 功能描述 计算当前日期是一年中的第几天(返回1到366 之间的整数),以BIGINT类型返回。 语法说明 BIGINT DAYOFYEAR(date) 入参说明 参数名 数据类型 参数说明 date DATE SQL日期。 示例 测试语句 SELECT DAYOFYEAR(DATE '1997-04-25' ) AS `result`FROMtesttable; 测试结果 result 115
  • SECOND 功能描述 返回当前时间戳中的秒数(0 到 59 之间的整数),返回类型为BIGINT。 语法说明 BIGINT SECOND(timestamp) 入参说明 参数名 数据类型 参数说明 timestamp TIMESTAMP SQL时间戳。 示例 测试语句 SELECT SECOND(TIMESTAMP '1997-04-25 10:11:12') AS `result`FROMtesttable; 测试结果 result 12
  • HOUR 功能描述 从当前时间戳获取以24小时制的小时数进行返回,范围0-23(0 到 23 之间的整数),返回类型为BIGINT。 语法说明 BIGINT HOUR(timestamp) 入参说明 参数名 数据类型 参数说明 timestamp TIMESTAMP SQL时间戳。 示例 测试语句 SELECT HOUR(TIMESTAMP '1997-04-25 10:11:12') AS `result`FROMtesttable; 测试结果 result 10
  • DAYOFMONTH 功能描述 计算当前日期是这个月的第几天(1到31之间的整数),以BIGINT类型返回。 语法说明 BIGINT DAYOFMONTH(date) 入参说明 参数名 数据类型 参数说明 date DATE SQL日期。 示例 测试语句 SELECT DAYOFMONTH(DATE '1997-04-25' ) AS `result`FROMtesttable; 测试结果 result 25
  • DAYOFWEEK 功能描述 计算当前日期是当前周的第几天(1 到 7之间的整数),以BIGINT类型返回。 需要注意这里自然周的起点是星期天,即每周的第1天是星期天,第2天是星期一,依次类推。 语法说明 BIGINT DAYOFWEEK(date) 入参说明 参数名 数据类型 参数说明 date DATE SQL日期。 示例 测试语句 SELECT DAYOFWEEK(DATE '1997-04-25') AS `result`FROMtesttable; 测试结果 result 6
  • MINUTE 功能描述 返回当前时间戳中的分钟数(0 到 59 之间的整数),返回类型为BIGINT。 语法说明 BIGINT MINUTE(timestamp) 入参说明 参数名 数据类型 参数说明 timestamp TIMESTAMP SQL时间戳。 示例 测试语句 SELECT MINUTE(TIMESTAMP '1997-04-25 10:11:12') AS `result`FROMtesttable; 测试结果 result 11
  • TIMESTAMP 功能描述 将时间字符串转换为时间戳,时间字符串格式为:"yyyy-MM-dd HH:mm:ss[.fff]",以TIMESTAMP(3)类型返回。 语法说明 TIMESTAMP(3) TIMESTAMP string 入参说明 参数名 数据类型 参数说明 string STRING 时间戳字符串。 注意该字符串格式必须为"yyyy-MM-dd HH:mm:ss[.fff]",否则语义校验会报错。 示例 测试语句 SELECT TIMESTAMP "1997-04-25 13:14:15" AS `result`, TIMESTAMP "1997-04-25 13:14:15.032" AS `result2`FROMtesttable; 测试结果 result result2 1997-04-25 13:14:15 1997-04-25 13:14:15.032
  • INTERVAL 功能描述 INTERVAL函数用于表示时间间隔。 语法说明 INTERVAL INTERVAL string range 入参说明 参数名 数据类型 参数说明 string STRING 时间戳字符串,搭配参数range使用。两种格式类型,分别为: 一种为"yyyy-MM"即保存年份和月份,精度到月份,它的range参数可以为YEAR或者YEAR To Month。 一种为天时间"dd HH:mm:sss.fff",用来保存天数、小时、分钟、秒和毫秒, 精度最低到毫秒。它的range参数可以为DAY、MINUTE、DAY TO HOUR、DAY TO SECOND。 range INTERVAL 时间间隔说明,搭配string参数使用,详细请参考string参数说明。 取值范围为:YEAR、YEAR To Month、DAY、MINUTE、DAY TO HOUR、DAY TO SECOND。 示例 测试语句 --表示间隔10天4毫秒。INTERVAL '10 00:00:00.004' DAY TO second--DAY表示间隔10天INTERVAL '10' --表示间隔2年10个月INTERVAL '2-10' YEAR TO MONTH
  • TIME 功能描述 将时间字符串以"HH:mm:ss[.fff]"形式解析为SQL时间,结果以TIME类型返回。 语法说明 TIME TIME string 入参说明 参数名 数据类型 参数说明 string STRING 时间字符串。 注意该字符串格式必须"HH:mm:ss[.fff]",否则语义校验会报错。 示例 测试语句 SELECT TIME "10:11:12" AS `result`, TIME "10:11:12.032" AS `result2`FROMtesttable; 测试结果 result result2 10:11:12 10:11:12.032
  • CURRENT_TIMESTAMP 功能描述 以UTC(UTC+0)时区返回当前SQL时间戳,返回类型为TIMESTAMP(3)。 语法说明 TIMESTAMP(3) CURRENT_TIMESTAMP 入参说明 无。 示例 测试语句 SELECT CURRENT_TIMESTAMP AS `result`FROMtesttable; 测试结果 result 2021-10-28 08:33:51.606
  • EXTRACT 功能描述 提取时间点或时间间隔中指定某一时间单位的部分,以BIGINT类型返回。 语法说明 BIGINT EXTRACT(timeinteravlunit FROM temporal) 入参说明 参数名 数据类型 参数说明 timeinteravlunit TIMEUNIT 需要从时间点或时间间隔中提取的时间单位,取值可以是:YEAR/QUARTER/MONTH/WEEK/DAY/DOY/HOUR/MINUTE/SECOND。 temporal DATE/TIME/TIMESTAMP/INTERVAL 时间点或时间间隔。 不允许指定不存在于时间点或时间间隔中的时间单位,否则作业会提交失败。 例如如下错误语句,会报错YEAR不能从TIME中提取。 SELECT EXTRACT(YEAR FROM TIME '12:44:31' ) AS `result`FROMtesttable; 示例 测试语句 SELECT EXTRACT(YEAR FROM DATE '1997-04-25' ) AS `result`, EXTRACT(MINUTE FROM TIME '12:44:31') AS `result2`, EXTRACT(SECOND FROM TIMESTAMP '1997-04-25 13:14:15') AS `result3`, EXTRACT(YEAR FROM INTERVAL '2-10' YEAR TO MONTH) AS `result4`,FROMtesttable; 测试结果 result result2 result3 result4 1997 44 15 2
  • DATE 功能描述 DATE函数将"yyyy-MM-dd"日期格式的字符串解析为DATE类型的日期。 语法说明 DATE DATE string 入参说明 参数名 数据类型 参数说明 string STRING SQL日期格式的字符串。 注意该字符串的格式必须为"yyyy-MM-dd"格式,否则语义校验会报错。 示例 测试语句 SELECT DATE "2021-08-19" AS `result`FROMtesttable; 测试结果 result 2021-08-19
  • 函数说明 表1 时间函数 函数 返回值 描述 DATE string DATE 将日期字符串以"yyyy-MM-dd"的形式解析为SQL日期。 TIME string TIME 将时间字符串以"HH:mm:ss[.fff]"形式解析为SQL时间。 TIMESTAMP string TIMESTAMP 将时间字符串转换为时间戳,时间字符串格式为:"yyyy-MM-dd HH:mm:ss[.fff]"。 INTERVAL string range INTERVAL interval表示时间间隔。有两种类型,分别为: 一种为"yyyy-MM"即保存年份和月份,精度到月份,它的range参数可以为YEAR或者YEAR To Month。 一种为天时间"dd HH:mm:sss.fff",用来保存天数、小时、分钟、秒和毫秒, 精度最低到毫秒。它的range参数可以为DAY、MINUTE、DAY TO HOUR、DAY TO SECOND。 例如: INTERVAL '10 00:00:00.004' DAY TO second表示间隔10天4毫秒。 INTERVAL '10' DAY表示间隔10天 INTERVAL '2-10' YEAR TO MONTH表示间隔2年10个月。 CURRENT_DATE DATE 以UTC时区返回当前SQL日期。 CURRENT_TIME TIME 以UTC时区返回当前SQL时间。 CURRENT_TIMESTAMP TIMESTAMP 以UTC时区返回当前SQL时间戳。 LOCALTIME TIME 返回当前时区的当前SQL时间。 LOCALTIMESTAMP TIMESTAMP 返回当前时区的当前SQL时间戳。 EXTRACT(timeintervalunit FROM temporal) BIGINT 提取时间点的一部分或者时间间隔。以int类型返回该部分。 例如:提取日期“2006-06-05”中的日为5 EXTRACT(DAY FROM DATE '2006-06-05') 返回5。 YEAR(date) BIGINT 返回输入时间的年份 例如:YEAR(DATE '1994-09-27') 返回1994 QUARTER(date) BIGINT 从SQL日期返回表示该日期季度的数字。 MONTH(date) BIGINT 返回输入时间的月份 例如:MONTH(DATE '1994-09-27')返回9 WEEK(date) BIGINT 计算当前日期是一年中的第几周 例如:WEEK(DATE '1994-09-27') 返回39 DAYOFYEAR(date) BIGINT 计算当前日期是一年中的第几天 例如:DAYOFYEAR(DATE '1994-09-27') 返回270 DAYOFMONTH(date) BIGINT 计算当前日期是这个月的第几天 例如:DAYOFMONTH(DATE '1994-09-27') 返回27 DAYOFWEEK(date) BIGINT 计算当前日期是当前周的第几天 其中周日设为1 例如:DAYOFWEEK(DATE '1994-09-27') 返回3 HOUR(timestamp) BIGINT 返回当前时间戳的24小时制的小时数,范围0-23 例如:HOUR(TIMESTAMP '1994-09-27 13:14:15') 返回13 MINUTE(timestamp) BIGINT 返回当前时间戳中的分钟数,范围0-59 例如:MINUTE(TIMESTAMP '1994-09-27 13:14:15') 返回14 SECOND(timestamp) BIGINT 返回当前时间戳中的秒数,范围0-59 例如:SECOND(TIMESTAMP '1994-09-27 13:14:15') 返回15 FLOOR(timepoint TO timeintervalunit) TIME 向下对齐时间。 例如:FLOOR(TIME '12:44:31' TO MINUTE)按分钟对齐到12:44:00。 CEIL(timepoint TO timeintervalunit) TIME 向上对齐时间。 例如:CEIL(TIME '12:44:31' TO MINUTE)按分钟对齐到12:45:00。 (timepoint1, temporal1) OVERLAPS (timepoint2, temporal2) BOOLEAN 若两个时间范围有重叠,则返回TRUE 例如: (TIME '2:55:00', INTERVAL '1' HOUR) OVERLAPS (TIME '3:30:00', INTERVAL '2' HOUR) 返回TRUE (TIME '9:00:00', TIME '10:00:00') OVERLAPS (TIME '10:15:00', INTERVAL '3' HOUR) 返回 FALSE DATE_FORMAT(timestamp, string) STRING 将日期从源格式转换至目标格式 TIMESTAMPADD(timeintervalunit, interval, timepoint) TIMESTAMP/DATE/TIME 将整型interval与timeintervalunit组成的结果添加日期或日期时间到timepoint中,并返回添加后的日期时间 例如:TIMESTAMPADD(WEEK, 1, DATE '2003-01-02') 返回2003-01-09 TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2) INT 返回timepoint1和timepoint2相差的时间单元数量 timepointunit表示时间单元,应该是SECOND、MINUTE、HOUR、DAY、MONTH或YEAR 例如: TIMESTAMPDIFF(DAY, TIMESTAMP '2003-01-02 10:00:00', TIMESTAMP '2003-01-03 10:00:00') 返回1 CONVERT_TZ(string1, string2, string3) TIMESTAMP 将string2时区的时间string1转换为其在string3时区的对应时间 例如:CONVERT_TZ('1970-01-01 00:00:00', 'UTC', 'America/Los_Angeles') 返回'1969-12-31 16:00:00' FROM_UNIXTIME(numeric[, string]) STRING 根据时间戳numeric和当前时区返回string格式的时间,单位为秒 string默认格式为'YYYY-MM-DD hh:mm:ss' 例如:FROM_UNIXTIME(44)返回1970-01-01 09:00:44 UNIX_TIMESTAMP() BIGINT 返回当前时间的时间戳,单位为秒 UNIX_TIMESTAMP(string1[, string2]) BIGINT 将string2格式的时间字符串string1转为时间戳,单位为秒 string2默认格式为'yyyy-MM-dd HH:mm:ss' TO_DATE(string1[, string2]) DATE 将string2格式的日期字符串,转换为DATE类型 string2默认格式为 'yyyy-MM-dd' TO_TIMESTAMP(string1[, string2]) TIMESTAMP 将string2格式的日期时间字符串转换为TIMESTAMP类型 string2默认格式为'yyyy-MM-dd HH:mm:ss'
  • 示例 create table jdbcSource ( car_id STRING, car_owner STRING, car_age INT, average_speed INT, total_miles INT)with ( 'connector.type' = 'jdbc', 'connector.url' = 'jdbc:mysql://xx.xx.xx.xx:3306/xx', 'connector.table' = 'jdbc_table_name', 'connector.driver' = 'com.mysql.jdbc.Driver', 'connector.username' = 'xxx', 'connector.password' = 'xxxxxx');
  • 示例 准备测试输入数据 表2 测试源表disSource数据和分隔符 target(STRING) separator (VARCHAR) test-flink - flink - one-two-ww-three - 输入测试SQL语句 create table disSource( target STRING, separator VARCHAR) with ( "connector.type" = "dis", "connector.region" = "xxx", "connector.channel" = "ygj-dis-in", "format.type" = 'csv');create table disSink( target STRING, item STRING) with ( 'connector.type' = 'dis', 'connector.region' = 'xxx', 'connector.channel' = 'ygj-dis-out', 'format.type' = 'csv');insert into disSinkselect target, itemfrom disSource,lateral table(string_split(target, separator)) as T(item); 查看测试结果 表3 disSink结果表数据 target(STRING) item(STRING) test-flink test test-flink flink flink flink one-two-ww-three one one-two-ww-three two one-two-ww-three ww one-two-ww-three three
  • 语法说明 string_split(target, separator) 表1 string_split参数说明 参数 数据类型 说明 target STRING 待处理的目标字符串。 说明: 如果target为NULL,则返回一个空行。 如果target包含两个或多个连续出现的分隔符时,则返回长度为零的空子字符串。 如果target未包含指定分隔符,则返回目标字符串。 separator VARCHAR 指定的分隔符,当前仅支持单字符分割。
  • 参数说明 表1 参数说明 参数 是否必选 说明 connector.type 是 数据源类型,‘jdbc’表示使用JDBC connector,必须为jdbc connector.url 是 数据库的URL connector.table 是 读取数据库中的数据所在的表名 connector.driver 否 连接数据库所需要的驱动。若未配置,则会自动通过URL提取 connector.username 否 数据库认证用户名,需要和'connector.password'一起配置 connector.password 否 数据库认证密码,需要和'connector.username'一起配置 connector.read.partition.column 否 用于对输入进行分区的列名 与connector.read.partition.lower-bound、connector.read.partition.upper-bound、 connector.read.partition.num必须同时存在或者同时不存在 connector.read.partition.lower-bound 否 第一个分区的最小值 与connector.read.partition.column、connector.read.partition.upper-bound、 connector.read.partition.num必须同时存在或者同时不存在 connector.read.partition.upper-bound 否 最后一个分区的最大值 与connector.read.partition.column、connector.read.partition.lower-bound、 connector.read.partition.num必须同时存在或者同时不存在 connector.read.partition.num 否 分区的个数 与connector.read.partition.column、connector.read.partition.upper-bound、 connector.read.partition.upper-bound必须同时存在或者同时不存在 connector.read.fetch-size 否 每次从数据库拉取数据的行数。默认值为0,表示忽略该提示。
  • 语法格式 create table jbdcSource ( attr_name attr_type (',' attr_name attr_type)* (','PRIMARY KEY (attr_name, ...) NOT ENFORCED) (',' watermark for rowtime_column_name as watermark-strategy_expression))with ( 'connector.type' = 'jdbc', 'connector.url' = '', 'connector.table' = '', 'connector.username' = '', 'connector.password' = '');
  • 示例 insert into temp SELECT Date '2015-10-11' FROM OrderA;//返回日期insert into temp1 SELECT Time '12:14:50' FROM OrderA;//返回时间insert into temp2 SELECT Timestamp '2015-10-11 12:14:50' FROM OrderA;//返回时间戳
  • 数组函数 表1 数组函数表 函数 返回值类型 描述 CARDINALITY(ARRAY) INT 返回数组的元素个数。 ELEMENT(ARRAY) - 使用单个元素返回数组的唯一元素。 如果数组为空,则返回null。如果数组有多个元素,则抛出异常。 示例: 返回数组的元素个数为3。 insert into temp select CARDINALITY(ARRAY[TRUE, TRUE, FALSE]) from source_stream; 返回'HELLO WORLD'。 insert into temp select ELEMENT(ARRAY['HELLO WORLD']) from source_stream;
  • 属性访问函数 表2 属性访问函数表 函数 返回值类型 描述 tableName.compositeType.field - 选择单个字段,通过名称访问Apache Flink复合类型(如Tuple,POJO等)的字段并返回其值。 tableName.compositeType.* - 选择所有字段,将Apache Flink复合类型(如Tuple,POJO等)和其所有直接子类型转换为简单表示,其中每个子类型都是单独的字段。
  • 参数说明 表1 参数说明 参数 是否必选 默认值 数据类型 参数说明 connector 是 无 String 指定要使用的连接器,这里是'datagen'。 rows-per-second 否 10000 Long 每秒生成的行数,用以控制数据发出速率。 fields.#.kind 否 random String 指定 '#' 字段的生成器。 '#' 字段必须是DataGen表中的字段,实际使用时需要将'#'替换为相应字段名。其他各参数的'#'号意义相同,不再重复描述。 参数值可以是 'sequence' 或 'random',具体含义如下: random是默认的生成器,您可以通过“fields.#.max”和“fields.#.min”参数指定随机生成的最大和最小值。 当指定的字段类型为char、varchar、string时,可以同时通过“fields.#.length”字段指定长度。random是无界的生成器。 sequence生成器,您可以通过“fields.#.start”和“fields.#.end”指定序列的起始和结束值。sequence是有界的生成器,当序列数字达到结束值,读取结束。 fields.#.min 否 '#'号指定的字段类型的最小值 '#'号指定的字段类型 当“fields.#.kind”字段为:random时有效。 表示随机生成器的最小值,'#' 指定的字段仅适用于数字类型。 fields.#.max 否 '#'号指定的字段类型的最大值 '#'号指定的字段类型 当“fields.#.kind”字段为:random时有效。 随机生成器的最大值,'#' 指定的字段仅适用于数字类型。 fields.#.length 否 100 Integer 当“fields.#.kind”字段为:random时有效。 随机生成器生成字符的长度,#' 指定的字段仅适用于char、varchar、string。 fields.#.start 否 无 '#'号指定的字段类型 当“fields.#.kind”字段为:sequence时有效。 序列生成器的起始值。 fields.#.end 否 无 '#'号指定的字段类型 当“fields.#.kind”字段为:sequence时有效。 序列生成器的结束值。
  • 创建表相关语法 表1 创建表相关语法 语法分类 功能描述 创建源表 DataGen源表 DWS源表 Hbase源表 JDBC源表 Kafka源表 MySQL CDC源表 Postgres CDC源表 Redis源表 Upsert Kafka源表 创建结果表 BlackHole结果表 ClickHouse结果表 DWS结果表 Elasticsearch结果表 Hbase结果表 JDBC结果表 Kafka结果表 Print结果表 Redis结果表 Upsert Kafka结果表 创建维表 DWS维表 Hbase维表 JDBC维表 Redis维表 Format Avro Canal Confluent Avro CSV Debezium JSON Maxwell Raw
  • 功能描述 BlackHole Connector允许接收所有输入记录,常用于高性能测试和UDF 输出,其不是实质性Sink。Blackhole结果表是系统内置的Connector。 例如,如果您在注册其他类型的Connector结果表时报错,但您不确定是系统问题还是结果表WITH参数错误,您可以将WITH参数修改为'connector' = 'blackhole'后,单击运行。如果不再报错,则证明系统没有问题,您需要排查确认修改WITH参数是否正确。
  • 示例 通过DataGen源表产生数据,BlackHole结果表接收传来的数据。 create table datagenSource ( user_id string, user_name string, user_age int) with ( 'connector' = 'datagen', 'rows-per-second'='1');create table blackholeSink ( user_id string, user_name string, user_age int) with ( 'connector' = 'blackhole');insert into blackholeSink select * from datagenSource;
  • 数据类型映射 目前,Avro schema 通常是从 table schema 中推导而来。尚不支持显式定义 Avro schema。因此,下表列出了从 Flink 类型到 Avro 类型的类型映射。 除了下面列出的类型,Flink 支持读取/写入 nullable 的类型。Flink 将 nullable 的类型映射到 Avro union(something, null),其中 something 是从 Flink 类型转换的 Avro 类型。 您可以参考 Avro 规范 获取更多有关 Avro 类型的信息。 表2 数据类型映射 Flink SQL类型 Avro类型 Avro逻辑类型 CHAR / VARCHAR / STRING string - BOOLEAN boolean - BINARY / VARBINARY bytes - DECIMAL fixed decimal TINYINT int - SMALLINT int - INT int - BIGINT long - FLOAT float - DOUBLE double - DATE int date TIME int time-millis TIMESTAMP long timestamp-millis ARRAY array - MAP(key 必须是 string/char/varchar 类型) map - MULTISET(元素必须是 string/char/varchar 类型) map - ROW record -
共100000条