华为云用户手册

  • UNIX_TIMESTAMP(string1[, string2]) 功能描述 参数语法说明,本函数将以string2格式的时间字符串string1转为Unix 时间戳(以秒为单位)。以BIGINT类型返回。 语法说明 BIGINT UNIX_TIMESTAMP(string1[, string2]) 入参说明 参数名 数据类型 参数说明 string1 STRING SQL时间戳形式的字符串。不符合string2参数格式的字符串语法会报错。 string2 STRING 时间字符串格式。如果不指定该参数,则默认为'yyyy-MM-dd HH:mm:ss' 。 示例 测试语句 SELECT UNIX_TIMESTAMP('1997-04-25', 'yyyy-MM-dd') AS `result`, UNIX_TIMESTAMP('1997-04-25 00:00:10', 'yyyy-MM-dd HH:mm:ss') AS `result2`, UNIX_TIMESTAMP('1997-04-25 00:00:00') AS `result3`FROMtesttable; 测试结果 result result2 result3 861897600 861897610 861897600
  • FROM_UNIXTIME 功能描述 参考语法说明,本函数根据时间戳numeric和当前时区返回string格式的时间。 语法说明 STRING FROM_UNIXTIME(numeric[, string]) 入参说明 参数名 数据类型 参数说明 numeric BIGINT 内部时间戳值,表示自'1970-01-01 00:00:00' UTC 以来的秒数,值可以由UNIX_TIMESTAMP() 函数生成。 string STRING 时间字符串格式。如果该参数不指定,则默认为'yyyy-MM-dd HH:mm:ss'。 示例 测试语句 SELECT FROM_UNIXTIME(44) AS `result`, FROM_UNIXTIME(44, 'yyyy:MM:dd') AS `result2`FROMtesttable; 测试结果 result result2 1970-01-01 08:00:44 1970:01:01
  • TO_DATE 功能描述 参数语法说明,本函数将string2格式的日期字符串string1转换为DATE类型。 语法说明 DATE TO_DATE(string1[, string2]) 入参说明 参数名 数据类型 参数说明 string1 STRING SQL时间戳形式的字符串。不符合格式的字符串会执行报错。 string2 STRING 字符串格式。如果不指定该参数,则默认为'yyyy-MM-dd' 。 示例 测试语句 SELECT TO_DATE('1997-04-25') AS `result`, TO_DATE('1997:04:25', 'yyyy-MM-dd') AS `result2`, TO_DATE('1997-04-25 00:00:00', 'yyyy-MM-dd HH:mm:ss') AS `result3`FROMtesttable; 测试结果 result result2 result3 1997-04-25 1997-04-25 1997-04-25
  • CONVERT_TZ 功能描述 参考语法说明,本函数将日期时间string1(具有默认ISO时间戳格式'yyyy-MM-dd HH:mm:ss' )从时区string2转换为时区string3的值,结果以STRING类型返回。 语法说明 STRING CONVERT_TZ(string1, string2, string3) 入参说明 参数名 数据类型 参数说明 string1 STRING SQL时间戳形式的字符串,不符合格式的字符串会返回NULL。 string2 STRING 转换前时区。时区的格式应该是缩写如“PST”,全名如“America/Los_Angeles”,或自定义ID如“GMT-08:00”。 string3 STRING 转换后时区。时区的格式应该是缩写如“PST”,全名如“America/Los_Angeles”,或自定义ID如“GMT-08:00”。 示例 测试语句 SELECT CONVERT_TZ(1970-01-01 00:00:00, UTC, America/Los_Angeles) AS `result`, CONVERT_TZ(1997-04-25 10:00:00, UTC, GMT-08:00) AS `result2`FROMtesttable; 测试结果 result result2 1969-12-31 16:00:00 1997-04-25 02:00:00
  • 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
  • TIMESTAMPADD 功能描述 参考语法说明,本函数功能为将整型interval与timeintervalunit组成的结果添加到timepoint中,并返回添加后的日期时间。 TIMESTAMPADD函数返回结果与timepoint相同。例外场景为:如果timepoint输入类型为TIMESTAMP,也可以将TIMESTAMPADD函数返回结果插入到DATE类型的表字段中。 语法说明 TIMESTAMP(3)/DATE/TIME TIMESTAMPADD(timeintervalunit, interval, timepoint) 入参说明 参数名 数据类型 参数说明 timeintervalunit TIMEUNIT 时间单位。 interval INT 整型的时间间隔。 timepoint TIMESTAMP/DATE/TIME 时间点 示例 测试语句 SELECT TIMESTAMPADD(WEEK, 1, DATE '1997-04-25') AS `result`, TIMESTAMPADD(QUARTER, 1, TIMESTAMP '1997-04-25 10:11:12') AS `result2`,TIMESTAMPADD(SECOND, 2, TIME '10:11:12') AS `result3`FROMtesttable; 测试结果 result result2 result3 1997-05-02 如果该字段插入到TIMESTAMP类型的表字段中,则返回:1997-07-25T10:11:12 如果该字段插入到TIMESTAMP类型的表字段中,则返回:1997-07-25 10:11:14
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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'
  • 参数说明 表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,表示忽略该提示。
  • 语法说明 string_split(target, separator) 表1 string_split参数说明 参数 数据类型 说明 target STRING 待处理的目标字符串。 说明: 如果target为NULL,则返回一个空行。 如果target包含两个或多个连续出现的分隔符时,则返回长度为零的空子字符串。 如果target未包含指定分隔符,则返回目标字符串。 separator VARCHAR 指定的分隔符,当前仅支持单字符分割。
  • 示例 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
  • 语法格式 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;//返回时间戳
  • 属性访问函数 表2 属性访问函数表 函数 返回值类型 描述 tableName.compositeType.field - 选择单个字段,通过名称访问Apache Flink复合类型(如Tuple,POJO等)的字段并返回其值。 tableName.compositeType.* - 选择所有字段,将Apache Flink复合类型(如Tuple,POJO等)和其所有直接子类型转换为简单表示,其中每个子类型都是单独的字段。
  • 数组函数 表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;
共100000条