华为云用户手册

  • 响应消息 表2 响应参数 参数 是否必选 参数类型 说明 is_success 是 Boolean 执行请求是否成功。“true”表示请求执行成功。 message 是 String 系统提示信息,执行成功时,信息可能为空。 table_count 是 Integer 表的总个数。 tables 是 Array of objects 表的信息。具体参数请参见表3。 表3 tables参数 参数 是否必选 参数类型 说明 create_time 是 Long 表创建时间。是单位为“毫秒”的时间戳。 data_type 否 String 所列OBS表数据的类型,目前支持:parquet、ORC、 CS V、JSON格式。只有OBS表有该参数, DLI 表没有该参数。 data_location 是 String 数据存储的地方,分OBS表、DLI表,View。 last_access_time 是 Long 最近更新时间。是单位为“毫秒”的时间戳。 location 否 String OBS表上的存储路径。 owner 是 String 表创建者。 table_name 是 String 表名称。 table_size 是 Long DLI表的大小。非DLI表该参数值为0。 table_type 是 String 表类型。 OBS表为EXTERNAL DLI表为MANAGED View为VIEW partition_columns 否 Array of Strings 分区字段。只有OBS分区表有该参数,其他表没有该参数。 若URI中的过滤条件“with-detail=false”,则只返回“data_location”,“table_name”,“table_type”三个参数。
  • URI URI格式: GET /v1.0/{project_id}/databases/{database_name}?keyword=tb&with-detail=true 参数说明 表1 URI 参数 名称 是否必选 说明 project_id 是 项目编号,用于资源隔离。获取方式请参考获取项目ID。 database_name 是 查看表所在的数据库名称。 keyword 否 过滤表名称的关键词。 with-detail 否 是否获取表的详细信息(所有者,size等)。
  • 示例 请求样例: None 成功响应样例: { "is_success": true, "message": "", "table_count": 1, "tables": [ { "create_time":1517364268000, "data_location":"OBS", "data_type":"csv", "last_access_time":1517364268000, "location":"obs://DLI/sqldata/data.txt", "owner":"test", "partition_columns": ["a0"], "table_name":"obs_t", "table_size":0, "table_type":"EXTERNAL" } ]} 调用API出错后,将不会返回上述结果,而是返回错误码和错误信息,详细介绍请参见错误码。
  • 功能介绍 该API用于将数据从文件导入DLI或OBS表,目前仅支持将OBS上的数据导入DLI或OBS中。 当前接口已废弃,不推荐使用。 该API为异步操作。 导入数据时,可选择已存在的OBS桶路径或新建OBS桶路径,但只能指定一个OBS桶路径。 若需新建OBS桶,需遵守以下命名规则: 需全局唯一,不能与已有的任何桶名称重复。 长度范围为3到63个字符,支持小写字母、数字、中划线(-)、英文句号(.)。 禁止两个英文句号(.)或英文句号(.)和中划线(-)相邻,禁止以英文句号(.)和中划线(-)开头或结尾。 禁止使用IP地址。 如果名称中包含英文句号(.),访问桶或对象时可能会进行安全证书校验。 导入源文件时,如果源文件中的某一列与目标表列类型不匹配,将会导致该行数据的查询结果为null 。 不支持并发导入同一张表。
  • 响应消息 表4 响应参数 参数名称 是否必选 参数类型 说明 is_success 否 Boolean 请求发送是否成功。“true”表示请求发送成功。 message 否 String 系统提示信息,执行成功时,信息可能为空。 job_id 否 String 此SQL将生成并提交一个新的作业,返回作业ID。用户可以使用作业ID来查询作业状态和获取作业结果。 job_mode 否 String 作业执行模式: async:异步 sync:同步
  • 请求消息 表2 请求参数 参数名称 是否必选 参数类型 说明 data_path 是 String 导入的数据路径(当前仅支持导入OBS上的数据)。 data_type 是 String 导入的数据类型(当前支持csv、parquet、orc、json、avro数据类型)。 说明: 不支持导入Hive表生成的avro格式数据。 database_name 是 String 导入表所属的数据库名称。 table_name 是 String 导入表的名称。 with_column_header 否 Boolean 导入数据中的第一行数据是否包括列名,即表头。默认为“false”,表示不包括列名。导入CSV类型数据时可指定。 delimiter 否 String 用户自定义数据分隔符,默认为逗号。导入CSV类型数据时可指定。 quote_char 否 String 用户自定义引用字符,默认为双引号。导入CSV类型数据时可指定。 escape_char 否 String 用户自定义转义字符,默认为反斜杠。导入CSV类型数据时可指定。 date_format 否 String 指定特定的日期格式,默认为“yyyy-MM-dd”。日期格式字符定义详见表3。导入CSV及JSON类型数据时可指定。 bad_records_path 否 String 作业执行过程中的bad records存储目录。设置该配置项后,bad records不会导入到目标表。 timestamp_format 否 String 指定特定的时间格式,默认为“yyyy-MM-dd HH:mm:ss”。时间格式字符定义详见表3。导入CSV及JSON类型数据时可指定。 queue_name 否 String 指定执行该任务的队列。若不指定队列,将采用default队列执行操作。 overwrite 否 Boolean 是否覆盖写。默认为“false”,表示追加写。为“true”,表示覆盖写。 partition_spec 否 Object 表示需要导入到哪个分区。 不配置表示动态导入整表数据,导入的数据需要包含分区列的数据; 如果导入时,配置所有分区信息,则表示导入数据到指定分区,导入的数据不能包含分区列的数据; 如果导入时,配置了部分分区信息,而导入的数据必须包含非指定的分区数据,不能包含指定的分区数据,否则数据导入后,非指定的数据分区字段列会存在null值等异常值。 conf 否 Array of Strings 用户定义适用于此作业的配置参数。目前支持的配置项:“dli.sql.dynamicPartitionOverwrite.enabled”默认值为“false”,对于DataSource表,表示动态插入覆盖整表数据,为“true”表示覆盖指定分区数据。 说明: 对于Hive分区表的动态覆盖写,仅支持覆盖涉及到的分区数据,不支持覆盖整表数据。 表3 日期及时间模式字符定义 模式字符 日期或时间元素 示例 G 纪元标识符 AD y 年份 1996; 96 M 月份 July; Jul; 07 w 年中的周数 27(该年的第27周) W 月中的周数 2(该月的第2周) D 年中的天数 189(该年的第189天) d 月中的天数 10(该月的第10天) u 星期中的天数 1 = 星期一, ..., 7 = 星期日 a am/pm 标记 pm(下午时) H 24小时数(0-23) 2 h 12小时数(1-12) 12 m 分钟数 30 s 秒数 55 S 毫秒数 978 z 时区 Pacific Standard Time; PST; GMT-08:00
  • 请求示例 将存储在OBS的csv类型的数据导入db2.t2。 { "data_path": "obs://home/data1/DLI/t1.csv", "data_type": "csv", "database_name": "db2", "table_name": "t2", "with_column_header": false, "delimiter": ",", "quote_char": ",", "escape_char": ",", "date_format": "yyyy-MM-dd", "timestamp_format": "yyyy-MM-dd'T'HH:mm:ss.SSSZZ", "queue_name": "queue2", "overwrite": false, "partition_spec":{ "column1": "2020-01-01", "column2": "columnPartValue" }}
  • URI URI格式: POST /v1/{project_id}/queues/{queue_name}/plans/batch-delete 参数说明 表1 URI参数 参数名称 是否必选 参数类型 说明 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 queue_name 是 String 待删除定时扩缩计划的队列名称。名称长度为1~128个字符,多个队列名称使用逗号“,”分隔。
  • 请求消息 请求样例 表2 请求参数说明 参数名称 是否必选 参数类型 说明 jobs 是 Array of Objects 作业信息列表。具体请参考表3。 msg_confirm_topic 否 String 消息确认topic。 message_id 是 String 消息id。 表3 jobs参数说明 参数名称 是否必选 参数类型 说明 job_id 否 Integer 作业ID。 status 是 String 作业状态。 create_time 是 Long 时间戳。 exceptions 否 String 作业异常信息。 metrics 否 String 作业指标信息。 plan 否 String 作业执行计划。
  • 请求示例 上报ID为99270的边缘Flink作业状态。 { "jobs": [ { "create_time": 1591104868201, "job_id": 99270, "exceptions": { "error_id": "Agent.51000", "error_type": "JOB_SUBMIT_EXCEPTION", "error_cause": "agent_submit_job_exception_error", "exception": "", "error_time": "2020-06-02 13:34:28" }, "status": "job_submit_fail" } ], "msg_confirm_topic": "hw/events/messages/dli/message/confirm", "message_id": "uuid"}
  • 请求示例 生成Flink SQL作业的静态流图,流图的类型为静态流图。 { "job_type": "flink_opensource_sql_job", "graph_type": "job_graph", "sql_body": "create table orders(\r\n name string,\r\n num int\r\n) with (\r\n 'connector' = 'datagen',\r\n 'rows-per-second' = '1', --每秒生成一条数据\r\n 'fields.name.kind' = 'random', --为字段user_id指定random生成器\r\n 'fields.name.length' = '5' --限制user_id长度为3\r\n);\r\n \r\nCREATE TABLE sink_table (\r\n name string,\r\n num int\r\n) WITH (\r\n 'connector' = 'print'\r\n);\r\nINSERT into sink_table SELECT * FROM orders;", "cu_number": 2, "manager_cu_number": 1, "parallel_number": 2, "tm_cus": 1, "tm_slot_num": 0, "operator_config": "", "static_estimator": true, "flink_version": "1.12", "static_estimator_config": "{\"operator_list\":[{\"id\":\"0a448493b4782967b150582570326227\",\"output_rate\":1000},{\"id\":\"bc764cd8ddf7a0cff126f51c16239658\",\"output_rate\":1000}]}"}
  • 响应示例 { "message": "", "is_success": true, "error_code": "", "stream_graph": "{\n \"jid\" : \"44334c4259f6714bddef1ac525364052\",\n \"name\" : \"InternalJob_1715392878428\",\n \"nodes\" : [ {\n \"id\" : \"0a448493b4782967b150582570326227\",\n \"parallelism\" : 1,\n \"operator\" : \"\",\n \"operator_strategy\" : \"\",\n \"description\" : \"Sink: Sink(table=[default_catalog.default_database.sink_table], fields=[name, num])\",\n \"chain_operators_id\" : [ \"0a448493b4782967b150582570326227\" ],\n \"inputs\" : [ {\n \"num\" : 0,\n \"id\" : \"bc764cd8ddf7a0cff126f51c16239658\",\n \"ship_strategy\" : \"FORWARD\",\n \"exchange\" : \"pipelined_bounded\"\n } ],\n \"optimizer_properties\" : {}\n }, {\n \"id\" : \"bc764cd8ddf7a0cff126f51c16239658\",\n \"parallelism\" : 2,\n \"operator\" : \"\",\n \"operator_strategy\" : \"\",\n \"description\" : \"Source: TableSourceScan(table=[[default_catalog, default_database, orders]], fields=[name, num])\",\n \"chain_operators_id\" : [ \"bc764cd8ddf7a0cff126f51c16239658\" ],\n \"optimizer_properties\" : {}\n } ],\n \"operator_list\" : [ {\n \"id\" : \"0a448493b4782967b150582570326227\",\n \"name\" : \"Sink: Sink(table=[default_catalog.default_database.sink_table], fields=[name, num])\",\n \"type\" : \"Sink\",\n \"contents\" : \"Sink(table=[default_catalog.default_database.sink_table], fields=[name, num])\",\n \"parallelism\" : 1,\n \"tags\" : \"[SINK]\",\n \"input_operators_id\" : [ \"bc764cd8ddf7a0cff126f51c16239658\" ]\n }, {\n \"id\" : \"bc764cd8ddf7a0cff126f51c16239658\",\n \"name\" : \"Source: TableSourceScan(table=[[default_catalog, default_database, orders]], fields=[name, num])\",\n \"type\" : \"Source\",\n \"contents\" : \"TableSourceScan(table=[[default_catalog, default_database, orders]], fields=[name, num])\",\n \"parallelism\" : 2,\n \"tags\" : \"[PRO CES S, UDF]\",\n \"input_operators_id\" : [ ]\n } ]\n}"} 为了便于查看返回体信息,我们将stream_graph格式化后如下所示: "jid": "65b6a7b0c1ad95b1722a92b49d2f6eba", "name": "InternalJob_1715392245413", "nodes": [ { "id": "0a448493b4782967b150582570326227", "parallelism": 1, "operator": "", "operator_strategy": "", "description": "Sink: Sink(table=[default_catalog.default_database.sink_table], fields=[name, num])", "chain_operators_id": [ "0a448493b4782967b150582570326227" ], "inputs": [ { "num": 0, "id": "bc764cd8ddf7a0cff126f51c16239658", "ship_strategy": "FORWARD", "exchange": "pipelined_bounded" } ], "optimizer_properties": { } }, { "id": "bc764cd8ddf7a0cff126f51c16239658", "parallelism": 2, "operator": "", "operator_strategy": "", "description": "Source: TableSourceScan(table=[[default_catalog, default_database, orders]], fields=[name, num])", "chain_operators_id": [ "bc764cd8ddf7a0cff126f51c16239658" ], "optimizer_properties": { } } ], "operator_list": [ { "id": "0a448493b4782967b150582570326227", "name": "Sink: Sink(table=[default_catalog.default_database.sink_table], fields=[name, num])", "type": "Sink", "contents": "Sink(table=[default_catalog.default_database.sink_table], fields=[name, num])", "parallelism": 1, "tags": "[SINK]", "input_operators_id": [ "bc764cd8ddf7a0cff126f51c16239658" ] }, { "id": "bc764cd8ddf7a0cff126f51c16239658", "name": "Source: TableSourceScan(table=[[default_catalog, default_database, orders]], fields=[name, num])", "type": "Source", "contents": "TableSourceScan(table=[[default_catalog, default_database, orders]], fields=[name, num])", "parallelism": 2, "tags": "[PROCESS, UDF]", "input_operators_id": [ ] } ]}
  • 请求消息 表2 请求参数说明 参数名称 是否必选 参数类型 说明 sql_body 是 String SQL。 cu_number 否 Integer 是在作业编辑页面配置的作业占用资源总CU数,需配置与实际占用资源一致,作业实际占用资源根据算子并行数按需申请。 cu_number = 管理单元 + (算子总并行数 / 单TM Slot数) * 单TM所占CU数 manager_cu_number 否 Integer 管理单元CU数。 parallel_number 否 Integer 最大并行度。 并行数为作业每个算子的并行数,适度增加并行数会提高作业整体算力,但也须考虑线程增多带来的切换开销,上限是计算单元CU数的4倍,最佳实践为计算单元CU数的1-2倍。 tm_cus 否 Integer 单个taskManagerCU数量。 tm_slot_num 否 Integer 单个taskManager Slot数量。 operator_config 否 String 算子的配置。 可先行调用该接口获取算子ID,即响应消息中stream_graph包含的operator_list中的id即为算子ID。 static_estimator 否 Boolean 是否静态资源预估。 配置为true时,即根据算子ID和流量预估作业消耗资源。 static_estimator_config 否 String 每个算子的流量/命中率配置,json格式的字符串。 当static_estimator为true时需要配置该参数,配置时传入算子ID和算子流量配置。 可先行调用该接口获取算子ID,即响应消息中stream_graph包含的operator_list中的id即为算子ID。 算子流量根据用户业务实际情况预估。 job_type 否 String 作业类型。 只支持flink_opensource_sql_job类型作业。 graph_type 否 String 流图类型。当前支持以下两种流图类型。 简化流图:simple_graph 静态流图:job_graph flink_version 否 String Flink版本。当前只支持1.10和1.12。
  • URI URI格式: DELETE /v2.0/{project_id}/datasource/enhanced-connections/{connection_id}/routes/{name} 参数说明 表1 URI参数说明 参数 是否必选 参数类型 描述 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 connection_id 是 String 跨源id。 name 是 String 路由名称。
  • 响应消息 表3 响应参数 参数名称 是否必选 参数类型 说明 is_success 否 Boolean 执行请求是否成功。“true”表示请求执行成功。 message 否 String 系统提示信息,执行成功时,信息可能为空。 database_count 否 Integer 数据库的总数。 databases 否 Array of objects 数据库信息。具体参数请参见表4。 表4 databases参数 参数名称 是否必选 参数类型 说明 database_name 否 String 数据库名称。 owner 否 String 数据库的创建者。 table_number 否 Integer 数据库中表的个数。 description 否 String 数据库相关的描述信息。 enterprise_project_id 是 String 企业项目ID,“0”表示default,即默认的企业项目。关于如何设置企业项目请参考《企业管理用户指南》。 说明: 开通了企业管理服务的用户可设置该参数绑定指定的项目。 resource_id 是 String 资源ID。
  • 响应示例 { "is_success": true, "message": "", "database_count": 1, "databases": [ { "database_name": "db2", "description": "this is for test", "owner": "tenant1", "table_number": 15 } ]}
  • URI URI格式: GET /v1.0/{project_id}/databases 参数说明 表1 URI参数 参数名称 是否必选 参数类型 说明 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 表2 query参数 参数名称 是否必选 参数类型 说明 with-priv 否 Boolean 是否显示权限信息,取值为“true”或者“false”,默认为“false”。 offset 否 Integer 偏移量,取值需要大于等于0,默认值为0。 limit 否 Integer 返回的数据条数,取值需要大于等于0,默认返回所有数据。 keyword 否 String 数据库名过滤关键字,模糊匹配,获取数据库名含有该关键字的所有数据库。 tags 否 String 数据库标签。格式为“key=value”,例如: 单标签场景: GET /v1.0/{project_id}/databases?offset=0&limit=10&with-priv=true&tags=k1%3Dv1 其中,“=”需要转义为“%3D”,“k1”为标签键,“v1”为标签值。 多标签场景: 如果涉及到多个标签的场景,则多个标签之间需要通过“,”号分隔,“,”号需要转义为“%2C”,例如: GET /v1.0/{project_id}/databases?offset=0&limit=10&with-priv=true&tags=k1%3Dv1%2Ck2%3Dv2 其中,“=”需要转义为“%3D”,“k1”为标签键1,“v1”为标签值1,“k2”为标签键2,“v2”为标签值2。 注意:当前只支持所有tags值整体的模糊查询,不支持精确查询。 带入query参数的URL示例如下: GET /v1.0/{project_id}/databases?with-priv={is_with_priv}&offset={offsetValue}&limit={limitValue}&keyword={keywordValue}?tags={tagsValue}
  • 响应示例 { "is_success": true, "message": "", "job_id": "85798b38-ae44-48eb-bb90-7cf0dcdafe7b", "status": "RUNNING", "sub_job_id": 0, "progress": 0, "sub_jobs": [ { "id": 0, "name": "runJob at FileFormatWriter.scala:266", "submission_time": "Mon Jul 27 17:24:03 CST 2020", "stage_ids": [ 0 ], "job_group": "85798b38-ae44-48eb-bb90-7cf0dcdafe7b", "status": "RUNNING", "num_tasks": 1, "num_active_tasks": 1, "num_completed_tasks": 0, "num_skipped_tasks": 0, "num_failed_tasks": 0, "num_killed_tasks": 0, "num_completed_indices": 0, "num_active_stages": 1, "num_completed_stages": 0, "num_skipped_stages": 0, "num_failed_stages": 0 } ]}
  • 调用说明 数据湖探索 提供了REST(Representational State Transfer)风格API,支持您通过HTTPS请求调用,调用方法请参见构造请求。 DLI API中除特殊说明外,通常为同步操作,即响应消息中的“is_success”为请求是否执行成功。 若API为异步操作,可根据响应消息中的“job_id”,执行查询作业状态API,从而获取该异步操作API最终是否执行成功。 同时 数据湖 探索还提供多种编程语言的SDK供您使用,SDK的使用方法请参见华为云开发工具包(SDK)。 父主题: API使用前必读
  • 请求示例 为队列创建名为plan_A的扩缩容计划,要求队列在星期一、星期二、星期三、星期日的20:30分开始扩缩容,目标CU为64CUs。 { "plan_name": "plan_A", "target_cu": 64, "start_hour": 20, "start_minute": 30, "repeat_day": [ "MONDAY", "TUESDAY", "WEDNESDAY", "SUNDAY" ], "valid_date_begin": 1590949800000, "valid_date_end": 1591727400000, "activate": true}
  • 请求消息 表2 请求参数 参数名称 是否必选 参数类型 说明 plan_name 是 String 队列扩缩容计划名称,名称只能包含数字、英文字母和下划线,但不能是纯数字,且不能以下划线开头。 target_cu 是 Integer 队列扩缩容计划CU的目标值。 start_hour 是 Integer 队列扩缩容计划起始小时时间。 start_minute 是 Integer 队列扩缩容计划的起始分钟时间。 repeat_day 是 Array of strings 定时扩缩容计划的重复周期,可以选择周一到周日的某一天、某几天、或者不选择。如果不选择,则会在当前时间后的start_hour:start_minute时间点执行扩缩容计划。例如: "repeat_day": ["MONDAY", "TUESDAY", "WEDNESDAY","SUNDAY"] valid_date_begin 否 Long 有效期开始时间(13位时间戳)。 valid_date_end 否 Long 有效期结束时间(13位时间戳)。 activate 否 Boolean 当前设置的扩缩容计划是否激活,默认为“true”,表示激活。
  • URI URI格式: POST /v1/{project_id}/queues/{queue_name}/plans 参数说明 表1 URI参数 参数名称 是否必选 参数类型 说明 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 queue_name 是 String 需要设置定时扩缩计划的队列名称,名称只能包含数字、英文字母和下划线,但不能是纯数字,且不能以下划线开头。名称长度为1~128个字符。
  • 响应示例 { "is_success": true, "message": "", "count": 1, "queues": [ { "queue_name": "lhm_sql", "enterprise_project_id": "0", "queue_type": "sql", "queue_scaling_policies": [ { "priority": 50, "impact_start_time": "00:00", "impact_stop_time": "24:00", "min_cu": 16, "max_cu": 16 }, { "priority": 100, "impact_start_time": "00:00", "impact_stop_time": "12:00", "min_cu": 32, "max_cu": 64 }, { "priority": 50, "impact_start_time": "12:00", "impact_stop_time": "24:00", "min_cu": 16, "max_cu": 32 } ] } ]}
  • 响应消息 表3 响应参数说明 参数 是否必填 参数类型 描述 is_success 否 Boolean 执行请求是否成功。“true”表示请求执行成功。 message 否 String 系统提示信息,执行成功时,信息可能为空。 queues 否 Array of objects 该弹性资源池下所有queue的资源权重信息。详细参数说明请参考表4。 count 否 Long 该资源池下关联的队列数量。 表4 queues 参数 是否必填 参数类型 描述 queue_name 否 String 队列名称。 enterprise_project_id 否 String 企业项目ID。 queue_type 否 String 队列类型。 queue_scaling_policies 否 Array of objects 队列扩缩容策略。详细参数说明请参考priority_infos。 owner 否 String 队列所有者。 create_time 否 Long 队列创建时间。 engine 否 String 队列引擎类型。 表5 queue_scaling_policies 参数 是否必填 参数类型 描述 priority 否 Integer 策略优先级1-100,100优先级最高。 impact_start_time 否 String 生效开始时间。 impact_stop_time 否 String 生效结束时间。 min_cu 否 Integer 最小CU数量。 max_cu 否 Integer 最大CU数量。
  • URI URI格式 GET /v3/{project_id}/elastic-resource-pools/{elastic_resource_pool_name}/queues 参数说明 表1 路径参数 参数 是否必选 参数类型 描述 elastic_resource_pool_name 是 String 弹性资源池名称。 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 每页的数量。默认为100。 offset 否 Integer 偏移量。默认为0。 queue_name 否 String 可以根据queueName进行过滤。
  • 示例代码 计算所有仓库的商品(items)总和。命令示例如下: select sum(items) from warehouse; 返回结果如下: _c0 55357 与group by配合使用,对所有商品按照仓库(warehouseId)进行分组,计算各仓库商品的总数(items)总和。命令示例如下: select warehouseId, sum(items) from warehouse group by warehouseId; 返回结果如下: warehouseId| _c1 city1 15500 city2 10175 city3 19400
  • 参数说明 表1 参数说明 参数 是否必选 参数类型 说明 a 是 DOUBLE、BIGINT、DECIMAL、STRING类型。 参数a的格式包括浮点数格式、整数格式、字符串格式。 当参数a非BIGINT类型时,会隐式转换为BIGINT类型后参与运算。 b 是 DOUBLE、BIGINT、DECIMAL、STRING类型。 参数b的格式包括浮点数格式、整数格式、字符串格式。 当参数b非BIGINT类型时,会隐式转换为BIGINT类型后参与运算。
  • 示例代码 将 basketball 按照 bas(.*?)(ball) 拆分。返回ket。 select regexp_extract('basketball', 'bas(.*?)(ball)'); 返回 basketball 。 select regexp_extract('basketball', 'bas(.*?)(ball)',0); 返回99。在DLI上提交正则计算的SQL,需要使用两个"\"作为转义字符。 select regexp_extract('8d99d8', '8d(\\d+)d8'); 返回【你好】。 select regexp_extract('【你好】hello', '([^\\x{00}-\\x{ff}]+)'); 返回你好。 select regexp_extract('【你好】hello', '([\\x{4e00}-\\x{9fa5}]+)');
  • 说明 语法 描述 join_condition join逻辑判断条件。 and 逻辑运算符:与。 or 逻辑运算符:或。 not 逻辑运算符:非。 ( 子逻辑判断条件开始。 ) 子逻辑判断条件结束。 condition 逻辑判断条件。 const_set 常量集合,元素间逗号分隔。 in 关键字,用于判断属性是否在一个集合中。 atrrs_value_set_expr 属性值集合。 attr_expr 属性表达式。 Equality and inequality 等式与不等式,详情请参见关系运算符。 pattern_string 模式匹配字符串,支持通配符匹配。WHERE LIKE条件过滤时,支持SQL通配符中“%”与“_”,“%”代表一个或多个字符,“_”仅代表一个字符。
  • 示例代码 示例数据 为便于理解函数的使用方法,本文为您提供源数据,基于源数据提供函数相关示例。创建表salary,并添加数据,命令示例如下: CREATE EXTERNAL TABLE salary (dept STRING, -- 部⻔名称userid string, -- 员⼯IDsal INT -- 薪⽔) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' stored as textfile; 添加数据如下: d1,user1,1000d1,user2,2000d1,user3,3000d2,user4,4000d2,user5,5000 示例:计算员工薪水在部门内的百分比排名。 select dept, userid, sal, percent_rank() over(partition by dept order by sal) as pr2from salary;-- 结果分析:d1 user1 1000 0.0 -- (1-1)/(3-1)=0.0d1 user2 2000 0.5 -- (2-1)/(3-1)=0.5d1 user3 3000 1.0 -- (3-1)/(3-1)=1.0d2 user4 4000 0.0 -- (1-1)/(2-1)=0.0d2 user5 5000 1.0 -- (2-1)/(2-1)=1.0
共100000条