华为云用户手册

  • 关键字 表1 关键字说明 参数 是否必选 说明 type 是 数据源类型,“CloudTable”表示数据源为 表格存储服务 。 region 是 表格存储 服务所在区域。 cluster_id 是 待读取数据表所属集群id。 如何查看CloudTable的集群id,请参见《表格存储服务用户指南》中“查看集群基本信息”章节。 table_name 是 待读取数据的表名,如需指定namespace,可表示为:namespace_name:table_name 。 table_columns 是 待读取的列,具体形式如:"rowKey,f1:c1,f1:c2,f2:c1",并且保证与source相同的列数。
  • 功能描述 创建source流从表格存储服务CloudTable的HBase中获取数据,作为作业的输入数据。HBase是一个稳定可靠,性能卓越、可伸缩、面向列的分布式 云存储 系统,适用于海量数据存储以及分布式计算的场景,用户可以利用HBase搭建起TB至PB级数据规模的存储系统,对数据轻松进行过滤分析,毫秒级得到响应,快速发现数据价值。 DLI 可以从HBase中读取数据,用于过滤分析、数据转储等场景。 表格存储服务(CloudTable),是基于Apache HBase提供的分布式、可伸缩、全托管的KeyValue数据存储服务,为DLI提供了高性能的随机读写能力,适用于海量结构化数据、半结构化数据以及时序数据的存储和查询应用,适用于物联网IOT应用和通用海量KeyValue数据存储与查询等场景。CloudTable的更多信息,请参见《表格存储服务用户指南》。
  • 关键字 表1 关键字说明 参数 是否必选 说明 type 是 数据源类型,“obs”表示数据源为 对象存储服务 。 region 是 对象存储服务所在区域。 encode 否 数据的编码格式,可以为“csv”或者“json”。默认值为“csv”。 ak 否 访问密钥ID(Access Key ID)。访问密钥获取方式请参见我的凭证。 sk 否 Secret Access Key,与访问密钥ID结合使用的密钥。访问密钥获取方式请参见我的凭证。 bucket 是 数据所在的OBS桶名。 object_name 是 数据所在OBS桶中的对象名。如果对象不在OBS根目录下,则需添加文件夹名,例如:test/test.csv。对象文件格式参考“encode”参数。 row_delimiter 是 行间的分隔符。 field_delimiter 否 属性分隔符。 当“encode”参数为csv时,该参数必选。用户可以自定义属性分隔符。 当“encode”参数为json时,该参数不需要填写。 quote 否 可以指定数据格式中的引用符号,在两个引用符号之间的属性分隔符会被当做普通字符处理。 当引用符号为双引号时,请设置quote = "\u005c\u0022"进行转义。 当引用符号为单引号时,则设置quote = "'"。 说明: 目前只适用于 CS V格式。 设置引用符号后,必须保证每个字段中包含0个或者偶数个引用符号,否则会解析失败。 version_id 否 版本号,当obs里的桶或对象有设置版本的时候需填写,否则不用配置该项。
  • 示例 从OBS的桶读取对象为input.csv的文件,文件以'\n'划行, 以','划列。 测试输入数据input.csv可以先通过新建input.txt复制如下文本数据,再另存为input.csv格式文件。将input.csv上传到对应OBS桶目录下。例如,当前上传到:“dli-test-obs01”桶目录下。 1,2,3,4,1403149534 5,6,7,8,1403149535 创建表参考如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 CREATE SOURCE STREAM car_infos ( car_id STRING, car_owner STRING, car_brand STRING, car_price INT, car_timestamp LONG ) WITH ( type = "obs", bucket = "dli-test-obs01", region = "xxx", object_name = "input.csv", row_delimiter = "\n", field_delimiter = "," ); 从OBS的桶读取对象为input.json的文件,文件以'\n'划行。 CREATE SOURCE STREAM obs_source ( str STRING ) WITH ( type = "obs", bucket = "obssource", region = "xxx", encode = "json", row_delimiter = "\n", object_name = "input.json" );
  • 语法格式 1 2 3 4 5 6 7 8 9 10 CREATE SOURCE STREAM stream_id (attr_name attr_type (',' attr_name attr_type)* ) WITH ( type = "obs", region = "", bucket = "", object_name = "", row_delimiter = "\n", field_delimiter = '', version_id = "" );
  • 功能描述 创建source流从对象存储服务(OBS)获取数据。DLI从OBS上读取用户存储的数据,作为作业的输入数据。适用于大数据分析、原生云应用程序数据、静态网站托管、备份/活跃归档、深度/冷归档等场景。 对象存储服务(Object Storage Service,简称OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。OBS的更多信息,请参见《对象存储服务控制台指南》。
  • 语法格式 CREATE SOURCE STREAM stream_id (attr_name attr_type (',' attr_name attr_type)* ) WITH ( type = "dis", region = "", channel = "", partition_count = "", encode = "", field_delimiter = "", offset= "");
  • 功能描述 创建source流从 数据接入服务 (DIS)获取数据。用户数据从DIS接入,Flink作业从DIS的通道读取数据,作为作业的输入数据。Flink作业可通过DIS的source源将数据从生产者快速移出,进行持续处理,适用于将云服务外数据导入云服务后进行过滤、实时分析、监控报告和转储等场景。 数据接入服务(Data Ingestion Service,简称DIS)为处理或分析流数据的自定义应用程序构建数据流管道,主要解决云服务外的数据实时传输到云服务内的问题。数据接入服务每小时可从数十万种数据源(如IoT数据采集、日志和定位追踪事件、网站点击流、社交媒体源等)中连续捕获、传送和存储数TB数据。DIS的更多信息,请参见《数据接入服务用户指南》。
  • 关键字 表1 关键字说明 参数 是否必选 说明 type 是 数据源类型,“dis”表示数据源为数据接入服务。 region 是 数据所在的DIS区域。 ak 否 访问密钥ID(Access Key ID)。访问密钥获取方式请参见我的凭证。 sk 否 Secret Access Key,与访问密钥ID结合使用的密钥。访问密钥获取方式请参见我的凭证。 channel 是 数据所在的DIS通道名称。 partition_count 否 数据所在的DIS通道分区数。该参数和partition_range参数不能同时配置。当该参数没有配置的时候默认读取所有partition。 partition_range 否 指定作业从DIS通道读取的分区范围。该参数和partition_count参数不能同时配置。当该参数没有配置的时候默认读取所有partition。 partition_range = "[0:2]"时,表示读取的分区范围是1-3,包括分区1、分区2和分区3。 encode 是 数据编码格式,可选为“csv”、“json”、“xml”、“email”、“blob”和“user_defined”。 若编码格式为“csv”,则需配置“field_delimiter”属性。 若编码格式为“json”,则需配置“json_config”属性。 若编码格式为“xml”,则需配置“xml_config”属性。 若编码格式为“email”,则需配置“email_key”属性。 若编码格式为“blob”,表示不对接收的数据进行解析,流属性仅能有一个且数据格式为ARRAY[TINYINT]。 若编码格式为“user_defined”,则需配置“encode_class_name”和“encode_class_parameter”属性。 field_delimiter 否 属性分隔符,仅当编码格式为csv时该参数需要填写,例如配置为“,”。 quote 否 可以指定数据格式中的引用符号,在两个引用符号之间的属性分隔符会被当做普通字符处理。 当引用符号为双引号时,请设置quote = "\u005c\u0022"进行转义。 当引用符号为单引号时,则设置quote = "'"。 说明: 目前仅适用于CSV格式。 设置引用符号后,必须保证每个字段中包含0个或者偶数个引用符号,否则会解析失败。 json_config 否 当编码格式为json时,用户需要通过该参数来指定json字段和流定义字段的映射关系,格式为“field1=data_json.field1; field2=data_json.field2; field3=$”,其中field3=$表示field3的内容为整个json串。 xml_config 否 当编码格式为xml时,用户需要通过该参数来指定xml字段和流定义字段的映射关系,格式为“field1=data_xml.field1; field2=data_xml.field2”。 email_key 否 当编码格式为email时,用户需要通过该参数来指定需要提取的信息,需要列出信息的key值,需要与流定义字段一一对应,多个key值时以逗号分隔,例如“Message-ID, Date, Subject, body”,其中由于邮件正文没有关键字,DLI规定其关键字为“body”。 encode_class_name 否 当encode为user_defined时,需配置该参数,指定用户自实现解码类的类名(包含完整包路径),该类需继承类DeserializationSchema。 encode_class_parameter 否 当encode为user_defined时,可以通过配置该参数指定用户自实现解码类的入参,仅支持一个string类型的参数。 offset 否 当启动作业后再获取数据,则该参数无效。 当获取数据后再启动作业,用户可以根据需求设置该参数的数值。 例如当offset= "100"时,则表示DLI从DIS服务中的第100条数据开始处理。 start_time 否 DIS数据读取起始时间。 当该参数配置时则从配置的时间开始读取数据,有效格式为yyyy-MM-dd HH:mm:ss。 当没有配置start_time也没配置offset的时候,读取最新数据。 当没有配置start_time但配置了offset的时候,则从offset开始读取数据。 enable_checkpoint 否 是否启用checkpoint功能,可配置为true(启用)或者false(停用), 默认为false。 checkpoint_app_name 否 DIS服务的消费者标识,当不同作业消费相同通道时,需要区分不同的消费者标识,以免checkpoint混淆。 checkpoint_interval 否 DIS源算子做checkpoint的时间间隔,单位秒,默认为60。
  • OVER WINDOW Over Window与Group Window区别在于Over window每一行都会输出一条记录。 语法格式 1 2 3 4 OVER ( [PARTITION BY partition_name] ORDER BY proctime|rowtime(ROWS number PRECEDING) |(RANGE (BETWEEN INTERVAL '1' SECOND PRECEDING AND CURRENT ROW | UNBOUNDED preceding)) ) 语法说明 表3 参数说明 参数 参数说明 PARTITION BY 指定分组的主键,每个分组各自进行计算。 ORDER BY 指定数据按processing time或event time作为时间戳。 ROWS 个数窗口。 RANGE 时间窗口。 注意事项 同一select里所有聚合函数定义的窗口都必须保持一致。 当前Over窗口只支持前向计算(preceding),不支持following计算。 必须指定ORDER BY 按processing time或event time。 不支持对常量做聚合操作,如sum(2)。 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // 计算从规则启动到目前为止的计数及总和(in proctime) insert into temp SELECT name, count(amount) OVER (PARTITION BY name ORDER BY proctime RANGE UNBOUNDED preceding) as cnt1, sum(amount) OVER (PARTITION BY name ORDER BY proctime RANGE UNBOUNDED preceding) as cnt2 FROM Orders; // 计算最近四条记录的计数及总和(in proctime) insert into temp SELECT name, count(amount) OVER (PARTITION BY name ORDER BY proctime ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) as cnt1, sum(amount) OVER (PARTITION BY name ORDER BY proctime ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) as cnt2 FROM Orders; // 计算最近60s的计数及总和(in eventtime),基于事件时间处理,事件时间为Orders中的timeattr字段。 insert into temp SELECT name, count(amount) OVER (PARTITION BY name ORDER BY timeattr RANGE BETWEEN INTERVAL '60' SECOND PRECEDING AND CURRENT ROW) as cnt1, sum(amount) OVER (PARTITION BY name ORDER BY timeattr RANGE BETWEEN INTERVAL '60' SECOND PRECEDING AND CURRENT ROW) as cnt2 FROM Orders;
  • GROUP WINDOW 语法说明 Group Window定义在GROUP BY里,每个分组只输出一条记录,包括以下几种: time_attr可以设置processing-time或者event-time。 time_attr设置为event-time时参数类型为bigint或者timestamp类型。 time_attr设置为processing-time时无需指定类型。 interval设置窗口周期。 分组函数 表1 分组函数表 函数名 说明 TUMBLE(time_attr, interval) 跳跃窗口。 HOP(time_attr, interval, interval) 拓展的跳跃窗口(等价于datastream的滑动窗口),可以分别设置输出触发周期和窗口周期。 SESSION(time_attr, interval) 会话窗口,interval表示多长时间没有记录则关闭窗口。 窗口函数 表2 窗口函数表 函数名 说明 TUMBLE_START(time_attr, interval) 返回跳跃窗口开始时间。为UTC时区。 TUMBLE_END(time_attr, interval) 返回跳跃窗口结束时间。为UTC时区。 HOP_START(time_attr, interval, interval) 返回拓展的跳跃窗口开始时间。为UTC时区。 HOP_END(time_attr, interval, interval) 返回拓展的跳跃窗口结束时间。为UTC时区。 SESSION_START(time_attr, interval) 返回会话窗口开始时间。为UTC时区。 SESSION_END(time_attr, interval) 返回会话窗口结束时间。为UTC时区。 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 // 每天计算SUM(金额)(事件时间)。 insert into temp SELECT name, TUMBLE_START(ts, INTERVAL '1' DAY) as wStart, SUM(amount) FROM Orders GROUP BY TUMBLE(ts, INTERVAL '1' DAY), name; // 每天计算SUM(金额)(处理时间)。 insert into temp SELECT name, SUM(amount) FROM Orders GROUP BY TUMBLE(proctime, INTERVAL '1' DAY), name; // 每个小时计算事件时间中最近24小时的SUM(数量)。 insert into temp SELECT product, SUM(amount) FROM Orders GROUP BY HOP(ts, INTERVAL '1' HOUR, INTERVAL '1' DAY), product; // 计算每个会话的SUM(数量),间隔12小时的不活动间隙(事件时间)。 insert into temp SELECT name, SESSION_START(ts, INTERVAL '12' HOUR) AS sStart, SESSION_END(ts, INTERVAL '12' HOUR) AS sEnd, SUM(amount) FROM Orders GROUP BY SESSION(ts, INTERVAL '12' HOUR), name;
  • 示例 分别使用四种函数结合窗口来实时计算聚类的相关信息。 1 2 3 4 5 6 7 8 9 10 SELECT CENTROID(ARRAY[c,e], 1.0) OVER (ORDER BY proctime RANGE UNBOUNDED PRECEDING) AS centroid, CLUSTER_CENTROIDS(ARRAY[c,e], 1.0) OVER (ORDER BY proctime RANGE UNBOUNDED PRECEDING) AS centroids FROM MyTable SELECT CENTROID(ARRAY[c,e], 1.0) OVER (ORDER BY proctime RANGE BETWEEN INTERVAL '60' MINUTE PRECEDING AND CURRENT ROW) AS centroidCE, ALL_POINTS_OF_CLUSTER(ARRAY[c,e], 1.0) OVER (ORDER BY proctime RANGE BETWEEN INTERVAL '60' MINUTE PRECEDING AND CURRENT ROW) AS itemList, ALL_CLUSTERS_POINTS(ARRAY[c,e], 1.0) OVER (ORDER BY proctime RANGE BETWEEN INTERVAL '60' MINUTE PRECEDING AND CURRENT ROW) AS listoflistofpoints FROM MyTable
  • 语法格式 1 2 3 4 CENTROID(ARRAY[field_names], distance_threshold):加入当前数据点后,该数据点所属分类中心。 CLUSTER_CENTROIDS(ARRAY[field_names], distance_threshold):加入当前数据点后,所有分类中心。 ALL_POINTS_OF_CLUSTER(ARRAY[field_names], distance_threshold):加入当前数据点后,该分类所有数据点。 ALL_CLUSTERS_POINTS(ARRAY[field_names], distance_threshold):加入当前数据点后,所有分类对应的所有数据点。 聚类算法可以应用在无界流中。
  • IP地理函数 当前仅支持IPV4的IP地址。 表6 IP地理函数表 函数 返回值 说明 IP_TO_COUNTRY STRING 获取IP地址所在的国家名称。 IP_TO_PROVINCE STRING 获取IP地址所在的省份。 用法说明: IP_TO_PROVINCE(STRING ip):返回IP地址所在的省份。 IP_TO_PROVINCE(STRING ip, STRING lang):以指定语言返回IP地址所在的省份。 说明: 当IP无法被解析到省份时,返回该IP所属的国家。当IP无法被解析时,返回“未知”。 函数返回的省份名称均为简称。 中文参考如下链接:http://www.gov.cn/guoqing/2005-09/13/content_5043917.htm IP_TO_CITY STRING 获取IP地址所在的城市名称。 说明: 当IP无法被解析到城市时,返回该IP所属的省份或者国家。当IP无法被解析时,返回“未知”。 IP_TO_CITY_GEO STRING 获取IP地址所在城市的经纬度,格式为“纬度,经度”。 用法说明: IP_TO_CITY_GEO(STRING ip):返回IP所在城市的经纬度。
  • 示例 偏航检测样例: 1 2 3 4 INSERT INTO yaw_warning SELECT "The car is yawing" FROM driver_behavior WHERE NOT ST_WITHIN(ST_POINT(cast(Longitude as DOUBLE), cast(Latitude as DOUBLE)), ST_BUFFER(ST_LINE(ARRAY[ST_POINT(34.585555,105.725221),ST_POINT(34.586729,105.735974),ST_POINT(34.586492,105.740538),ST_POINT(34.586388,105.741651),ST_POINT(34.586135,105.748712),ST_POINT(34.588691,105.74997)]),0.001));
  • 函数说明 基本地理空间几何元素介绍说明如表1所示。 表1 基本地理空间几何元素表 地理空间几何元素(统称geometry) 说明 举例 ST_POINT(latitude, longitude) 地理点,包含经度和维度两个信息。 ST_POINT(1.12012, 1.23401) ST_LINE(array[point1...pointN]) 地理线,由多个地理点(ST_POINT)按顺序连接成的折线或直线。 ST_LINE(ARRAY[ST_POINT(1.12, 2.23), ST_POINT(1.13, 2.44), ST_POINT(1.13, 2.44)]) ST_POLYGON(array[point1...point1]) 地理多边形,由首尾相同的多个地理点(ST_POINT)按顺序连线围成的封闭多边形区域。 ST_POLYGON(ARRAY[ST_POINT(1.0, 1.0), ST_POINT(2.0, 1.0), ST_POINT(2.0, 2.0), ST_POINT(1.0, 1.0)]) ST_CIRCLE(point, radius) 地理圆形,由圆心地理点(ST_POINT)和半径构成的地理圆形区域。 ST_CIRCLE(ST_POINT(1.0, 1.0), 1.234) 用户可以以基本地理空间几何元素为基础,构造复杂的地理空间几何元素,具体的变换方法见表2。 表2 基于基本地理空间几何元素构造复杂几何元素的变换表 变换方法 说明 举例 ST_BUFFER(geometry, distance) 创建一个环绕包含给定地理空间几何元素的多边形,并以给定距离作为环绕距离,通常使用该函数构造一定宽度的公路范围用于偏航检测。 ST_BUFFER(ST_LINE(ARRAY[ST_POINT(1.12, 2.23), ST_POINT(1.13, 2.44), ST_POINT(1.13, 2.44)]),1.0) ST_INTERSECTION(geometry, geometry) 创建一个多边形,其范围为给定的两个地理空间几何元素的交叠区域。 ST_INTERSECTION(ST_CIRCLE(ST_POINT(1.0, 1.0), 2.0), ST_CIRCLE(ST_POINT(3.0, 1.0), 1.234)) ST_ENVELOPE(geometry) 创建一个包含给定的地理空间几何元素的最小矩形。 ST_ENVELOPE(ST_CIRCLE(ST_POINT(1.0, 1.0), 2.0)) DLI提供丰富的对地理空间几何元素的操作和位置判断函数,具体的SQL标量函数介绍说明见表3。 表3 SQL标量函数表 函数 返回值 说明 ST_DISTANCE(point_1, point_2) DOUBLE 计算两个地理点之间的欧几里得距离。 示例如下: Select ST_DISTANCE(ST_POINT(x1, y1), ST_POINT(x2, y2)) FROM input ST_GEODESIC_DISTANCE(point_1, point_2) DOUBLE 计算两个地理点之间的测地距离,即两个地理点之间地表最短路径距离。 示例如下: Select ST_GEODESIC_DISTANCE(ST_POINT(x1, y1), ST_POINT(x2, y2)) FROM input ST_PERIMETER(polygon) DOUBLE 计算多边形的周长。 示例如下: Select ST_PERIMETER(ST_POLYGON(ARRAY[ST_POINT(x11, y11), ST_POINT(x12, y12), ST_POINT(x11, y11)]) FROM input ST_AREA(polygon) DOUBLE 计算多边形区域的面积。 示例如下: Select ST_AREA(ST_POLYGON(ARRAY[ST_POINT(x11, y11), ST_POINT(x12, y12), ST_POINT(x11, y11)]) FROM input ST_OVERLAPS(polygon_1, polygon_2) BOOLEAN 判断一个多边形是否与另一个多边形有重叠区域。 示例如下: SELECT ST_OVERLAPS(ST_POLYGON(ARRAY[ST_POINT(x11, y11), ST_POINT(x12, y12), ST_POINT(x11, y11)]), ST_POLYGON(ARRAY[ST_POINT(x21, y21), ST_POINT(x22, y22), ST_POINT(x23, y23), ST_POINT(x21, y21)])) FROM input ST_INTERSECT(line1, line2) BOOLEAN 检查两条线段是否相互交叉,而非线条所在的直线是否交叉。 示例如下: SELECT ST_INTERSECT(ST_LINE(ARRAY[ST_POINT(x11, y11), ST_POINT(x12, y12)]), ST_LINE(ARRAY[ST_POINT(x21, y21), ST_POINT(x22, y22), ST_POINT(x23, y23)])) FROM input ST_WITHIN(point, polygon) BOOLEAN 一个点是否包含在几何体(多边形或圆形)内。 示例如下: SELECT ST_WITHIN(ST_POINT(x11, y11), ST_POLYGON(ARRAY[ST_POINT(x21, y21), ST_POINT(x22, y22), ST_POINT(x23, y23), ST_POINT(x21, y21)])) FROM input ST_CONTAINS(polygon_1, polygon_2) BOOLEAN 判断第一个几何体是否包含第二个几何体。 示例如下: SELECT ST_CONTAINS(ST_POLYGON(ARRAY[ST_POINT(x11, y11), ST_POINT(x12, y12), ST_POINT(x11, y11)]), ST_POLYGON(ARRAY[ST_POINT(x21, y21), ST_POINT(x22, y22), ST_POINT(x23, y23), ST_POINT(x21, y21)])) FROM input ST_COVERS(polygon_1, polygon_2) BOOLEAN 第一个几何体是否覆盖第二个几何体。与ST_CONTAINS相似,但在边界重叠情况下ST_COVER判断为TRUE,ST_CONTAINS判断为FALSE。 示例如下: SELECT ST_COVERS(ST_POLYGON(ARRAY[ST_POINT(x11, y11), ST_POINT(x12, y12), ST_POINT(x11, y11)]), ST_POLYGON([ST_POINT(x21, y21), ST_POINT(x22, y22), ST_POINT(x23, y23), ST_POINT(x21, y21)])) FROM input ST_DISJOINT(polygon_1, polygon_2) BOOLEAN 判断一个多边形是否与另一个多边形不相交(不重叠)。 示例如下: SELECT ST_DISJOINT(ST_POLYGON(ARRAY[ST_POINT(x11, y11), ST_POINT(x12, y12), ST_POINT(x11, y11)]), ST_POLYGON(ARRAY[ST_POINT(x21, y21), ST_POINT(x22, y22), ST_POINT(x23, y23), ST_POINT(x21, y21)])) FROM input 地理函数的基准坐标系标准为全球通用的GPS坐标系标准WGS84,GPS坐标不能直接在百度地图(BD09标准)或者google地图(GCJ02标准)上使用,会有偏移现象,为了在不同地理坐标系之间切换,DLI提供了坐标系转换的一系列函数,并且还提供地理距离与米之间的转换函数。详见表4。 表4 地理坐标系转换函数与距离单位转换函数表 函数 返回值 说明 WGS84_TO_BD09(geometry) 对应的百度地图坐标系地理空间几何元素 将GPS坐标系下的地理空间几何元素转换成百度地图坐标系下对应的地理空间几何元素。示例如下: WGS84_TO_BD09(ST_CIRCLE(ST_POINT(x, y), r)) WGS84_TO_CJ02(geometry) 对应的Google地图坐标系地理空间几何元素 将GPS坐标系下的地理空间几何元素转换成Google地图坐标系下对应的地理空间几何元素。示例如下: WGS84_TO_CJ02(ST_CIRCLE(ST_POINT(x, y), r)) BD09_TO_WGS84(geometry) 对应的GPS坐标系地理空间几何元素 将百度地图坐标系下的地理空间几何元素转换成GPS坐标系下对应的地理空间几何元素。示例如下: BD09_TO_WGS84(ST_CIRCLE(ST_POINT(x, y), r)) BD09_TO_CJ02(geometry) 对应的Google地图坐标系地理空间几何元素 将百度地图坐标系下的地理空间几何元素转换成Google地图坐标系下对应的地理空间几何元素。示例如下: BD09_TO_CJ02(ST_CIRCLE(ST_POINT(x, y), r)) CJ02_TO_WGS84(geometry) 对应的GPS坐标系地理空间几何元素 将Google地图坐标系下的地理空间几何元素转换成GPS坐标系下对应的地理空间几何元素。示例如下: CJ02_TO_WGS84(ST_CIRCLE(ST_POINT(x, y), r)) CJ02_TO_BD09(geometry) 对应的百度地图坐标系地理空间几何元素 将Google地图坐标系下的地理空间几何元素转换成百度地图坐标系下对应的地理空间几何元素。示例如下: CJ02_TO_BD09(ST_CIRCLE(ST_POINT(x, y), r)) DEGREE_TO_METER(distance) DOUBLE 将地理函数的距离数值转换成以“米”为单位的数值。示例如下(以米为单位计算地理三边形周长): DEGREE_TO_METER(ST_PERIMETER(ST_POLYGON(ARRAY[ST_POINT(x1,y1), ST_POINT(x2,y2), ST_POINT(x3,y3), ST_POINT(x1,y1)]))) METER_TO_DEGREE(numerical_value) DOUBLE 将以“米”为单位的数值转换成地理函数可计算的距离单位数值。示例如下(画出以指定地理点为圆心,半径1公里的圆): ST_CIRCLE(ST_POINT(x,y), METER_TO_DEGREE(1000)) DLI还提供了基于窗口的SQL地理聚合函数用于SQL逻辑涉及窗口和聚合的场景。详见表5的介绍说明。 表5 时间相关SQL地理聚合函数表 函数 说明 举例 AGG_DISTANCE(point) 距离聚合函数,用于计算窗口内所有相邻地理点的距离总和。 SELECT AGG_DISTANCE(ST_POINT(x,y)) FROM input GROUP BY HOP(rowtime, INTERVAL '1' HOUR, INTERVAL '1' DAY) AVG_SPEED(point) 平均速度聚合函数,用于计算窗口内所有地理点组成的移动轨迹的平均速度,单位为“米/秒”。 SELECT AVG_SPEED(ST_POINT(x,y)) FROM input GROUP BY TUMBLE(proctime, INTERVAL '1' DAY)
  • 原生数据类型 Flink SQL支持原生数据类型,请参见表1。 表1 原生数据类型 数据类型 描述 存储空间 范围 VARCHAR 可变长度的字符 - - BOOLEAN 布尔类型 - TRUE/FALSE TINYINT 有符号整数 1字节 -128-127 SMALLINT 有符号整数 2字节 -32768-32767 INT 有符号整数 4字节 -2147483648~2147483647 INTEGER 有符号整数 4字节 -2147483648~2147483647 BIGINT 有符号整数 8字节 -9223372036854775808~9223372036854775807 REAL 单精度浮点型 4字节 - FLOAT 单精度浮点型 4字节 - DOUBLE 双精度浮点型 8字节 - DECIMAL 固定有效位数和小数位数的数据类型 - - DATE 日期类型,描述了特定的年月日,以yyyy-MM-dd格式表示,例如2014-05-29 - DATE类型不包含时间,所表示日期的范围为0000-01-01 to 9999-12-31 TIME 时间类型,以HH:mm:ss表示。 例如20:17:40 - - TIMESTAMP(3) 完整日期,包括日期和时间。 例如:1969-07-20 20:17:40 - - INTERVAL timeUnit [TO timeUnit] 时间间隔 例如:INTERVAL '1:5' YEAR TO MONTH, INTERVAL '45' DAY - -
  • 示例 输入一条记录("student1", "student2, student3"),输出两条记录("student1", "student2") 和 ("student1", "student3") 。 create source stream s1(attr1 string, attr2 string) with (......); insert into s2 select attr1, b1 from s1 left join lateral table(split_cursor(attr2, ',')) as T(b1) on true;
  • 算术运算符 算术运算符包括双目运算符与单目运算符,这些运算符都将返回数字类型。Flink SQL所支持的算术运算符如表3所示。 表3 算术运算符 运算符 返回类型 描述 + numeric 所有数字类型 返回数字。 - numeric 所有数字类型 返回负数。 A + B 所有数字类型 A和B相加。结果数据类型与操作数据类型相关,例如一个整数类型数据加上一个浮点类型数据,结果数值为浮点类型数据。 A - B 所有数字类型 A和B相减。结果数据类型与操作数据类型相关。 A * B 所有数字类型 A和B相乘。结果数据类型与操作数据类型相关。 A / B 所有数字类型 A和B相除。结果是一个double(双精度)类型的数值。 POWER(A, B) 所有数字类型 返回A数的B次方乘幂。 ABS(numeric) 所有数字类型 返回数值的绝对值。 MOD(A, B) 所有数字类型 返回A除以B的余数(模数)。 返回值只有在A为负数时才为负数。 SQRT(A) 所有数字类型 返回A的平方根。 LN(A) 所有数字类型 返回A的自然对数(基数e)。 LOG 10(A) 所有数字类型 返回A的基数10对数。 EXP(A) 所有数字类型 返回e的a次方。 CEIL(A) CEILING(A) 所有数字类型 将参数向上舍入为最接近的整数。例如ceil(21.2),返回22。 FLOOR(A) 所有数字类型 对给定数据进行向下舍入最接近的整数。例如floor(21.2),返回21。 SIN(A) 所有数字类型 计算给定A的正弦值。 COS(A) 所有数字类型 计算给定A的余弦值。 TAN(A) 所有数字类型 计算给定A的正切值。 COT(A) 所有数字类型 计算给定A的余切值。 ASIN(A) 所有数字类型 计算给定A的反正弦值。 ACOS(A) 所有数字类型 计算给定A的反余弦值。 ATAN(A) 所有数字类型 计算给定A的反正切值。 DEGREES(A) 所有数字类型 返回弧度所对应的角度。 RADIANS(A) 所有数字类型 返回角度所对应的弧度。 SIGN(A) 所有数字类型 返回a所对应的正负号,a为正返回1,a为负,返回-1,否则返回0。 ROUND(A, d) 所有数字类型 返回小数部分d位之后数字的四舍五入,d为int型。例如round(21.263,2),返回21.26。 PI() 所有数字类型 返回pi的值。 字符串类型不能参与算术运算。
  • M M MAP MATCH MATCHED MATCHING_COLUMNS MATCHING_REGEX MAX MAXALLOWEDCPU MAXALLOWEDMEM MAXALLOWEDPARALLELISM MAX_DUMP_FILE_NUM MAX_RECORD_NUM_CACHE MAX_RECORD_NUM_PER_FILE MAXVALUE MEMBER MERGE MESSAGE_COLUMN MESSAGE_LENGTH MESSAGE_OCTET_LENGTH MESSAGE_SUBJECT MESSAGE_TEXT METHOD MICROSECOND MILLENNIUM MIN MINUTE MINVALUE MOD MODIFIES MODULE MONTH MORE MS MULTISET MUMPS
  • E EACH ELEMENT ELSE EMAIL_KEY ENABLECHECKPOINT ENABLE_CHECKPOINT ENABLE_OUTPUT_NULL ENCODE ENCODE_CLASS_NAME ENCODE_CLASS_PA RAM ETER ENCODED_DATA END ENDPOINT END_EXEC EPOCH EQUALS ESCAPE ES_FIELDS ES_INDEX ES_TYPE ESTIMATEMEM ESTIMATEPARALLELISM EXACTLY_ONCE EXCEPT EXCEPTION EXCLUDE EXCLUDING EXEC EXECUTE EXISTS EXP EXPLAIN EXTEND EXTERNAL EXTRACT EVERY
  • P PAD PARALLELISM PARAMETER PARAMETER_MODE PARAMETER_NAME PARAMETER_ORDINAL_POSITION PARAMETER_SPECIFIC_CATALOG PARAMETER_SPECIFIC_NAME PARAMETER_SPECIFIC_SCHEMA PARTIAL PARTITION PARTITION_COUNT PARTITION_KEY PARTITION_RANGE PASCAL PASSTHROUGH PASSWORD PATH PERCENTILE_CONT PERCENTILE_DISC PERCENT_RANK PERSIST_SCHEMA PIPELINE_ID PLACING PLAN PLI POSITION POWER PRECEDING PRECISION PREPARE PRESERVE PRIMARY PRIMARY_KEY PRIOR PRIVILEGES PROCEDURE PROCTIME PROJECT_ID PUBLIC
  • U UESCAPE UNBOUNDED UNCOMMITTED UNDER UNION UNIQUE UNKNOWN UNNAMED UNNEST UPDATE UPPER UPSERT URN_COLUMN USAGE USER USER_DEFINED_TYPE_CATALOG USER_DEFINED_TYPE_CODE USER_DEFINED_TYPE_NAME USER_DEFINED_TYPE_SCHEMA USERNAME USING
  • D DATE DATABASE DATE DATETIME_INTERVAL_CODE DATETIME_INTERVAL_PRECISION DAY DB_COLUMNS DB_URL DB_OBS_SERVER DB_TYPE DEALLOCATE DEC DECADE DECIMAL DECLARE DEFAULTS DEFERRABLE DEFERRED DEFINER DEGREE DELETE DELETE_OBS_TEMP_FILE DENSE_RANK DEPTH DEREF DERIVED DESC DESCRIBE DESCRIPTION DESCRIPTOR DETERMINISTIC DIAGNOS TICS DISALLOW DISCONNECT DIS_NOTICE_CHANNEL DISPATCH DISTINCT DOMAIN DOUBLE DOW DOY DRIVER DROP DUMP_INTERVAL DYNAMIC DYNAMIC_FUNCTION DYNAMIC_FUNCTION_CODE
  • I IDENTITY ILLEGAL_DATA_TABLE IMMEDIATE IMPLEMENTATION IMPORT IN INCLUDING INCREMENT INDICATOR INITIALLY INNER INOUT INPUT INSENSITIVE INSERT INSTANCE INSTANTIABLE INT INTEGER INTERSECT INTERSECTION INTERVAL INTO INVOKER IN_WITH_SCHEMA IS ISOLATION
  • T TABLE TABLESAMPLE TABLE_COLUMNS TABLE_NAME TABLE_NAME_MAP TEMP TEMPORARY THEN TIES TIME TIMESTAMP TIMESTAMPADD TIMESTAMPDIFF TIMEZONE_HOUR TIMEZONE_MINUTE TINYINT TO TOP_LEVEL_COUNT TOPIC TOPIC_URN TRAILING TRANSACTION TRANSACTIONAL_TABLE TRANSACTIONS_ACTIVE TRANSACTIONS_COMMITTED TRANSACTIONS_ROLLED_BACK TRANSFORM TRANSFO RMS TRANSLATE TRANSLATION TRANX_ID TREAT TRIGGER TRIGGER_CATALOG TRIGGER_NAME TRIGGER_SCHEMA TRIM TRUE TSDB_LINK_ADDRESS TSDB_METRICS TSDB_TIMESTAMPS TSDB_TAGS TSDB_VALUES TYPE TYPE_CLASS_NAME TYPE_CLASS_PARAMETER
  • R RANGE RANK RAW READ READS READ_ONCE REAL RECURSIVE REF REFEREN CES REFERENCING REGION REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE REGR_SXX REGR_SXY REGR_SYY RELATIVE RELEASE REPEATABLE RESET RESTART RESTRICT RESULT RETURN RETURNED_CARDINALITY RETURNED_LENGTH RETURNED_OCTET_LENGTH RETURNED_SQLSTATE RETURNS REVOKE RIGHT ROLE ROLLBACK ROLLING_INTERVAL ROLLING_SIZE ROLLUP ROUTINE ROUTINE_CATALOG ROUTINE_NAME ROUTINE_SCHEMA ROW ROW_COUNT ROW_DELIMITER ROW_NUMBER ROWS ROWTIME
  • S SAVEPOINT SCALE SCHEMA SCHEMA_CASE_SENSITIVE SCHEMA_NAME SCOPE SCOPE_CATALOGS SCOPE_NAME SCOPE_SCHEMA SCROLL SEARCH SECOND SECTION SECURITY SELECT SELF SENSITIVE SEQUENCE SERIALIZABLE SERVER SERVER_NAME SESSION SESSION_USER SET SETS SIMILAR SIMPLE SINK SIZE SK SMALLINT SOME SOURCE SPACE SPECIFIC SPECIFICTYPE SPECIFIC_NAME SQL SQLEXCEPTION SQLSTATE SQLWARNING SQL_TSI_DAY SQL_TSI_FRAC_SECOND SQL_TSI_HOUR SQL_TSI_MICROSECOND SQL_TSI_MINUTE SQL_TSI_MONTH SQL_TSI_QUARTER SQL_TSI_SECOND SQL_TSI_WEEK SQL_TSI_YEAR SQRT START START_TIME STATE STATEMENT STATIC STDDEV_POP STDDEV_SAMP STREAM STRING STRUCTURE STYLE SUBCLASS_ORIGIN SUBMULTISET SUBSTITUTE SUBSTRING SUM SYMMETRIC SYSTEM SYSTEM_USER
  • A A ABS ABSOLUTE ACTION ADA ADD ADMIN AFTER AK ALL ALLOCATE ALLOW ALTER ALWAYS AND ANY APPEND APP_ID ARE ARRAY ARRAY_BRACKET AS ASC ASENSITIVE ASSERTION ASSIGNMENT ASYMMETRIC AT AT_LEAST_ONCE ATOMIC ATTRIBUTE ATTRIBUTES AUTHORIZATION AVG AVRO_CONFIG AVRO_DATA AVRO_SCHEMA
  • C C CACHE_MAX_NUM CACHE_TIME CALL CALLED CARDINALITY CASCADE CASCADED CASE CAST CATALOG CATALOG_NAME CEIL CEILING CENTURY CHAIN CHANNEL CHAR CHARACTER CHARACTERISTI CTS CHARACTERS CHARACTER_LENGTH CHARACTER_SET_CATALOG CHARACTER_SET_NAME CHARACTER_SET_SCHEMA CHAR_LENGTH CHECK CHECKPOINT_APP_NAME CHECKPOINT_INTERVAL CHECKPOINTINTERVAL CLASS_ORIGIN CLOB CLOSE CLUSTER_ADDRESS CLUSTER_ID CLUSTER_NAME COALESCE COBOL COLLATE COLLATION COLLATION_CATALOG COLLATION_NAME COLLATION_SCHEMA COLLECT COLUMN COLUMN_NAME COLUMN_NAME_MAP COMMAND_FUNCTION COMMAND_FUNCTION_CODE COMMIT COMMITTED CONDITION CONDITION_NUMBER CONFIGURATION CONFLUENT_CERTIFICATE_NAME CONFLUENT_PROPERTIES CONFLUENT_SCHEMA_FIELD CONFLUENT_URL CONNECT CONNECTION_NAME CONSTRAINT CONSTRAINTS CONSTRAINT_CATALOG CONSTRAINT_NAME CONSTRAINT_SCHEMA CONSTRUCTOR CONTAINS CONTINUE CONVERT CORR CORRESPONDING COUNT COVAR_POP COVAR_SAMP CREATE CREATE_IF_NOT_EXIST CROSS CUBE CUME_DIST CURRENT CURRENT_CATALOG CURRENT_DATE CURRENT_DEFAULT_TRANSFORM_GROUP CURRENT_PATH CURRENT_ROLE CURRENT_SCHEMA CURRENT_TIMESTAMP CURRENT_TRANSFORM_GROUP_FOR_TYPE CURRENT_USER CURSOR CURSOR_NAME CYCLE
共100000条