华为云用户手册

  • Flink作业模板相关 表7 Flink作业模板相关API&SDK的对应关系表 Class Java Method Python Method API Template createFlinkJobTemplate - POST /v1.0/{project_id}/streaming/job-templates updateFlinkJobTemplate - PUT /v1.0/{project_id}/streaming/job-templates/{template_id} deleteFlinkJobTemplate - DELETE /v1.0/{project_id}/streaming/job-templates/{template_id} getFlinkJobTemplates - GET /v1.0/{project_id}/streaming/job-templates
  • Flink作业相关 表5 Flink作业相关API&SDK的对应关系表 Class Method Java Method Python Method API Job 创建Flink SQL作业 submitFlinkSqlJob - POST /v1.0/{project_id}/streaming/sql-jobs 创建Flink自定义作业 createFlinkJarJob - POST /v1.0/{project_id}/streaming/flink-jobs 更新Flink SQL作业 updateFlinkSqlJob - PUT /v1.0/{project_id}/streaming/sql-jobs/{job_id} 更新Flink自定义作业 updateFlinkJarJob - PUT /v1.0/{project_id}/streaming/flink-jobs/{job_id} 查询Flink作业列表 getFlinkJobs - GET /v1.0/{project_id}/streaming/jobs 查询Flink作业详情 getFlinkJobDetail - GET /v1.0/{project_id}/streaming/jobs/{job_id} 查询Flink作业执行计划图 getFlinkJobExecuteGraph - GET /v1.0/{project_id}/streaming/jobs/{job_id}/execute-graph 查询Flink作业监控信息 getFlinkJobsMetrics - POST /v1.0/{project_id}/streaming/jobs/metrics 查询Flink作业APIG网关服务访问地址 getFlinkApigSinks - GET /v1.0/{project_id}/streaming/jobs/{job_id}/apig-sinks 运行Flink作业 runFlinkJob - POST /v1.0/{project_id}/streaming/jobs/run 停止Flink作业 stopFlinkJob - POST /v1.0/{project_id}/streaming/jobs/stop 批量删除Flink作业 deleteFlinkJobInBatch - POST /v1.0/{project_id}/streaming/jobs/delete
  • SQL作业相关 表4 SQL作业相关API&SDK的对应关系表 Class Method Java Method Python Method API Database 创建数据库 createDatabase create_database POST /v1.0/{project_id}/databases 删除数据库 deleteDatabase delete_database DELETE /v1.0/{project_id}/databases/{database_name} 查询所有数据库 listAllDatabases list_databases GET /v1.0/{project_id}/databases 修改数据库用户 - - PUT /v1.0/{project_id}/databases/{database_name}/owner Table 创建 DLI 表 createDLITable create_dli_table POST /v1.0/{project_id}/databases/{database_name}/tables 创建OBS表 createObsTable create_obs_table POST /v1.0/{project_id}/databases/{database_name}/tables 删除表 deleteTable delete_table DELETE /v1.0/{project_id}/databases/{database_name}/tables/{table_name} 查询所有表 listAllTables list_tables GET /v1.0/{project_id}/databases/{database_name}/tables?keyword=tb&with-detail=true 描述表信息 getTableDetail get_table_schema GET /v1.0/{project_id}/databases/{database_name}/tables/{table_name} 预览表内容 - - GET /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/preview 修改表用户 - - PUT /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/owner Job 导入数据 submit import_table POST /v1.0/{project_id}/jobs/import-table 导出数据 submit export_table POST /v1.0/{project_id}/jobs/export-table 提交作业 submit execute_sql POST /v1.0/{project_id}/jobs/submit-job 取消作业 cancelJob - DELETE /v1.0/{project_id}/jobs/{job_id} 查询所有作业 listAllJobs - GET /v1.0/{project_id}/jobs?page-size={size}¤t-page={page_number}&start={start_time}&end={end_time}&job-type={QUERY}&queue_name={test}&order={duration_desc} 查询作业结果 queryJobResultInfo - GET/v1.0/{project_id}/jobs/{job_id}?page-size={size}¤t-page={page_number} 查询作业状态 - - GET/v1.0/{project_id}/jobs/{job_id}/status 查询作业详细信息 - - GET/v1.0/{project_id}/jobs/{job_id}/detail 查询SQL类型作业 listSQLJobs - - 检查SQL语法 - - POST /v1.0/{project_id}/jobs/check-sql 导出查询结果 - - POST /v1.0/{project_id}/jobs/{job_id}/export-result
  • 队列相关 表2 队列相关API&SDK的对应关系表 Class Method Java Method Python Method API Queue 创建队列 createQueue - POST /v1.0/{project_id}/queues 删除队列 deleteQueue - DELETE /v1.0/{project_id}/queues/{queue_name} 获取默认队列 getDefaultQueue - - 查询所有队列 listAllQueues list_queues GET/v1.0/{project_id}/queues
  • 资源相关 表3 资源相关API&SDK的对应关系表 Class Method Java Method Python Method API packageResources 上传资源包 uploadResources upload_resource POST /v2.0/{project_id}/resources 删除资源包 deleteResource delete_resource DELETE /v2.0/{project_id}/resources/{resource_name} 查询所有资源包 listAllResources list_resources GET /v2.0/{project_id}/resources 查询指定资源包 getResource get_package_resource GET /v2.0/{project_id}/resources/{resource_name}
  • 获取DLI SDK 在“DLI SDK DOWNLOAD”页面,单击选择所需的SDK链接,即可获取对应的SDK安装包。 “dli-sdk-java-x.x.x.zip”压缩包,解压后目录结构如下: 表1 目录结构 名称 说明 jars SDK及其依赖的jar包。 maven-install 安装至本地Maven仓库的脚本及对应jar包。 dli-sdk-java.version Java SDK版本说明。
  • 使用须知 要使用DLI Python SDK访问指定服务的 API ,您需要确认已在 华为云控制台 开通当前服务并完成服务授权。 Python版本建议使用2.7.10和3.4.0以上版本,需要配置Visual C++编译环境Visual C++ build tools 或者 Visual Studio。 关于Python开发环境的配置请参考Python SDK环境配置。 DLI Python SDK依赖第三方库包括:urllib3 1.15以上版本,six 1.10以上版本,certifi,python-dateutil。 关于Python SDK的获取与安装请参考SDK获取与安装。 使用SDK工具访问DLI,需要用户初始化DLI客户端。用户可以使用AK/SK(Access Key ID/Secret Access Key)或Token两种认证方式初始化客户端,具体操作请参考初始化DLI客户端
  • Python SDK列表 表1 Python SDK列表 类型 说明 队列相关 介绍查询所有队列的Python SDK使用说明。 资源相关 介绍上传资源包、查询所有资源包、查询制定资源包、删除资源包的Python SDK使用说明。 SQL作业相关 介绍数据库相关、表相关、作业相关的Python SDK使用说明。 Spark作业相关 介绍提交Spark作业、取消Spark作业、删除Spark作业等Python SDK使用说明。
  • DLI SDK简介 数据湖探索 服务软件开发工具包(DLI SDK,Data Lake Insight Software Development Kit)是对DLI服务提供的REST API进行的作业提交的封装,以简化用户的开发工作。用户直接调用DLI SDK提供的接口函数即可实现使用提交DLI SQL和DLI Spark作业。 DLI支持的SDK分为SDK V3和DLI服务自行开发的SDK。 (推荐)DLI SDK V3:是根据定义API的YAML文件统一自动生成,其接口参数与服务的API一致。具体操作请参考SDK V3版本开发指南。 DLI SDK(服务自研):是DLI服务自行开发的SDK,本手册介绍DLI 自研SDK的使用方法。 相关开发包请从华为云DLI 开发工具包(SDK)获取。 Java SDK操作指导请参考Java SDK Python SDK操作指导请参考Python SDK
  • Java SDK列表 表1 Java SDK列表 类型 说明 OBS授权 介绍将OBS桶的操作权限授权给DLI的Java SDK使用说明。 队列相关 介绍创建队列、获取默认队列、查询所有队列、删除队列的Java SDK使用说明。 资源相关 介绍上传资源包、查询所有资源包、查询指定资源包、删除资源包的Java SDK使用说明。 SQL作业相关 介绍数据库相关、表相关、作业相关Java SDK使用说明。 Flink作业相关 介绍新建Flink作业、查询作业详情、查询作业列表等Java SDK使用说明。 Spark作业相关 介绍提交Spark作业、查询所有Spark作业、删除Spark作业等Java SDK使用说明。 Flink作业模板相关 介绍新建Flink作业模板、更新Flink作业模板、删除Flink作业模板的JavaSDK使用说明。
  • 使用须知 要使用DLI Java SDK 访问指定服务的 API ,您需要确认已在 华为云控制台 开通当前服务并完成服务授权。 Java SDK 支持 Java JDK 1.8 及其以上版本。关于Java开发环境的配置请参考Java SDK环境配置。 关于Java SDK的获取与安装请参考SDK的获取与安装。 使用SDK工具访问DLI,需要用户初始化DLI客户端。用户可以使用AK/SK(Access Key ID/Secret Access Key)或Token两种认证方式初始化客户端,具体操作请参考初始化DLI客户端
  • 操作场景 在进行二次开发时,要准备的开发环境如表1所示。 表1 开发环境 准备项 说明 操作系统 Windows系统,推荐Windows 7及以上版本。 安装Python Python版本建议使用2.7.10和3.4.0以上版本,需要配置Visual C++编译环境Visual C++ build tools 或者 Visual Studio。 安装Python依赖库 DLI Python SDK依赖第三方库包括:urllib3 1.15以上版本,six 1.10以上版本,certifi,python-dateutil。
  • 获取DLI SDK 在“DLI SDK DOWNLOAD”页面,单击选择所需的SDK链接,即可获取对应的SDK安装包。 “dli-sdk-python-x.x.x.zip”压缩包,解压后目录结构如下: 表1 目录结构 名称 说明 dli python环境的DLI SDK基础模块。 examples python样例代码。 pyDLI pyHive的实现接口。 setup.py Python SDK安装脚本。
  • DLI SDK功能矩阵 SDK开发指南指导您如何安装和配置开发环境、如何通过调用DLI SDK提供的接口函数进行二次开发。 Java、Python SDK功能矩阵请参见表1 表1 SDK功能矩阵 语言 功能 内容 Java OBS授权 介绍将OBS桶的操作权限授权给DLI的Java SDK使用说明。 队列相关 介绍创建队列、获取默认队列、查询所有队列、删除队列的Java SDK使用说明。 资源相关 介绍上传资源包、查询所有资源包、查询指定资源包、删除资源包的Java SDK使用说明。 SQL作业相关 介绍数据库相关、表相关、作业相关Java SDK使用说明。 Flink作业相关 介绍新建Flink作业、查询作业详情、查询作业列表等Java SDK使用说明。 Spark作业相关 介绍提交Spark作业、查询所有Spark作业、删除Spark作业等Java SDK使用说明。 Flink作业模板相关 介绍新建Flink作业模板、更新Flink作业模板、删除Flink作业模板的JavaSDK使用说明。 Python 队列相关 介绍查询所有队列的Python SDK使用说明。 资源相关 介绍上传资源包、查询所有资源包、查询制定资源包、删除资源包的Python SDK使用说明。 SQL作业相关 介绍数据库相关、表相关、作业相关的Python SDK使用说明。 Spark作业相关 介绍提交Spark作业、取消Spark作业、删除Spark作业等Python SDK使用说明。 父主题: DLI SDK
  • 参数说明 表1 参数说明 参数 是否必选 参数类型 说明 timestamp 是 DATE STRING TINYINT SMALLINT INT BIGINT 代表待处理的时间。 DATE或STRING类型的日期值,或TINYINT、SMALLINT、INT或BIGINT类型的时间戳。 格式: yyyy-mm-dd yyyy-mm-dd hh:mi:ss yyyy-mm-dd hh:mi:ss.ff3 timezone 是 STRING 代表需要转换的目标时区。
  • 计费周期 包年包月: 包年/包月DLI资源的计费周期是根据您购买的时长来确定的(以UTC+8时间为准)。一个计费周期的起点是您开通或续费资源的时间(精确到秒),终点则是到期日的23:59:59。 例如,如果您在2023/03/08 15:50:04购买了时长为一个月的队列资源,那么其计费周期为:2023/03/08 15:50:04 ~ 2023/04/08 23:59:59。 按需计费: 按需计费DLI队列资源,以小时为单位进行结算。不足一小时按一小时计费,小时数按整点计算(以UTC+8时间为准),结算完毕后进入新的计费周期。 计费的起点根据队列是否专属存在差异: 按需专属队列:按需专属队列自创建起按自然小时收费,终点以资源删除时间为准。 按需非专属队列:按需非专属队列仅在队列运行作业时计费,终点以作业执行完成、队列空闲时间为准。(队列空闲是指该队列上没有正在运行的作业。) 资源从创建到启动需要一定时长,按需专属队列计费的起点是创建成功的时间点,而非创建的时间。您可以通过执行select语句测试队列资源是否拉起。 例如: 您在8:45:30购买了一个按需专属队列资源,然后在8:55:00将其删除,计费周期为8:00:00 ~ 9:00:00,不足一小时按一小时计费,即该队列计费时长1小时。 您在8:45:30购买了一个按需非专属队列资源,在9:05:00分开始在该队列执行作业,然后在9:55:00作业执行完毕,队列空闲,在10:05:00将资源删除,计费周期为9:00:00 ~ 10:00:00,在9:05:00 ~ 9:55:00间产生费用,不足一小时按一小时计费,即该队列计费时长1小时。
  • 计费规则 队列资源根据计费模式的不同计费规则各不相同。 表1 队列计费规则 计费模式 资源 说明 包年/包月 队列 包年包月的队列在使用过程中规格内按包周期计费,超出规格部分按需计费。 按需计费 队列 计算费用=单价*CU数*小时数 按需计费的DLI队列(非专属资源)仅在队列运行作业时计费,按队列的实际CUs计费,请注意是队列的实际CUs,非作业运行CUs。可参考常见问题购买了16CUs的按需计费的DLI队列,执行作业使用了2CUs怎么计费? 按需计费的DLI队列(专属资源),无论是否运行作业,自创建起按自然小时收费。 假设您选择购买队列资源,在购买页面底部,您将看到所需费用的明细,如图1所示。 图1 配置费用示例 包年/包月:根据所选配置,包括队列类型、队列规格和购买时长计算配置费用。 按需计费:根据所选配置,包括队列类型、队列规格计算的配置费用。
  • 到期后影响(适用于包年/包月计费模式) 图2描述了包年/包月DLI资源各个阶段的状态。购买后,在计费周期内资源正常运行,此阶段为有效期;资源到期而未续费时,将陆续进入宽限期和保留期。 图2 包年/包月DLI资源生命周期 到期预警 包年/包月DLI资源在到期前第7天内,系统将向用户推送到期预警消息。预警消息将通过邮件、短信和站内信的方式通知到华为云帐号的创建者。 到期后影响 当您的包年/包月DLI资源到期未续费,首先会进入宽限期,资源状态变为“已过期”。 如果您在宽限期内仍未续费包年/包月资源,那么就会进入保留期,资源状态变为“已冻结”,您将无法对处于保留期的包年/包月资源执行任何操作。 保留期到期后,若包年/包月资源仍未续费,那么资源将被释放,数据无法恢复。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 关于续费的详细介绍请参见帐户充值。
  • 计费示例 价格仅供参考,实际计算请以 数据湖 探索价格详情中的价格为准。 样例1:包年/包月队列场景 假设您在2023/03/08 15:50:04购买了包年/包月队列(类型:SQL队列,规格:16CUs,单AZ部署),购买时长为一个月,并在到期前手动续费1个月,则: 第一个计费周期为:2023/03/08 15:50:04 ~ 2023/04/08 23:59:59 第二个计费周期为:2023/04/08 23:59:59 ~ 2023/05/08 23:59:59 您需要为每个计费周期预先付费,计费公式如表2所示。 表2 计费公式 资源类型 计费公式 资源单价 计算资源 规格单价 * 购买时长 请参见数据湖探索价格详情价格。 包年/包月队列费用计算示例: 队列单价:2400元/月 加上续费的周期共计时长2个月。 费用合计:4800元。 样例2:按需专属队列场景 假设您在2023/04/18 9:59:30购买了一个按需专属队列资源(类型:SQL队列,规格:16CUs,单AZ部署),然后在2023/04/18 10:45:46将其删除则: 第一个计费周期为9:00:00 ~ 10:00:00,不足一小时按一小时计费,该计费周期内的计费时长为1小时。 第二个计费周期为10:00:00 ~ 11:00:00,不足一小时按一小时计费,该计费周期内的计费时长为1小时。 您需要为每个计费周期付费,计费公式如表3所示。产品价格详情中标出了资源的每小时价格。 表3 计费公式 资源类型 计费公式 资源单价 计算资源 计算费用=单价*CU数*小时数 请参见数据湖探索价格详情价格。 按需计费队列费用计算示例: 队列单价:0.35元/小时,实际CUs:16CUs,累计计费时长:2小时。 费用合计:11.2元。 样例3:按需非专属队列场景 假设您在2023/04/18 9:59:30购买了一个按需非专属队列资源(类型:SQL队列,规格:16CUs,单AZ部署),在10:05:00提交了作业在队列上运行,在11:15:00作业执行完毕,后在2023/04/18 11:45:46将其删除则: 第一个计费周期为10:05:00 ~ 11:00:00,不足一小时按一小时计费,该计费周期内的计费时长为1小时。 第二个计费周期为11:00:00 ~ 11:15:00,不足一小时按一小时计费,该计费周期内的计费时长为1小时。 您需要为每个计费周期付费,计费公式如表4所示。产品价格详情中标出了资源的每小时价格。 表4 计费公式 资源类型 计费公式 资源单价 计算资源 计算费用=单价*CU数*小时数 请参见数据湖探索价格详情价格。 按需计费队列费用计算示例: 队列单价:0.35元/小时,队列规格:16CUs,累计计费时长:2小时。 费用合计:11.2元。 样例4:包年/包月队列+扩缩容场景 假设您在2023/03/08 15:50:04购买了包年/包月队列(CU范围:64CUs),购买时长为一个月,在资源运行一段时间后发现每天0点~9点为高负荷时段,计划设置一个定时扩缩容任务(假设设置扩容后的CUs为128CUs,超出规格64CUs。)。队列资源计费详情请参见数据湖探索价格详情。 该示例计费公式如表5所示。 表5 包年/包月队列+扩缩容场景计费示例 计费模式 计算规则 付费周期 费用计算 包年/包月 队列64CUs包周期 1个月 费用:9600元 按需计费 - 超出规格部分的按需计费: 计算费用=单价*CU数*小时数 9*30天=270小时 费用:0.35 x 64 x 270(小时数)= 6048 元 - - 合计:15648 元
  • 队列资源的计费模式 队列为DLI作业运行提供计算资源。队列支持以下计费模式: 包年/包月:预付费模式,按订单的购买周期计费,计算资源专属,空闲(无作业运行)时不会释放,使用体验更佳,且相较于按需队列费用更低。适用于队列使用频率高,例如已完成开发进入生产阶段的项目,推荐使用包年包月计费模式预留业务所需资源。 按需计费:按需计费是一种后付费模式,DLI支持使用按需计费模式购买队列资源,分为按需专属资源和按需非专属资源: 按需专属:购买时勾选“专属资源模式”即创建的是按需专属资源,按需专属资源模式可以保障资源专属,使用期间资源不被释放。计费方式自创建起按自然小时收费。 按需非专属:购买时未勾选“专属资源模式”即为按需非专属资源。仅在队列运行作业时计费,按队列的实际CU计费。 按需计费的计算费用=单价*实际CU数*小时数。以小时为单位进行结算。不足一小时按一小时计费,小时数按整点计算。 套餐包:建议购买队列CU时套餐包和按需计费模式结合使用,购买了队列CU时套餐包时,按需使用过程中优先抵扣队列CU时套餐包的规格额度,超过额度的使用量按需计费。队列CU时套餐包的额度会按订购周期重置。更多套餐包计费信息请参考套餐包计费。 按扫描量计费:仅default 队列支持按扫描量计费。扫描数据量套餐包适用于default 队列。更多扫描量计费信息请参考扫描量计费。 本文将介绍按需计费的DLI队列资源的计费规则。
  • 约束限制 按需非专属队列仅在队列运行作业时计费。 按需专属队列自创建起按自然小时收费。 以小时为单位进行结算。不足一小时按一小时计费,小时数按整点计算。 按需队列的计费按实际CUs计费,非作业运行CUs。即按照实际物理资源占用来计费。 按需计费模式支持与CU时套餐包组合使用,按需使用过程中优先抵扣队列CU时套餐包的规格额度,超过额度的使用量按需计费。队列的CU时套餐包的额度每个月会重置。 DLI不支持变更计费模式。 购买包年/包月的队列资源时,AZ策略选择多AZ则采用双倍计费标准。
  • 适用场景 包年/包月:该计费模式需要用户预先支付一定时长的费用,适用于长期、稳定的业务需求。 按需计费:该计费模式适用于测试项目场景,资源消耗不高,使用频率较低,按需计费成本更低,无需任何预付款。 包年/包月+按需计费:当业务对资源的需求呈现周期变化时,例如在某个周期内,用户需要更多的计算资源来处理业务,过了这个周期,则不需要那么多资源。如果用户购买的队列规格比较小,在业务繁忙时会存在资源不足的情况;而如果购买的队列规格比较大,又可能会存在资源浪费的情况。 基于以上场景,可以使用队列弹性扩缩容定时任务功能,根据自己的业务周期或者使用情况,创建弹性扩缩容定时任务。详细操作指导请参考弹性扩缩容定时任务。 按需计费+套餐包:当业务对资源的需求呈现周期变化时,例如在某个周期内,用户需要更多的计算资源来处理业务,过了这个周期,则不需要那么多资源。该场景可以购买队列CU时套餐包和按需计费模式结合使用。使用过程中优先抵扣弹性资源池CU时套餐包的规格额度,超过额度的使用量按照按需计费。
  • DLI“包年/包月”和“按需计费”计费模式队列生命周期 表1 DLI“包年/包月”和“按需计费”计费模式队列生命周期 功能 状态 EOM时间 EOFS时间 EOS时间 DLI“包年/包月”和“按需计费”计费模式队列功能 EOM 2024年3月31日 2024年6月30日 2025年6月30日 EOM:End of Marketing,停止该功能销售。 EOFS:End of Full Support,停止该功能全面支持。 EOS:End of Service & support
  • 标签命名规则 每个标签由一对键值对(Key-Value)组成。 每个IoTDA实例最多可以添加20个标签。 对于每个资源,每个标签键(Key)都必须是唯一的,每个标签键(Key)只能有一个值(Value)。 标签共由两部分组成:“标签键”和“标签值”,其中,“标签键”和“标签值”的命名规则如表1所示。 表1 标签命名规则 参数 规则 样例 标签键 不能为空。对于同一个实例,Key值唯一。最大长度36个字符。 字符集:A-Z,a-z , 0-9,‘-’,‘_’,UNICODE字符(\u4E00-\u9FFF) Organization 标签值 每个值最大长度43个字符,可以为空字符串。 字符集:A-Z,a-z , 0-9,‘.’,‘-’,‘_’,UNICODE字符(\u4E00-\u9FFF) Apache 如您的组织已经设定IoTDA的相关标签策略,则需按照标签策略规则为实例添加标签。标签如果不符合标签策略的规则,则可能会导致实例创建失败,请联系组织管理员了解标签策略详情。
  • 策略通配符 策略中具有不同的通配符,使用前需注意。在策略中,“*”表示字符的任意组合,问号“? ”表示任何单个字符,而通配符“+”和“#”被视为没有特殊含义的字符。 表3 策略通配符 通配符 是MQTT通配符 策略配置是否适用 MQTT中主题示例 适用于MQTT主题示例的策略示例 # 是 否 test/# 不适用,“#”被视为没有特殊含义的字符。 + 是 否 test/+/some 不适用,“+”被视为没有特殊含义的字符。 * 否 是 不适用,“*”被视为没有特殊含义的字符。 test/* test/*/some ? 否 是 不适用,“?”被视为没有特殊含义的字符。 test/????/some test/set?????/some 定义策略通配符示例: { "app_id": "jeQDJQZltU8iKgFFoW060F5SGZka", "policy_id": "5c90fa7d3c4e4405e8525079", "policy_name": "myPolicy", "statement": [ { "effect": "ALLOW", "actions": [ "iotda:devices:publish" ], "resources": [ "topic:test/????/some", "topic:test/set?????/some" ] } ], "create_time": "20190303T081011Z", "update_time": "20190303T081011Z" }
  • 策略变量 在策略中定义resource时,如果不知道对设备资源或条件键的精确值,可以使用策略变量作为占位符,进行发布/订阅主题筛选。策略变量在校验MQTT的主题时,会把变量变为接入设备对应的ID值,再进行匹配。 变量使用前缀“$”标记,后面跟一对大括号“{ }”,其中包含请求中值的变量名称。现如今支持的变量如下表,假设MQTT设备是在客户端ID为test_clientId,产品ID为test_productId,设备ID为test_deviceId。 表4 策略变量 策略变量 描述 MQTT中主题示例 适用于MQTT主题示例的策略示例 ${devices.deviceId} 设备ID test/test_deviceId/topic test/${devices.deviceId}/topic ${devices.clientId} 客户端ID test/test_clientId/topic test/${devices.clientId}/topic ${devices.productId} 产品ID test/test_productId/topic test/${devices.productId}/topic 定义策略变量示例: { "app_id": "jeQDJQZltU8iKgFFoW060F5SGZka", "policy_id": "5c90fa7d3c4e4405e8525079", "policy_name": "myPolicy", "statement": [ { "effect": "ALLOW", "actions": [ "iotda:devices:publish", "iotda:devices:subscribe" ], "resources": [ "topic:test/${devices.deviceId}/topic" ] } ], "create_time": "20190303T081011Z", "update_time": "20190303T081011Z" }
  • SDK获取和安装 安装Python开发环境。 访问Python官网,下载并按说明安装Python开发环境。 华为云 Python SDK 支持 Python3 及以上版本。 安装pip工具 访问pip官网,下载并按说明安装pip工具。 安装Python SDK 执行如下命令安装华为云Python SDK核心库以及相关服务库 # 安装核心库 pip install huaweicloudsdkcore # 安装IoTDA服务库 pip install huaweicloudsdkiotda
  • SDK获取和安装 安装.NET开发环境。 访问.NET官网,下载并按说明安装.NET开发环境。 华为云.NET SDK适用于: .NET Framework 4.5 及其以上版本。 .NET Standard 2.0 及其以上版本。 C# 4.0 及其以上版本。 使用 .NET CLI 工具安装SDK dotnet add package HuaweiCloud.SDK.Core dotnet add package HuaweiCloud.SDK.IoTDA
  • 统计图表类型 支持对图表进行新建、保存、另存为等操作。详细请参考表1。 支持使用表格、柱状图、折线图等图表类型展示不同场景数据,详细请参考表2。 表1 操作说明 功能名称 功能描述 新建 选择不同的图表类型,将图表分析结果保存到仪表盘。 保存 对当前可视化图表进行保存。 另存为 对已有可视化图表进行复制。 下载 将图表分析结果下载到excel。 展开图表 可展开当前日志流下的可视化图表。 收起图表 可收起当前日志流下的可视化图表。 表2 图表类型 图表类型 使用场景 表格 表格是最常见的数据展示类型,通过对数据结构化的整理,实现数据的对比与统计。大多数场景均适用。 柱状图 柱状图描述的是分类数据,直观表现每一个分类项的大小对比关系。统计近一天各错误码类型出现的次数等分类统计场景适用。 折线图 折线图需要统计数据具备时序字段,依据时间顺序组织与聚合指标。可直观反映指标随时间的变化趋势。 饼图 饼图描述的是不同分类的占比情况,通过扇区大小来衡量各分类项的占比情况。错误码占比情况分析等占比统计场景适用。 数字图 数字图描述的是单个指标,一般选择具备有业务价值的关键性指标。统计天、周、月 PV、UV 等单指标场景适用。 数字折线图 折线图和数字图的组合。折线图用于表示数据趋势和变化的,数字图则展示关键性指标。在一些需要同时显示趋势和关键数据点的场合适用。 地图 地图通过图形的位置来表现数据的地理位置,通常来展示数据在不同地理区域上的分布情况。攻击 IP 地理分布等地理位置统计场景适用。 漏斗图 漏斗图适用于单流向单路径的业务流程,对各环节进行统计并用梯形面积表示某个环节业务量与上一个环节之间的差异。
  • DynamicLtsTableFactory支持SQL作业 LtsDynamicSource和LtsDynamicSink table作业,支持LTS日志直接接入flink,支持SQL语法,示例如下: public static void main(String[] args) throws Exception { StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); EnvironmentSettings environmentSettings = EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build(); StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env, environmentSettings); // enable checkpointing Configuration configuration = tableEnv.getConfig().getConfiguration(); configuration.set( ExecutionCheckpointingOptions.CHECKPOINTING_MODE, CheckpointingMode.EXACTLY_ONCE); configuration.set( ExecutionCheckpointingOptions.CHECKPOINTING_INTERVAL, Duration.ofSeconds(10)); tableEnv.executeSql("CREATE TABLE source ( " + " collectTime varchar, " + " lineNum varchar, " + " podName varchar, " + " pathFile varchar, " + " category varchar " + " ) " + " with ( " + // connector 表类型 固定值lts "'connector' = 'lts', " + // LTS 日志服务所属region "'regionName' = 'cn-north-7', " + // LTS 日志租户项目ID "'projectId' = '**************', " + // LTS 租户AK "'accessKey' = '**************', " + // LTS 租户SK "'accessSecret' = '**************', " + // LTS 日志组ID "'logGroupId' = '**************', " + // LTS 日志流ID "'logStreamId' = '**************', " + // LTS 日志流的消费组 "'consumerGroup' = '**************', " + // LTS 日志消费起始位置 "'startTime' = '1689836602157000000', " + // LTS 原始日志是否做JSON解析 "'jsonParse' = 'true' " + " )"); tableEnv.executeSql("CREATE TABLE print_sink ( " + " collectTime varchar, " + " lineNum varchar, " + " podName varchar, " + " pathFile varchar, " + " category varchar " + " ) " + " with ( " + // connector 表类型 固定值lts "'connector' = 'lts', " + // LTS 日志服务所属region "'regionName' = 'cn-north-7', " + // LTS 日志租户项目ID "'projectId' = '2a473356cca5487f8373be891bffc1cf', " + // LTS 租户AK "'accessKey' = 'DADYWPUP8JMUV3UGPEI9', " + // LTS 租户SK "'accessSecret' = 'jUtvcc0oIIcGZGoAUvtlSi8Oz6sZdFI2ZqFKBGUZ', " + // LTS 日志组ID "'logGroupId' = 'e83e94db-2e29-49c9-ae15-d3a9f4c3ea1b', " + // LTS 日志流ID "'logStreamId' = '0a423cfc-dbf8-4cf3-8fb9-f5cf95fa1298' " + " )"); tableEnv.executeSql("insert into print_sink select * from source "); }
共100000条