# 智能数据湖 AI DataLake > 企业级多模态智能数据分析与管理平台 ## 版本规划 - [AI DataLake 26.6.0 版本说明](https://support.huaweicloud.com/verspt-bulletin-aidatalake/aidatalake_bulletin_0001.md): 本节内容介绍了AI DataLake 26.6.0版本中各引擎版本配套关系和特性说明。AI DataLake当前提供的各引擎版本配套关系和特性说明如表1所示。 - [AI DataLake 26.7.0 版本说明](https://support.huaweicloud.com/verspt-bulletin-aidatalake/aidatalake_bulletin_0002.md): 本节内容介绍了AI DataLake 26.7.0版本中各引擎版本配套关系和特性说明。AI DataLake当前提供的各引擎版本配套关系和特性说明如表1所示。 ## 产品介绍 - [什么是AI DataLake](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0002.md): 智能数据湖 AI DataLake是华为云构建的企业级多模态智能数据分析与管理平台,为您提供构建AI时代数据基础设施的完整能力。AI DataLake提供多模数据引擎Aura、AI计算引擎Ray、批处理引擎Spark和流处理引擎Flink四大核心计算引擎,聚焦多模数据处理、异构算力混合调度,开放湖仓处理,构建新一代多模湖仓架构,促进Dat - [产品优势](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0003.md): AI DataLake采用全托管模式,免除基础设施运维负担,在数据开发时无需关注底层基础设施管理,聚焦业务价值。内置高可用架构,数据多副本冗余存储,自动故障检测与恢复,保障业务连续性。提供完善的监控体系,监控资源使用情况。支持CPU、GPU、NPU资源,执行作业时统一分配,匹配最优资源,满足大数据处理差异化需求。通过统一调度框架,显著提升 - [产品功能](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0005.md): 使用AI DataLake进行数据分析场景,管理员首先需要考虑的就是项目隔离、权限隔离与管理、资源分配问题。AI DataLake的工作空间正是为解决这些问题而设计,从系统层面为管理者提供对使用AI DataLake的用户(成员)权限、资源、底层计算引擎配置的管理能力。它通过环境隔离、资源绑定的基本逻辑,为您提供一个独立的开发环境,并基于 - [多模数据引擎Aura](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0007.md): 多模数据引擎Aura专为管理、处理、分析多模态数据类型(如文本、图像、音频、视频)而设计。通过“One Flow,One Pool,One Data”的核心理念,为多模态数据处理提供了高效、灵活、低成本的解决方案。在智驾数据预处理等典型场景中,Aura通过异构资源统一调度、数据流转不落地、流水线并行优化等技术,显著提升了资源利用率和数据处 - [AI计算引擎Ray](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0008.md): AI计算引擎Ray是专为大规模AI工作负载设计的统一分布式计算引擎。Ray通过CPU、GPU、NPU异构计算调度,为AI工作负载提供统一的计算底座,覆盖从数据加载到预处理的全流程。多模态数据原生支持不限于表格数据,原生支持图像、视频、音频、文本等非结构化数据的读取、转换与处理。不限于表格数据,原生支持图像、视频、音频、文本等非结构化数据的 - [批处理引擎Spark](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0009.md): Spark引擎是面向大规模批处理场景的企业级分布式计算引擎,采用新一代流批一体架构设计,支持海量数据的离线处理、ETL管道构建、交互式分析等多种场景。引擎深度集成AI DataLake平台能力,提供Serverless化部署体验,帮助企业轻松应对PB级数据处理挑战。提供Spark SQL、DataFrame API、PySpark、RDD - [流处理引擎Flink](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0010.md): 流处理引擎Flink公测期暂未开放。Flink引擎是面向实时流处理场景的企业级分布式流计算引擎,支持低延迟、高吞吐的实时数据处理能力。引擎深度集成AI DataLake平台能力,提供Serverless化部署体验,帮助企业构建端到端的实时数据流水线,实现从数据到洞察的秒级响应。提供Flink SQL、DataStream API、Tabl - [产品规格](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0011.md): 本节操作介绍计算资源和存储资源的产品规格。计算资源:使用AI DataLake时您需要购买计算资源池用于数据分析和计算。如图1所示,AI DataLake提供了两种计算资源池:弹性资源:无需提前购买。预留资源池:需提前购买实例资源,并根据业务负载特点选择合适的实例资源组合使用。在购买预留资源池时,AI DataLake提供了三种实例类型: - [智驾多模态数据处理](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0012.md): 智能驾驶数据生产业务流中,车辆会采集大量的视频、图像数据,对于这些多模数据的梳理,要经过预处理、向量化等环节,才能为构建智驾模型训练数据集提供数据输入。这种数据密集型、计算密集型的分析场景给计算资源的调度和数据存储的I/O能力提出了极高的要求。在传统的数据分析中,开发人员通常配置串行流水线:先调用CPU资源执行解码任务,然后将数据存盘,再 - [互联网应用音频加工流水线](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0013.md): 互联网应用音频加工流水线作为专业化的大规模数据处理系统,日常处理PB量级的原始音频数据,通过数据预处理、数据清洗、语音标签及语音转文本等关键环节,系统化地完成从原始音频到标准化语音文本对的高质量转化。传统互联网音频加工流水线在处理大规模数据时存在资源利用率低、中间结果频繁落盘、开发效率不高等瓶颈。多模数据引擎Aura,构建高效能音频数据处 - [互联网AI数据管线](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0014.md): 随着多模态数据的爆发式增长,AI数据管线面临如下两大核心挑战:系统稳定性需进一步提升,传统单机脚本和人工编排方式难以应对视频、图像、音频和文本等混合数据的涌入,容易导致计算资源闲置、内存不足和调度故障,影响整体运行效率和系统稳定性。数据筛选需更加精准,大模型训练面临效果提升放缓的问题,关键样本往往淹没在海量普通数据中,造成标注资源浪费。需 - [金融交易数据实时分析与风控](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0015.md): 在金融机构的交易风控、资金监控和实时经营分析业务流中,系统需要高频并发地摄入大量的交易流水、资金流水和行情快照。对于这些多源异构数据的处理,既要满足实时风控的秒级响应要求,又要支撑历史数据的深度分析和模型训练需求。实时流处理层面,数据必须经过实时标准化、窗口聚合计算等计算密集型环节,才能在秒级甚至毫秒级内识别异常资金净流出或高频交易欺诈。 - [身份认证与访问控制](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0018.md): 用户访问AI DataLake的方式主要有两种,包括AI DataLake Console界面、AI DataLake Open API等,其本质都是通过AI DataLake提供的REST API接口进行请求。AI DataLake的接口均需要通过认证鉴权才能访问,控制台发送的请求与调用API接口的请求均支持Token认证鉴权。您可以使 - [数据保护技术](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0019.md): 为了确保您的个人敏感数据(例如用户名、密码、手机号码等)不被未经过认证、授权的实体或者个人获取,AI DataLake对用户数据的存储和传输进行加密保护,以防止个人数据泄露,保证您的个人数据安全。AI DataLake服务不提供数据备份功能,您需根据业务需求定期导出数据并将数据备份存储,以保障数据安全。临时存储资源用于缓存各个引擎运行时临 - [审计与日志](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0020.md): AI DataLake对接云审计服务云审计服务(Cloud Trace Service,CTS),是华为云安全解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。CTS可记录的AI DataLake操作列表详见云审计服务支持的AI DataLake操 - [服务韧性](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0021.md): AI DataLake通过流量限制、跨AZ容灾、备份恢复等技术方案,保障数据的持久性和可靠性。流量限制:AI DataLake通过设置流量控制机制,防止服务过载并保持服务的稳定性。跨AZ容灾:AI DataLake云服务采用跨可用区容灾部署,减少单点故障的风险,提高系统的可用性和弹性。 - [监控安全风险](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0022.md): AI DataLake为用户的云上资源提供了立体化监控平台。通过资源监控您可以全面了解云上的资源使用情况、业务的运行状况,并及时收到异常告警做出反应,保证业务顺畅运行。AI DataLake提供的资源监控能力,帮助用户监控账号下的资源使用率,执行自动实时监控、告警和通知操作。用户可以实时掌握资源CPU使用率、内存使用率、NPU使用率、GP - [故障恢复](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0023.md): 工作空间级故障恢复AI DataLake系统采用存算分离的架构,计算集群基于Kubernetes资源调度和故障切换机制,在系统故障时,支持自动故障恢复。AI DataLake系统采用存算分离的架构,计算集群基于Kubernetes资源调度和故障切换机制,在系统故障时,支持自动故障恢复。作业级故障恢复AI DataLake作业支持配置自动重 - [更新管理](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0024.md): AI DataLake云服务通过华为云安全公告密切跟踪漏洞,一旦发现服务模块涉及漏洞影响,会迅速通过官方解决方案升级现网更新漏洞。AI DataLake云服务通过版本更新升级更新配置,确保服务的安全性和稳定性。 - [认证证书](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0025.md): 华为云服务及平台通过了多项国内外权威机构(ISO/SOC/PCI等)的安全合规认证,用户可自行申请下载合规资质证书。合规证书下载华为云还提供以下资源来帮助用户满足合规性要求,具体请查看资源中心。资源中心另外,华为云还提供了以下销售许可证及软件著作权证书,供用户下载和参考。具体请查看合规资质证书。销售许可证&软件著作权证书 - [权限管理](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0026.md): 如果您需要对华为云上购买的AI DataLake资源,为企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,您可以使用统一身份认证服务(Identity and Access Management,简称IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全地控制华为云资源的访问。如果华为账号 - [约束与限制](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0027.md): 关于各引擎端点的更多限制,请参见创建Aura引擎端点、创建Ray引擎端点、创建Spark引擎端点。 - [配额管理](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0028.md): 配额是在某一区域下最多可同时拥有的某种资源的数量。为防止资源滥用,平台限定了各服务资源的配额,对用户的资源数量和容量做了限制。如果当前资源配额限制无法满足使用需要,您可以申请扩大配额。登录AI DataLake管理控制台。单击管理控制台左上角的,选择区域和项目。在页面右上角,选择“资源 > 我的配额”。系统进入“服务配额”页面。我的配额系 - [与其他服务的关系](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0029.md): AI DataLake使用统一身份认证服务(Identity and Access Management,简称IAM)实现认证和鉴权功能。具体操作请参考通过IAM角色或策略授予使用AI DataLake的权限。AI DataLake基于OBS对象存储构建,提供海量数据存储能力,所有引擎共享同一份数据,存储在OBS中,并通过LakeForm - [多模态向量检索](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0032.md): 模型迭代训练需要持续从数据集中提取特定标签和特征的内容,媒体、智驾等业务通常涉及千亿向量规模的百万样例抽取,AI DataLake Aura支持极限规模下的向标混合检索、多向量检索等多重能力,实现海量多模态训练数据高效挖掘。本节介绍AI DataLake Aura引擎在多模态向量检索场景的应用。AI DataLake基于Aura+Lanc ## 计费说明 - [计费概述](https://support.huaweicloud.com/price-aidatalake/aidatalake_12_0001.md): AI DataLake服务公测期间提供以下类型的资源:包年/包月计费、按需计费的预留资源池。按需计费的弹性资源。按需计费的存储资源。AI DataLake的计费由不同的计费项组成,不同的计费项有不同的计费模式。如图1所示。计算资源的计费说明,请参考弹性资源计费和预留资源池计费。存储资源的计费说明,请参考存储资源计费。不同规格的实例单价不同 - [弹性资源计费](https://support.huaweicloud.com/price-aidatalake/aidatalake_12_0002.md): 弹性资源无需提前购买,在配置端点时选择“按需弹性”或“混合模式”即可使用。弹性资源秒级计费,在作业结束后资源随即释放,无需用户主动管理资源的生命周期。当用户提交的Job需要调度到弹性资源上执行时,系统会根据Pod的实际规格来分配资源。了解更多请参考资源规整。在创建引擎端点时需要选择资源使用模式,其中与弹性资源相关有两种模式:按需弹性:使用 - [预留资源池计费](https://support.huaweicloud.com/price-aidatalake/aidatalake_12_0003.md): AI DataLake预留资源池即购买独立的云服务计算资源,无论使用“包年/包月”或“按需计费”购买的预留资源池,在购买周期内资源均为独享,空闲(无作业运行)时不会释放。其中“包年/包月”的方式价格比“按需计费”模式更优惠。AI DataLake当前仅支持包月购买预留资源池。预留资源池的计费模式:包年/包月:预付费模式,按订单的购买周期计 - [计费样例1:多作业资源利用率优化示例](https://support.huaweicloud.com/price-aidatalake/aidatalake_12_0004.md): AI DataLake服务公测期间提供以下类型的资源:包年/包月计费、按需计费的预留资源池。按需计费的弹性资源。按需计费的存储资源。用户A在AI DataLake购买了20vCPU的预留资源池。预留资源池单价0.3元/vCPU/小时,在资源购买后开始计费,如不再使用需删除资源,否则资源持续计费。本例中因作业任务时间不确定,资源购买后长期占 - [欠费说明](https://support.huaweicloud.com/price-aidatalake/aidatalake_12_0005.md): 用户在使用AI DataLake服务时,账户的可用额度小于待结算的账单,即被判定为账户欠费。欠费后,可能会影响云服务资源的正常运行,请及时充值。图1描述了按需计费的资源各个阶段的状态。购买后,在计费周期内资源正常运行,此阶段为有效期;当您的账号因按需资源自动扣费导致欠费后,账号将变成欠费状态,资源将陆续进入宽限期和保留期。华为云根据客户等 - [停止计费](https://support.huaweicloud.com/price-aidatalake/aidatalake_12_0006.md): 对于包年/包月计费模式的资源,例如包年/包月的预留资源池,用户在购买时会一次性付费,服务将在到期后自动停止使用。如果在计费周期内不再使用包年/包月资源,您可以执行退订操作,系统将根据资源是否属于五天无理由退订、是否使用代金券和折扣券等条件返还一定金额到您的账户。详细的退订规则请参见云服务退订规则概览。如果您已开启“自动续费”功能,为避免继 - [存储资源计费](https://support.huaweicloud.com/price-aidatalake/aidatalake_12_0007.md): AI DataLake提供的临时存储主要用于作业过程中的临时下盘、临时缓存等用途的存储资源,包括中间结果或模型文件等。当计算任务需要访问或生成大量数据,且这些数据无法完全由计算节点本地存储或共享存储系统承载时,就需要增加计算资源组外的存储资源。配置存储资源方法:请先购买存储资源,然后在创建端点时选择已购买的存储资源。本节操作介绍存储资源的 - [按需转包年/包月](https://support.huaweicloud.com/price-aidatalake/aidatalake_12_0010.md): 如果您需要长期使用当前按需购买的计算资源,可以将已购买的按需计费计算资源转为包年/包月计费模式,享受更优惠的价格和更长的服务周期。按需计费变更为包年/包月会生成新的订单,用户支付订单后,包年/包月计算资源将立即生效,原按需计费停止计费。当前计算资源池状态为“可用”。订单提交完成后,计算资源池状态由可用更新为订单支付中。订单支付成功后,计算 - [包年/包月转按需](https://support.huaweicloud.com/price-aidatalake/aidatalake_12_0011.md): 如果您不再需要长期使用计算资源或希望灵活控制费用,可以将已购买的包年/包月计费计算资源转为按需计费模式。系统支持以下两种模式:到期转按需:用户提交订单后,计算资源到期后自动切换为按需计费模式。立即转按需:计算资源即刻转为按需计费模式,系统将根据包年/包月剩余时长计算并自动退还相应费用。当前计算资源池状态为“可用”。到期转按需:订单提交后, - [续费概述](https://support.huaweicloud.com/price-aidatalake/aidatalake_12_0013.md): 包年/包月计算资源在有效期内或到期前,若您希望继续使用,可通过续费操作延长服务周期,并继续享受包年/包月的优惠价格。需注意,续费功能仅适用于包年/包月资源;按需计费资源采用后付费模式,无需续费,只需确保账户余额充足即可正常扣费使用。包年/包月的计算资源续费相关的功能如表1所示。在计算资源生命周期的不同阶段,您可以根据需要选择一种方式进行续 - [自动续费](https://support.huaweicloud.com/price-aidatalake/aidatalake_12_0014.md): 自动续费可以减少手动续费的管理成本,避免因忘记手动续费而导致资源被自动删除。自动续费的规则如下所述:以资源的到期日计算第一次自动续费日期和计费周期。您可以在购买资源时开通自动续费,在购买资源时,自动续费周期以实际选择的续费时长为准。在到期前均可开通自动续费,到期前7日凌晨3:00首次尝试自动续费,如果扣款失败,每天凌晨3:00尝试一次,直 - [手动续费](https://support.huaweicloud.com/price-aidatalake/aidatalake_12_0015.md): 进入“续费管理”页面。可在“手动续费项”、“自动续费项”、“到期转按需项”、“到期不续费项”页签查询全部待续费资源,对资源进行手动续费的操作。所有需手动续费的资源都可归置到“手动续费项”页签,具体操作请参见如何恢复为手动续费。单个续费:在资源页面找到需要续费的资源,单击操作列的“续费”。批量续费:在资源页面勾选需要续费的资源,单击列表左上 - [计费样例2:单作业资源调度计费示例](https://support.huaweicloud.com/price-aidatalake/aidatalake_12_0016.md): 本示例展示单个作业在不同资源调度情况下的计费场景。单个作业由多个Pod组成,每个Pod独立调度,可被调度到预留资源池或弹性资源。系统优先将Pod调度到预留资源池,当预留资源池剩余可用容量不足以承载更多Pod时,剩余Pod自动调度到弹性资源(混合调度);也可能出现Pod全部调度到弹性资源,预留资源池完全未被使用的情况。用户A在AI Data ## 快速入门 - [基于Aura DataFrame的多模数据处理](https://support.huaweicloud.com/qs-aidatalake/aidatalake_01_0003.md): 多模数据引擎Aura是专为分析多模态类型数据而设计,支持数据的边读边算能力,避免了传统方式的频繁存盘操作,使得视频解码、向量化等预处理环节能够流水线式执行。提供自定义UDF功能,满足多模态场景定制化数据处理的需求。本章节操作以表格数据处理为示例,介绍在AI DataLake使用多模数据引擎Aura和DataArts Notebook交互式 - [基于RayCluster Data的数据处理](https://support.huaweicloud.com/qs-aidatalake/aidatalake_01_0004.md): AI DataLake是华为云提供的全托管的湖仓一体大数据分析服务,提供端到端的数据管理与分析能力,支持多种引擎的作业开发,满足多样化的大数据处理需求。本文以通过创建计算资源池、配置RayCluster类型的端点、连接数据、使用API提交作业为例,演示通过AI DataLake分析数据的操作指导。开始使用如下样例前,请务必按准备工作指导完 - [基于PySpark的数据处理](https://support.huaweicloud.com/qs-aidatalake/aidatalake_01_0005.md): AI DataLake是华为云提供的全托管的湖仓一体大数据分析服务,提供端到端的数据管理与分析能力,支持多种引擎的作业开发,满足多样化的大数据处理需求。本文以通过创建Spark引擎端点、连接数据、使用API提交作业为例,演示通过AI DataLake分析数据的操作指导。开始使用如下样例前,请务必按准备工作指导完成必要操作。规划并创建OBS - [首次使用AI DataLake](https://support.huaweicloud.com/qs-aidatalake/aidatalake_01_0029.md): 欢迎使用AI DataLake服务,本文为您介绍使用AI DataLake前需要完成的准备工作,包括从账号准备,到首次体验AI DataLake数据开发的全流程。在开始使用AI DataLake前,您需完成华为云账号注册、实名认证及相关服务授权,这是保障服务正常使用的基础步骤。AI DataLake包含多个功能模块,覆盖工作空间创建、数据 - [基于用户自定义镜像的多模数据处理](https://support.huaweicloud.com/qs-aidatalake/aidatalake_01_0030.md): AI DataLake是华为云提供的全托管的湖仓一体大数据分析服务,提供端到端的数据管理与分析能力,支持多种引擎的作业开发,满足多样化的大数据处理需求。本文以通过创建计算资源池、配置Aura类型的端点、连接数据、在DataArts Studio提交作业为例,演示通过AI DataLake和DataArts Studio分析数据的操作指导。 - [基于RayJob Data的数据处理](https://support.huaweicloud.com/qs-aidatalake/aidatalake_01_0079.md): 本文以通过创建计算资源池、创建RayJob类型的端点、连接数据、使用API提交作业为例,演示通过AI DataLake分析数据的操作指导。开始使用如下样例前,请务必按准备工作指导完成必要操作。规划并创建OBS桶:创建一个用于存储作业脚本的OBS桶。创建工作空间:创建一个工作空间并关联LakeFormation实例。创建计算资源池:创建运行 ## 用户指南 - [创建工作空间](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0001.md): 工作空间是AI DataLake为您提供的独立的数据分析工作环境,用于隔离不同业务、部门或项目的资源与权限。本节操作介绍创建工作空间的操作步骤。工作空间创建后,区域无法修改,请先选择区域,再创建工作空间。每个账号在单个区域内可创建的工作空间数量有限,具体配额请参见配额限制。删除工作空间前,请先确保空间下已无正在使用的端点或作业等数据。已注 - [开通AI DataLake服务并授权](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0002.md): 为保证正常使用AI DataLake服务,您需要开通AI DataLake服务,并授权允许AI DataLake服务代表用户访问其他云服务,才可以在AI DataLake服务中执行创建工作空间,开发作业等操作。本节操作介绍如何开通AI DataLake,并设置云资源访问授权。您已经注册了华为账号并开通华为云。具体操作可参见账号注册。实名认 - [为什么要配置计算资源池网络](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0026.md): 计算资源池创建后只是具备计算能力的“孤岛”,只有通过网络连接才能做到与外部数据和服务的交互。因此给计算资源池配置网络是使用计算资源分析数据的基础要求。如图1所示,网络是计算资源池与外部环境进行数据交换和通信的唯一通道。没有网络配置,计算资源池将无法发挥任何作用。本节内容以几个典型的计算资源池与外部交互的场景为例,介绍计算资源池配置网络的必 - [创建网络](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0027.md): 计算资源池创建后需要通过网络连接才能做到与外部数据和服务的交互,同时为避免资源池内部网络与其他数据源网络规划冲突,在工作空间中需要创建一个网络,基于虚拟私有云(VPC)进行封装,对用户提供CIDR网段的选择项。基于VPC对等连接,可实现跨VPC的资源互通,帮助用户高效共享资源、降低数据传输延迟,并提升业务系统的稳定性与连续性。创建网络有两 - [注册华为账号并开通华为云](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0032.md): 使用AI DataLake服务之前,请先注册华为账号并开通华为云,完成实名认证并进行服务授权。注册华为账号并开通华为云后,如需对AI DataLake资源进行精细管理,请使用IAM服务创建IAM用户及用户组,并授权,以使得IAM用户获得具体的操作权限。如果您已完成华为账号注册,可跳过该步骤。根据国家法律规定,所有用户必须完成实名认证后才能 - [通过IAM角色或策略授予使用AI DataLake的权限](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0034.md): 如果您需要对您所拥有的AI DataLake进行角色与策略的权限管理,您可以使用统一身份认证服务(Identity and Access Management,简称IAM),通过IAM,您可以:根据企业的业务组织,在您的华为账号中,给企业中不同职能部门的员工创建IAM用户,让员工拥有唯一安全凭证,并使用AI DataLake资源。根据企业 - [通过IAM身份策略授予使用AI DataLake的权限](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0035.md): 如果您需要对您所拥有的AI DataLake进行身份策略的权限管理,您可以使用统一身份认证服务(Identity and Access Management,简称IAM),通过IAM,您可以:根据企业的业务组织,在您的华为账号中,给企业中不同职能部门的员工创建用户或用户组,让员工拥有唯一安全凭证,并使用AI DataLake资源。根据企业 - [工作空间概述](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0037.md): 在使用AI DataLake进行数据分析的场景中,管理员首先需要考虑的就是项目隔离、权限隔离与管理、资源分配问题。AI DataLake的工作空间正是为解决这些问题而设计,通过环境隔离、资源绑定的基本逻辑,为您提供一个独立的开发环境,并基于此环境创建计算资源、选择引擎、配置端点和开发作业,从而实现高效有序且安全隔离的数据开发。工作空间作为 - [管理工作空间](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0038.md): 工作空间创建成功后,可在工作空间列表查看详细信息,也可以修改或删除工作空间。基本信息包括空间名称、创建人、描述、企业项目、空间ID、创建时间和所关联的LakeFormation实例。标签展示工作空间的所有标签,包含标签键和标签值。在右上角单击“编辑标签”可以添加标签、修改标签和删除标签。登录AI DataLake管理控制台。 - [计算资源池概述](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0039.md): AI DataLake提供的计算资源分为预留资源池和弹性资源,同时支持混合资源调配,以满足不同业务场景的算力需求。预留资源池:用户提前购买实例资源,资源类型覆盖CPU、NPU、GPU三种类型的算力,您可根据业务负载特点选择合适的计算资源组合。预留资源池为核心业务提供资源保障,确保资源归用户独享使用,性能稳定可预测,适用于长期稳定运行的批处 - [购买预留资源池](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0040.md): AI DataLake预留资源池即购买独立的计算资源,不管使用“包年/包月”或是“按需计费”购买的预留资源,在购买周期内资源都是独享,空闲(无作业运行)时不会释放。预留资源池适用于日常有稳定的计算需求,作业运行规律、可预测的稳定负载业务场景。持续可用的计算资源保障了资源池不被其他用户抢占,性能更加稳定。本节操作介绍预留资源池的适用场景、约 - [调整计算资源池容量](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0043.md): 随着业务负载的不断增长,现有的计算资源池容量可能无法满足日益增长的算力需求。为了保障业务的稳定运行,管理员需要通过弹性扩容的方式动态调整计算资源池的规模,以适应业务峰谷变化。计算资源池包含多种资源类型(CPU、GPU、NPU)时,同一扩缩容任务只支持调整一种资源类型。如需同时调整多种资源,需分多次执行扩缩容任务。仅在资源池状态为“可用”时 - [管理计算资源池](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0045.md): 管理员需要定期监控和了解当前工作空间内计算资源池的运行状态、资源使用情况以及关联的端点信息,以便进行资源规划和运维管理。当某些计算资源池不再使用时,为了释放系统资源并避免资源浪费,管理员需要将其从系统中删除。删除操作是不可逆的,请确保已确认不再需要该资源池。在列表上方搜索栏中,可根据资源池名称、ID、状态、资源类型、计费模式、标签、创建人 - [Aura引擎端点概述](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0047.md): 在AI DataLake服务中,端点是用户与AI DataLake引擎和计算资源交互的入口,其本质是“计算引擎”与“计算资源”的绑定,使得提交的作业可以访问AI DataLake的引擎并使用AI DataLake的计算资源。端点的优势:自动绑定引擎和计算资源池:创建端点时,AI DataLake自动将引擎和计算资源池绑定,在后续提交作业时 - [创建Aura引擎端点](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0049.md): 创建Aura端点是用户与AI DataLake引擎服务建立连接的核心操作,作为调用引擎服务的关键步骤,为用户提供了一个安全、稳定的访问入口。一键创建:仅需简单配置端点类型和资源模式,系统自动完成底层资源分配。专属入口:每个端点对应唯一的访问地址,用户可通过该入口直接调用引擎服务。多模态支持:统一入口支持结构化数据、半结构化数据、非结构化数 - [管理Aura引擎端点](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0050.md): Aura端点创建成功后,可在端点列表查看详细信息,也可以修改或删除端点。主要参数说明如表1所示。您可以在搜索框通过端点“名称”、“类型”、“状态”或“标签”搜索需要的端点。查看端点信息参数参数说明类型端点类型,支持以下端点类型:AuraJob:创建的Aura端点为v1.0版本。AuraJobV2:创建的Aura端点为v2.0版本。状态端点 - [使用DataArts Studio开发AI DataLake作业](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0051.md): 在AI DataLake完成引擎端点的配置后,您就已经具备了提交作业的必要条件:计算资源与引擎配置。接下来将要进行作业开发模块完成数据查询、数据处理等任务。AI DataLake公测期间支持的引擎:多模数据引擎Aura、AI计算引擎Ray、批处理引擎Spark。本节介绍使用DataArts Studio进行作业开发的操作流程。开通Data - [了解数据目录、数据库和表](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0053.md): AI DataLake不直接存储元数据,所有元数据操作都转发给绑定的LakeFormation实例执行。AI DataLake工作空间是业务单元,而LakeFormation实例是元数据服务载体。一个LakeFormation实例可被多个工作空间绑定,实现元数据共享和权限隔离。本节操作介绍数据目录、数据库和表的基本概念,以及LakeFor - [创建LakeFormation元数据](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0054.md): LakeFormation是企业级一站式湖仓构建服务,提供元数据统一管理能力。AI DataLake通过对接LakeFormation实现元数据管理和数据访问控制,因此在提交AI DataLake作业前,需要先完成LakeFormation的实例创建、元数据构建和权限配置,并在AI DataLake侧绑定实例和创建端点,打通两者之间的数据 - [查看作业运行历史](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0055.md): 在数据处理流程中,用户通常需要追溯不同计算引擎作业的执行状态与历史记录以进行运维分析或故障排查。AI DataLake支持作业运行历史查询功能,支持查看Aura、Ray及Spark作业的运行历史,支持通过名称、作业ID或作业状态筛选作业,展示运行的端点名称与端点显示名称,帮助用户精准识别作业执行上下文,提升作业管理的可观测性与操作便捷性。 - [监控AI DataLake计算资源池](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0056.md): 在日常运维工作中,管理员需要实时掌握计算资源池的运行状态,了解CPU、内存、NPU、GPU的使用率情况。通过可视化监控,管理员可以:直观了解资源池中各类资源的实时使用情况。判断是否需要进行资源池的扩缩容操作。优化资源管理,避免资源浪费或不足。保障业务稳定,及时发现资源瓶颈。如果当前空间未购买计算资源池,则不显示计算资源监控数据,可以单击“ - [使用LTS管理AI DataLake作业日志](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0057.md): 在大数据作业开发、调试和线上运维过程中,用户对日志的实时查看、检索和分析能力提出了更高的要求。为了提高日志管理的效率和用户体验,AI DataLake提供了将Job标准输出日志自动投递到云日志服务(Log Tank Service,简称LTS)的功能。只需在AI DataLake控制台配置端点绑定LTS,系统将自动完成日志的实时采集、查询 - [使用CTS审计AI DataLake服务](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0058.md): 通过云审计服务,您可以记录与AI DataLake服务相关的操作事件,便于日后的查询、审计和回溯。关于如何开通云审计服务以及如何查看追踪事件,请参考《云审计服务快速入门》中的相关章节。关于云审计服务事件结构的关键字段详解,请参见《云审计服务用户指南》中的事件结构和事件样例。 - [使用AI DataLake镜像](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0059.md): 在企业级AI训练场景中,用户通常需要依赖特定的软件环境来构建和优化模型,但当前系统缺乏统一的镜像管理能力,导致用户需自行维护镜像环境,无法将常用软件环境沉淀为可复用的资产。这种分散的管理方式不仅增加了环境配置的复杂性,还可能导致版本混乱和资源浪费。为解决这一问题,系统新增镜像管理功能,支持客户通过统一界面注册、查询、修改和删除自定义镜像, - [购买存储资源](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0061.md): 在企业级AI训练、大规模数据处理等场景中,用户需频繁操作高性能共享存储资源以满足业务需求。当前用户需分别在多个服务中完成存储资源创建、网络配置及挂载操作,涉及NFS路径配置、跨服务权限校验等复杂流程,导致操作效率低下且易因配置错误引发服务异常。AI DataLake提供存储资源功能,用户可通过单一界面完成存储资源的创建、扩容、挂载及监控, - [管理存储资源](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0062.md): 创建存储资源后,可以查看资源的详细信息、关联的端点和监控信息。查看存储资源信息:在存储资源列表中,可以查看已创建存储资源的名称/ID、状态、资源类型、容量、计费模式、创建人、创建时间等信息。查看所有存储资源监控:单击列表上方“查看监控”,可以查看所有存储资源的监控信息,详细介绍请参考监控AI DataLake存储资源。查看所有存储操作记录 - [调整存储资源容量](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0063.md): 如果当前存储资源容量不满足业务使用,可以对存储资源进行扩容。扩容上限与创建存储资源时所选择的存储规格相关。扩容操作建议在业务低峰期执行。当前支持在线扩容,不影响现有数据。扩容期间,挂载操作可能受限,且活动连接可能产生秒级I/O抖动。操作前请务必对文件系统进行备份,以防止极端情况下的数据异常。扩容成功后,系统将按照扩容后的容量进行计费。当前 - [Spark端点类型概述](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0064.md): 在AI DataLake服务中,端点是用户与AI DataLake引擎和计算资源交互的入口,其本质是“计算引擎”与“计算资源”的绑定,使得提交的作业可以访问AI DataLake的引擎并使用AI DataLake的计算资源。端点的优势:自动绑定引擎和计算资源池:创建端点时,AI DataLake自动将引擎和计算资源池绑定,在后续提交作业时 - [创建Spark引擎端点](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0065.md): 在提交Spark作业前,用户需要先创建Spark引擎端点,这是与AI DataLake引擎建立连接的第一步。Spark引擎端点相当于一个计算资源的入口,通过这个端点,用户可以与AI DataLake引擎进行交互,提交各种数据处理和分析任务。端点创建完成后,用户可以使用该端点创建和运行Spark作业,包括执行Spark SQL查询、运行Sp - [管理Spark端点的详细信息](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0066.md): Spark端点创建完成后您可以通过管理控制台查看和管理您的端点。本节介绍如何在管理控制台查看端点基本信息(如端点类型、Spark参数、存储配置等),以及修改和删除端点。在端点的详情页面分页签呈现了端点的基本信息、集群配置信息、作业运行历史。单击详情页面右上角的“修改”即可编辑端点的信息。如果端点不再使用,您可以单击“删除”,删除端点。如果 - [查看Spark端点的资源及作业监控信息](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0067.md): 日常运维中,管理员需实时掌握SparkJob端点、SparkSQL端点的资源使用情况和作业状态监控信息。通过可视化监控,运维人员可以:直观了解端点的资源实时使用情况。直观了解端点的各类作业的数量统计。根据作业状态判断是否需要取消作业运行。分析资源使用趋势,优化资源管理,避免资源浪费或不足。及时发现资源瓶颈或作业异常,保障业务稳定。设置监控 - [查看LakeFormation元数据](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0069.md): LakeFormation元数据是AI DataLake作业访问数据的基础,支持通过以下两种方式查看和管理:方式一:在AI DataLake管理控制台通过"数据目录"界面,查看已对接的LakeFormation实例中的Catalog、数据库、表、函数的详细信息及权限配置。方式二:在LakeFormation管理控制台直接查看和管理元数据。 - [监控AI DataLake存储资源](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0071.md): AI DataLake支持查看存储资源的监控信息,方便管理员在日常运维工作中,实时掌握存储资源的运行状态,了解带宽使用、容量使用、Inode使用等信息。通过可视化监控,管理员可以:直观了解存储资源中各类资源的实时使用情况。判断是否需要进行存储资源的扩容操作。优化资源管理,避免资源浪费或不足。保障业务稳定,及时发现资源瓶颈。如果当前空间未购 - [Ray引擎端点概述](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0072.md): 在AI DataLake服务中,端点是用户与AI DataLake引擎和计算资源交互的入口,其本质是“计算引擎”与“计算资源”的绑定,使得提交的作业可以访问AI DataLake的引擎并使用AI DataLake的计算资源。端点的优势:自动绑定引擎和计算资源池:创建端点时,AI DataLake自动将引擎和计算资源池绑定,在后续提交作业时 - [创建Ray引擎端点](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0073.md): 创建Ray端点是用户与AI DataLake引擎服务建立连接的核心操作。通过Ray端点,您可以与AI DataLake引擎进行交互,执行各种数据处理和分析任务。本节操作介绍创建Ray引擎端点的操作步骤。已创建工作空间,详细操作请参见创建工作空间。已创建计算资源,详细操作请参见购买预留资源池。请您根据实际业务场景,选择创建不同的端点:Ray - [管理Ray引擎端点](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0074.md): Ray端点创建成功后,您可以在端点列表查看详细信息,也可以编辑或删除端点。查看端点基本信息,包括端点显示名称、端点名称、端点类型、资源模式等信息。关于状态的具体说明,请参见表1。您可以在搜索框通过端点“名称”、“类型”、“状态”或“标签”搜索需要的端点。端点状态说明参数说明状态端点状态。创建中:正在创建的端点。运行中:端点创建成功,且正在 - [查看Aura资源监控](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0075.md): 在日常运维工作中,管理员可以通过可视化监控实时掌握AuraJob和AuraJobV2端点的资源使用情况,直观了解资源池中各类资源的实时占用,判断是否需要扩缩容,优化资源配置以避免浪费或不足,及时发现资源瓶颈并保障业务稳定运行。单击指标右上角的,可以查看指标的详细信息。AuraJobV2端点资源监控指标指标分类监控指标指标名称单位说明CPU - [委托概述](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0077.md): AI DataLake需要与其他云服务协同工作。您需要创建云服务委托,将操作权限委托给AI DataLake服务,让AI DataLake以您的身份访问其他云服务资源,以完成数据分析、日志记录和监控等任务。AI DataLake服务需要配置委托的场景如表1所示。 - [创建自定义委托](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0078.md): 在开发作业过程中,如需要访问外部服务(如OBS进行数据上传或下载),需在创建RayCluster和RayJob端点或者SparkSQL和SparkJob端点时配置相应的权限委托。权限委托是访问外部服务的必要条件,需用户自行创建并配置。本节操作主要介绍如何创建自定义委托、完成服务授权,并在作业配置中添加新建的委托的操作步骤。登录IAM控制台 - [查看Ray端点的作业监控信息](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0080.md): 在日常运维工作中,您可以通过可视化监控实时掌握Ray端点的作业运行详情,判断是否需要取消作业、优化资源管理,避免浪费或不足,保障业务稳定运行。单击指标右上角的,可以查看指标的详细信息。指标名称监控指标单位指标说明成功作业数JOB_SUCCEED_COUNTCount当前端点已运行成功的作业数统计,并计算出作业数最大值、最小值、平均值。失败 - [会话管理](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0081.md): 会话是客户端与数据库服务器之间建立的一个持久化连接通道,在这个连接存活期间,双方可以持续进行交互(发送SQL语句、接收结果)。您可以查看AuraJobV2端点下的SQL会话信息和SQL运行情况,如果不再需要某个会话,可以关闭会话,及时释放资源。仅AuraJobV2支持此功能。已在AuraJobV2端点提交作业。您可以查看会话的信息,也可以 - [查看Aura作业监控](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0082.md): 在运维场景中,您可以通过可视化界面查看AuraJob和AuraJobV2端点下作业的整体运行情况和单个作业的详细监控信息,实时掌握作业执行状态,合理规划资源配置,保障业务稳定运行。您可以查看AuraJob和AuraJobV2端点下所有作业的运行情况。单击指标右上角的,可以查看指标的详细信息。AuraJob端点监控指标指标名称监控指标单位指 - [常见场景的委托权限策略](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0083.md): 本节操作提供了AI DataLake常见场景的委托权限策略,用于用户自定义权限时配置委托的权限策略。适用场景:在Ray、Spark作业场景中,允许AI DataLake读写OBS将日志转储。委托策略中的“Resource”区域,请将bucketName替换为对应桶的名称。适用场景:在Spark作业场景中,允许AI DataLake访问La - [查看Web UI](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0084.md): Spark作业运行过程中,作业的执行阶段、任务分配、资源使用等运行信息分散在集群各节点中,您难以直观掌握作业整体运行情况。通过Web UI,您可以以Web界面的形式实时查看作业的DAG执行图、Stage和Task详情、Executor资源使用情况及SQL执行计划等信息,从而可以高效地进行作业监控、性能瓶颈分析和资源调优。Web UI是用于 - [查看作业性能指标](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0085.md): 查看作业性能指标,包括Spark执行计划、性能统计(执行时间、内存占用、数据量)、算子指标及任务健康度等信息,助您快速理解执行流程与性能表现。进入过运行状态的SparkSQL作业都支持查看作业性能指标。从作业运行历史页面进入在“作业开发”>“作业运行历史”页面,单击“批处理引擎Spark”,切换端点类型为SparkSQL。单击目标作业“操 - [Spark Native算子优化](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0086.md): Spark Native引擎是Apache Spark的一个核心组件,用于提高Spark SQL计算性能而设计。通过使用向量化的C++加速库(Velox),实现对Spark算子性能加速。开启Spark Native引擎特性,可以提升Spark SQL的作业性能,减少CPU和内存的消耗。Native引擎在Spark的执行层与原生代码之间建立 - [Spark SQL场景的LakeFormation授权](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0088.md): 在提交Spark SQL作业前,IAM用户需完成LakeFormation的IAM细粒度授权和SQL资源授权(包括元数据、数据库、表、列、函数及OBS路径),以确保作业能够正常访问所需数据。本节介绍Spark SQL场景的LakeFormation授权的具体操作。使用LakeFormation资源需要分别完成LakeFormation A - [Spark Job场景的LakeFormation授权](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0089.md): 提交Spark Job作业前,需通过委托完成LakeFormation的IAM细粒度授权和SQL资源授权(包括元数据、数据库、表、列和函数),以确保作业在Spark集群后台运行时能够正常访问所需数据。本节介绍Spark Job场景的LakeFormation授权的具体操作。在使用LakeFormation资源需要分别完成LakeForma - [使用History Server查看历史作业](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0093.md): Ray集群终止或作业结束后,作业日志等信息将一并丢失,您无法回溯历史作业数据。开启History Server功能后,作业运行数据将存储在OBS桶中,集群终止或作业结束后,您仍可通过Web UI查看OBS桶中的历史作业和日志等信息,从而可以高效地进行作业分析、故障排查和性能优化。如果您需要查看正在运行的作业信息,请参见查看作业运行历史。本 - [AuraJobV2场景的LakeFormation授权](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0094.md): AuraJobV2作业提交前,IAM用户需完成“IAM云服务授权”和“LakeFormation资源授权”,确保作业能正常访问LakeFormation的数据和元数据资源。IAM服务提供了用户和用户组的访问权限的方式。您可以在IAM控制台中创建自定义策略(Policy),定义可以调用哪些LakeFormation的API。然后,将这些策略 - [查看Flow Insight视图](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0095.md): Ray Dashboard提供了基础集群监控功能,但在分布式AI计算场景中,您可能面临作业执行过程难以追踪、资源利用率难以优化、跨节点日志难以排查等问题。Ray集成Flow Insight后,您可以通过Web UI查看逻辑视图、物理视图、分布式栈、火焰图、甘特图等,从不同角度分析作业运行状态,进行性能调优,提升排障效率与资源利用率。已提交 - [管理AI DataLake标签](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0096.md): AI DataLake支持为工作空间、计算资源池和端点三类资源添加标签。标签以键值对的形式对资源进行标记,助力资源分类与检索,提升资源管理效率。在创建工作空间、计算资源池和端点时,可在创建页面的标签区域添加标签。系统支持选择预定义标签和自定义输入标签两种方式,具体的标签命名规则请参见表1。选择预定义标签如果您需要使用同一标签标识多种云资源 - [查看Ray Dashboard](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0097.md): 您可以通过Ray自带的Dashboard查看Ray集群的作业执行状态、资源使用情况、任务及Actor运行详情和日志等信息,便于您进行作业监控与故障排查。仅支持端点创建者查看。关于Ray Dashboard的更多信息,请参见Ray官网文档。查看RayJob端点的Dashboard之前,您需要先开启History Server。具体操作,请参 - [权限与委托概述](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0101.md): AI DataLake的权限配置涉及两类机制:IAM授权和委托。本节内容系统地介绍权限与委托分别解决什么问题,以及在不同场景下需要配置哪种权限。授权是授予IAM用户访问某个云服务或某些API的调用权限。在AI DataLake云服务操作场景中,常见的IAM授权如表2所示。委托解决的是AI DataLake服务如何以您的身份访问其他云服务的 - [IAM授权类型和使用场景](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0103.md): 统一身份认证服务(Identity and Access Management,简称IAM)提供权限管理的基础服务,包括用户身份认证、权限分配、访问控制等功能,可以帮助您安全地控制云上资源的访问,并进行精细的权限管理。IAM可以授权不同企业用户对云服务资源的访问范围。例如您的员工中有负责数据分析的人员,若希望其拥有AI DataLake的 - [IAM授权的主体](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0104.md): 在IAM(Identity and Access Management)体系中,授权主体主要分为用户和用户组。通过与企业项目(Enterprise Project)结合,可以实现对资源的分组隔离和精细化权限控制。企业项目是提供的一种资源分组管理功能,用于将资源划分为不同的逻辑单元,实现资源的分组隔离和权限控制。在使用IAM授权时通过将IA - [对接LakeFormation场景授权操作说明](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0107.md): LakeFormation作为元数据与权限统一管理服务,负责对数据目录、数据库和表进行细粒度权限隔离。创建元数据后,需要为用户或委托配置数据访问权限,确保作业能够正常访问所需的元数据和数据资源。对接LakeFormation场景的权限管理分为两个层面:IAM云服务授权/委托:授权IAM用户或用户组使用LakeFormation服务的权限, ## API参考 - [添加自定义镜像版本 - AddV2ImageVersion](https://support.huaweicloud.com/api-aidatalake/AddV2ImageVersion.md): 为已有镜像添加新版本。用户通过该接口为已注册的镜像添加新的版本。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。POST /v2/workspaces/{workspace_id}/images/{image_id}/versions状态码:200状态码:400状态码:401状态码:403状态码:404状态码:500为已 - [附加策略 - AttachV2AgencyPolicy](https://support.huaweicloud.com/api-aidatalake/AttachV2AgencyPolicy.md): 为委托附加策略。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。POST /v2/agencies/{agency_name}/policies状态码:200状态码:400状态码:401状态码:403状态码:404状态码:408状态码:500为委托附加AI_DATALAKE_OBS_POLICY策略。状态码:200请求成 - [批量添加资源标签 - BatchCreateV2ResourceTags](https://support.huaweicloud.com/api-aidatalake/BatchCreateV2ResourceTags.md): 资源批量添加标签。此接口为同步接口,无配套使用接口。创建时,不允许设置重复key数据,如果数据库已存在该key,就覆盖value的值。请参见如何调用API。POST /v2/{project_id}/{resource_type}/{resource_id}/tags/create状态码:204状态码:400状态码:401状态码:403状 - [批量删除资源标签 - BatchDeleteV2ResourceTags](https://support.huaweicloud.com/api-aidatalake/BatchDeleteV2ResourceTags.md): 标签资源批量删除标签。此接口为同步接口,无配套使用接口。删除时,如果删除的标签不存在,默认处理成功,删除时不对标签字符集范围做校验。删除时tags结构体不能缺失,key不能为空或者空字符串。请参见如何调用API。POST /v2/{project_id}/{resource_type}/{resource_id}/tags/delete状 - [取消SQL执行 - CancelAuraV2SqlStatement](https://support.huaweicloud.com/api-aidatalake/CancelAuraV2SqlStatement.md): 取消SQL语句执行。 用户可通过该接口取消SQL语句执行,输入为SQL Session id、statement id,返回操作结果。 此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。POST /v2/workspaces/{workspace_id}/aura-sessions/{session_id}/stateme - [取消作业运行 - CancelRayJob](https://support.huaweicloud.com/api-aidatalake/CancelRayJob.md): 取消作业运行。主要使用于取消运行Ray Job场景。本接口为异步接口,当前取消作业运行请求下发成功后会返回job_id,此时取消作业运行并没有立即完成,需要通过调用查看Ray作业详情查询Job状态,当Job状态为CANCELED时代表取消作业运行成功。请参见如何调用API。POST /v2/workspaces/{workspace_id - [取消Spark作业执行 - CancelSparkJob](https://support.huaweicloud.com/api-aidatalake/CancelSparkJob.md): 取消正在执行的Spark作业,此接口为同步接口。调用成功后,作业将被终止执行,直接返回取消结果。请参见如何调用API。POST /v2/workspaces/{workspace_id}/spark-jobs/{job_id}/cancel状态码:204状态码:400状态码:401状态码:403状态码:500取消正在运行或排队中的Spar - [取消SparkSql作业执行 - CancelSparkSql](https://support.huaweicloud.com/api-aidatalake/CancelSparkSql.md): 取消正在运行或排队中的SparkSql作业,此接口为同步接口。只能取消处于QUEUED或RUNNING状态的作业,调用成功后直接返回取消结果。请参见如何调用API。POST /v2/workspaces/{workspace_id}/spark-sqls/{statement_id}/cancel状态码:204状态码:400状态码:401 - [关闭Session - CloseAuraV2SqlSession](https://support.huaweicloud.com/api-aidatalake/CloseAuraV2SqlSession.md): 关闭SQL Session。用户可通过此接口关闭SQL Session,输入为Session id,返回操作结果。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。DELETE /v2/workspaces/{workspace_id}/aura-sessions/{session_id}状态码:204状态码:400状态码 - [关闭交互式会话 - CloseRaySession](https://support.huaweicloud.com/api-aidatalake/CloseRaySession.md): 关闭一个已存在的交互式会话,将会话状态设置为成功。本接口为同步接口。请参见如何调用API。DELETE /v2/workspaces/{workspace_id}/ray-sessions/{session_id}状态码:200状态码:400状态码:401状态码:404状态码:408状态码:500关闭一个已存在的交互式会话,将会话状态设置 - [查询资源实例数量 - CountV2TagResources](https://support.huaweicloud.com/api-aidatalake/CountV2TagResources.md): 通过标签查询资源实例数量。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。POST /v2/{project_id}/{resource_type}/resource-instances/count状态码:200状态码:400状态码:401状态码:403状态码:404状态码:408状态码:500基于标签过滤统计资源数量, - [创建Session - CreateAuraV2SqlSession](https://support.huaweicloud.com/api-aidatalake/CreateAuraV2SqlSession.md): 创建SQL Session。用户通过此接口在指定端点创建SQL Session,通过输入端点id、LakeFormation配置,返回Session信息。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。POST /v2/workspaces/{workspace_id}/aura-sessions状态码:200状态码:4 - [创建交互式会话 - CreateRaySession](https://support.huaweicloud.com/api-aidatalake/CreateRaySession.md): 创建一个交互式会话。本接口为同步接口,用于Notebook等交互式工具连接Ray集群。联邦用户认证场景下,会返回含联邦用户身份对应的凭据名称。请参见如何调用API。POST /v2/workspaces/{workspace_id}/ray-sessions状态码:200状态码:400状态码:401状态码:404状态码:408状态码:50 - [创建服务委托 - CreateV2Agency](https://support.huaweicloud.com/api-aidatalake/CreateV2Agency.md): 创建服务委托,将指定权限策略授权给AI DataLake服务。用户可通过传入支持的委托权限策略,选择性地授予相应权限。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。POST /v2/agencies状态码:200状态码:400状态码:401状态码:403状态码:404状态码:408状态码:500用户为AI DataLa - [创建计算资源 - CreateV2Compute](https://support.huaweicloud.com/api-aidatalake/CreateV2Compute.md): 创建计算资源,支持传入名称、描述、容量、属性和标签,返回计算资源详情。此接口为异步接口,可通过查询计算资源操作记录列表接口获取操作结果,具体请参见查询计算资源操作记录列表。请参见如何调用API。POST /v2/workspaces/{workspace_id}/computes状态码:200状态码:400状态码:401状态码:403状态 - [创建端点 - CreateV2Endpoint](https://support.huaweicloud.com/api-aidatalake/CreateV2Endpoint.md): 在工作空间下创建端点。用户可使用该接口在指定的工作空间下创建端点,输入名称、描述、引擎配置、容量等信息,返回端点信息。此接口为异步接口,可通过查询端点详情接口获取操作结果,具体请参见查询端点详情。请参见如何调用API。POST /v2/workspaces/{workspace_id}/endpoints状态码:200状态码:400状态码 - [创建工作空间 - CreateV2Workspace](https://support.huaweicloud.com/api-aidatalake/CreateV2Workspace.md): 创建工作空间。用户可通过该接口创建工作空间,支持传入名称、描述、MetaStoreID、企业项目ID和标签,返回工作空间详情。此接口为同步接口,无配套使用接口。创建工作空间接口存在同名校验,不支持创建重复名称的工作空间,并且同一账户下最多可创建5个工作空间。请参见如何调用API。POST /v2/workspaces状态码:200状态码: - [删除服务委托 - DeleteV2Agency](https://support.huaweicloud.com/api-aidatalake/DeleteV2Agency.md): 取消授权给AI DataLake服务的委托。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。DELETE /v2/agencies/{agency_name}状态码:200状态码:400状态码:401状态码:403状态码:404状态码:408状态码:500用户不再使用本服务,取消对服务的授权委托。状态码:200请求成功。 - [删除用户签署协议 - DeleteV2Agreement](https://support.huaweicloud.com/api-aidatalake/DeleteV2Agreement.md): 删除用户签署的协议。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。DELETE /v2/agreement状态码:200状态码:400状态码:401状态码:403状态码:404状态码:408状态码:500用户通过该接口删除已签署的租户协议。状态码:200请求成功。状态码:400请求参数错误。状态码:401未授权。状态码 - [删除计算资源 - DeleteV2Compute](https://support.huaweicloud.com/api-aidatalake/DeleteV2Compute.md): 删除计算资源,通过输入计算资源ID,返回操作结果。此接口为异步接口,可通过查询计算资源操作记录列表接口获取操作结果,具体请参见查询计算资源操作记录列表。请参见如何调用API。DELETE /v2/workspaces/{workspace_id}/computes/{compute_id}状态码:200状态码:400状态码:401状态码: - [删除端点 - DeleteV2Endpoint](https://support.huaweicloud.com/api-aidatalake/DeleteV2Endpoint.md): 删除端点。用户可通过该接口删除指定工作空间下的端点,输入端点ID,返回操作结果。此接口为异步接口,可通过查询端点详情接口获取操作结果,具体请参见查询端点详情。请参见如何调用API。DELETE /v2/workspaces/{workspace_id}/endpoints/{endpoint_id}状态码:200状态码:400状态码:40 - [删除镜像下所有版本 - DeleteV2Image](https://support.huaweicloud.com/api-aidatalake/DeleteV2Image.md): 删除指定镜像下的所有版本。用户可通过该接口删除不再需要的镜像及其所有版本。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。DELETE /v2/workspaces/{workspace_id}/images/{image_id}状态码:200状态码:400状态码:401状态码:403状态码:404状态码:500删除指定 - [删除指定镜像版本 - DeleteV2ImageVersion](https://support.huaweicloud.com/api-aidatalake/DeleteV2ImageVersion.md): 删除指定镜像版本。用户可通过该接口删除指定镜像的某个不再使用的版本。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。DELETE /v2/workspaces/{workspace_id}/images/{image_id}/versions/{version_id}状态码:200状态码:400状态码:401状态码:40 - [删除工作空间 - DeleteV2Workspace](https://support.huaweicloud.com/api-aidatalake/DeleteV2Workspace.md): 删除工作空间。此接口为同步接口,无配套使用接口。在该工作空间下存在计算资源、端点以及App的情况下无法删除,需要先清除该工作空间下创建的各种资源后才能删除。请参见如何调用API。DELETE /v2/workspaces/{workspace_id}状态码:200状态码:400状态码:401状态码:403状态码:404状态码:408状态码 - [移除策略 - DetachV2AgencyPolicy](https://support.huaweicloud.com/api-aidatalake/DetachV2AgencyPolicy.md): 为委托移除关联策略。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。DELETE /v2/agencies/{agency_name}/policies/{policy_name}状态码:200状态码:400状态码:401状态码:403状态码:404状态码:408状态码:500为委托移除AI_DATALAKE_OBS_P - [错误码](https://support.huaweicloud.com/api-aidatalake/ErrorCode.md): 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 - [在指定Session中执行SQL - ExecuteAuraV2SqlStatement](https://support.huaweicloud.com/api-aidatalake/ExecuteAuraV2SqlStatement.md): 在指定的Session下执行SQL语句。用户可通过此接口执行SQL语句,输入为SQL语句、SQL Session id、绑定参数等信息,返回语句执行结果或statement id。此接口支持异步和同步两种执行模式,由入参is_sync参数决定。如果是异步执行,配套使用接口ShowSqlStatementResult查询语句结果。如果是同步 - [查看指定Session下的SQL执行记录 - ListAuraV2SessionStatementRecords](https://support.huaweicloud.com/api-aidatalake/ListAuraV2SessionStatementRecords.md): 查询指定Session下的SQL执行记录。输入workspace_id,session_id,statement_id(可选),status(可选),分页查询参数limit和marker;输出此会话下SQL执行记录。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/workspaces/{workspace - [查看Session列表 - ListAuraV2SqlSessions](https://support.huaweicloud.com/api-aidatalake/ListAuraV2SqlSessions.md): 查询SQL Session列表。输入workspace_id,endpoint_name(可选),status(可选),session_id(可选),start_time(可选),end_time(可选),分页查询参数limit和marker;输出SQL会话列表,包含会话id、会话创建时间、结束时间、会话状态等信息。此接口为同步接口,无配 - [查看SQL执行记录 - ListAuraV2StatementRecords](https://support.huaweicloud.com/api-aidatalake/ListAuraV2StatementRecords.md): 查询SQL执行记录。 查询指定Session下的SQL执行记录。 输入workspace_id,session_id,statement_id(可选),status(可选),分页查询参数limit和marker;输出此会话下SQL执行记录。 此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/workspac - [查询Ray作业列表 - ListRayJobs](https://support.huaweicloud.com/api-aidatalake/ListRayJobs.md): 列举所有Ray作业。列举工作空间下的作业,分页返回。支持按作业名称、id、端点等信息查询,接口分页返回作业列表。本接口为同步接口,当前列举所有Ray作业请求下发后会返回结果。请参见如何调用API。GET /v2/workspaces/{workspace_id}/ray-jobs状态码:200状态码:400状态码:401状态码:404状态 - [查询Spark作业列表 - ListSparkJobs](https://support.huaweicloud.com/api-aidatalake/ListSparkJobs.md): 查询工作空间下Spark作业列表,此接口为同步接口。支持按作业ID、作业名称、作业状态、作业类型、创建时间等条件过滤查询,支持分页查询,调用成功后直接返回作业列表数据。请参见如何调用API。GET /v2/workspaces/{workspace_id}/spark-jobs状态码:200状态码:400状态码:401状态码:403状态码 - [查询SparkSql作业列表 - ListSparkSqls](https://support.huaweicloud.com/api-aidatalake/ListSparkSqls.md): 查询工作空间下SparkSql作业列表,此接口为同步接口。支持按作业状态、创建时间、SQL片段等条件进行过滤查询,调用成功后直接返回作业列表数据。可通过查看SparkSql作业详情接口查看作业详细信息。请参见如何调用API。GET /v2/workspaces/{workspace_id}/spark-sqls状态码:200状态码:400 - [查询系统协议 - ListV2AgreementRule](https://support.huaweicloud.com/api-aidatalake/ListV2AgreementRule.md): 查询系统内置的租户协议内容列表,用户可从中了解协议名称、版本等信息。该接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/agreement/rules状态码:200状态码:400状态码:401状态码:403状态码:404状态码:408状态码:500查询系统协议列表。状态码:200请求成功。状态码:400请求参 - [查询所有端点列表 - ListV2AllEndpoints](https://support.huaweicloud.com/api-aidatalake/ListV2AllEndpoints.md): 列举该租户所有端点列表。用户可使用该接口列举该租户端点列表,支持输入名称、类型等参数过滤,支持分页查询。此接口为同步接口。请参见如何调用API。GET /v2/endpoints状态码:200状态码:400状态码:401状态码:403状态码:404状态码:500查询所有端点列表,通过名称过滤,返回端点简要信息。状态码:200请求成功。查询 - [查询计算资源操作记录列表 - ListV2ComputeVersions](https://support.huaweicloud.com/api-aidatalake/ListV2ComputeVersions.md): 查询计算资源操作记录列表。此接口为同步接口。请参见如何调用API。GET /v2/workspaces/{workspace_id}/computes/versions状态码:200状态码:400状态码:401状态码:403状态码:404状态码:500查询指定工作空间下的计算资源操作记录。工作空间的ID为“workspace_id”。状态 - [查询计算资源列表 - ListV2Computes](https://support.huaweicloud.com/api-aidatalake/ListV2Computes.md): 查询工作空间下的计算资源列表。用户可通过该接口获取符合过滤条件的计算资源列表,接口支持分页查询、支持通过名称、ID等参数过滤。此接口为同步接口。请参见如何调用API。GET /v2/workspaces/{workspace_id}/computes状态码:200状态码:400状态码:401状态码:403状态码:404状态码:500查询指 - [查询端点列表 - ListV2Endpoints](https://support.huaweicloud.com/api-aidatalake/ListV2Endpoints.md): 列举工作空间下的端点列表。用户可使用该接口列举指定工作空间下的端点列表,支持输入名称、id等参数过滤,支持分页查询。此接口为同步接口。请参见如何调用API。GET /v2/workspaces/{workspace_id}/endpoints状态码:200状态码:400状态码:401状态码:403状态码:404状态码:500查询指定工作空 - [查看自定义镜像版本列表 - ListV2ImageVersions](https://support.huaweicloud.com/api-aidatalake/ListV2ImageVersions.md): 查看自定义镜像版本列表。用户可查询指定镜像下的所有版本信息。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/workspaces/{workspace_id}/images/{image_id}/versions状态码:200状态码:400状态码:401状态码:403状态码:500查询某镜像下所有版本信息 - [查看自定义镜像列表 - ListV2Images](https://support.huaweicloud.com/api-aidatalake/ListV2Images.md): 查看自定义镜像列表。用户可查询已创建的自定义镜像列表。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/workspaces/{workspace_id}/images状态码:200状态码:400状态码:401状态码:403状态码:404状态码:408状态码:500查询自定义镜像列表。用于查看当前工作空间下 - [查询项目标签 - ListV2ProjectTags](https://support.huaweicloud.com/api-aidatalake/ListV2ProjectTags.md): 查询指定项目关联的标签列表。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/{project_id}/{resource_type}/tags状态码:200状态码:400状态码:401状态码:403状态码:408状态码:500查询项目下指定资源类型的标签。项目ID为“project_id”,资源类型为“r - [查询资源标签 - ListV2ResourceTags](https://support.huaweicloud.com/api-aidatalake/ListV2ResourceTags.md): 查询资源的标签。用于查询资源的标签,返回对应资源的标签。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/{project_id}/{resource_type}/{resource_id}/tags状态码:200状态码:400状态码:401状态码:403状态码:408状态码:500查询指定资源已关联的标签 - [查询资源实例列表 - ListV2TagResources](https://support.huaweicloud.com/api-aidatalake/ListV2TagResources.md): 通过标签查询资源列表。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。POST /v2/{project_id}/{resource_type}/resource-instances/filter状态码:200状态码:400状态码:401状态码:403状态码:408状态码:500基于标签过滤的资源列表,具体请求示例如下。 - [查询工作空间列表 - ListV2Workspaces](https://support.huaweicloud.com/api-aidatalake/ListV2Workspaces.md): 查询工作空间列表。用户可通过该接口获取符合过滤条件的工作空间列表,接口支持分页查询、支持通过名称、ID等参数过滤。此接口为同步接口。请参见如何调用API。GET /v2/workspaces状态码:200状态码:400状态码:401状态码:403状态码:404状态码:408状态码:500查询工作空间列表。状态码:200请求成功。状态码:4 - [预览SparkSql作业查询结果 - PreviewSparkSqlResult](https://support.huaweicloud.com/api-aidatalake/PreviewSparkSqlResult.md): 预览SparkSql作业的查询结果,此接口为同步接口。仅适用于执行成功的DQL类型作业,可查看作业返回的数据内容,调用成功后直接返回查询结果数据。可通过查看SparkSql作业详情接口查看作业详细信息。请参见如何调用API。POST /v2/workspaces/{workspace_id}/spark-sqls/{statement_i - [注册自定义镜像 - RegisterV2Image](https://support.huaweicloud.com/api-aidatalake/RegisterV2Image.md): 注册自定义镜像。用户通过该接口将外部镜像仓库中的镜像注册到工作空间中,以便后续使用。与添加自定义镜像版本接口配合完成镜像版本的添加。此接口为同步接口。请参见如何调用API。POST /v2/workspaces/{workspace_id}/images状态码:200状态码:400状态码:401状态码:403状态码:404状态码:408状 - [重启SparkSql集群 - RestartSparkSqlCluster](https://support.huaweicloud.com/api-aidatalake/RestartSparkSqlCluster.md): 重启SparkSql集群,该接口为异步接口,接口调用成功后会返回操作ID(operation_id),您可以通过查询Spark异步操作状态接口查询操作执行结果,详情请参见查询Spark异步操作状态。重启集群会导致正在运行的作业被终止,请提前做好数据保存。重启集群会导致正在运行的作业被终止,请提前做好数据保存。不同的restart_stra - [运行作业 - RunRayJob](https://support.huaweicloud.com/api-aidatalake/RunRayJob.md): 运行Ray作业。本接口为异步接口,当前运行作业请求下发成功后会返回job_id,此时运行作业并没有立即完成,需要通过调用查看Ray作业详情查询Job状态,当Job状态为SUCCEEDED时代表运行作业成功。请参见如何调用API。POST /v2/workspaces/{workspace_id}/ray-jobs状态码:202状态码:40 - [启动Spark作业 - RunSparkJob](https://support.huaweicloud.com/api-aidatalake/RunSparkJob.md): 启动Spark作业,此接口为异步接口。支持Spark Jar作业、Python作业和SQL Script作业。调用该接口后,作业将提交到队列等待执行,返回作业ID后需通过查询作业状态接口确认作业是否成功启动。查询作业状态请参见查询Spark作业的状态。请参见如何调用API。POST /v2/workspaces/{workspace_id - [执行SparkSql作业 - RunSparkSql](https://support.huaweicloud.com/api-aidatalake/RunSparkSql.md): 执行SparkSql作业,此接口为异步接口。接口调用成功后会返回作业ID(statement_id),您可以通过查询作业状态接口查询作业执行结果,详情请参见查询SparkSql作业的状态。请参见如何调用API。POST /v2/workspaces/{workspace_id}/spark-sqls状态码:201状态码:400状态码:40 - [查看Session详情 - ShowAuraV2SqlSession](https://support.huaweicloud.com/api-aidatalake/ShowAuraV2SqlSession.md): 查询SQL Session信息。用户可通过此接口查询SQL Session信息,输入为Session id,返回操作结果。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/workspaces/{workspace_id}/aura-sessions/{session_id}状态码:200状态码:400状态 - [查看SQL执行结果 - ShowAuraV2SqlStatementResult](https://support.huaweicloud.com/api-aidatalake/ShowAuraV2SqlStatementResult.md): 查询SQL语句执行结果。用户可通过该接口查询SQL语句执行结果,输入为SQL Session id、statement id,返回执行结果。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/workspaces/{workspace_id}/aura-sessions/{session_id}/statem - [查看SQL执行算子监控记录 - ShowAuraV2StatementOperatorMetrics](https://support.huaweicloud.com/api-aidatalake/ShowAuraV2StatementOperatorMetrics.md): 查看SQL执行算子监控记录。 用户可通过该接口查看SQL执行算子监控记录,输入为SQL Session id、statement id,返回操作结果。 此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/workspaces/{workspace_id}/aura-sessions/{session_id}/ - [查看语句监控详情 - ShowAuraV2StatementQueryMetrics](https://support.huaweicloud.com/api-aidatalake/ShowAuraV2StatementQueryMetrics.md): 查询语句监控详情信息。输入workspace_id,session_id,statement_id,输出此会话下SQL监控数据。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/workspaces/{workspace_id}/aura-sessions/{session_id}/statements/{ - [查询作业详情 - ShowRayJob](https://support.huaweicloud.com/api-aidatalake/ShowRayJob.md): 查看Ray作业详情。本接口为同步接口,当前查看Ray作业详情请求下发成功后会返回结果。请参见如何调用API。GET /v2/workspaces/{workspace_id}/ray-jobs/{job_id}状态码:200状态码:400状态码:401状态码:404状态码:408状态码:500查看Ray作业详情。本接口为同步接口,当前查看 - [查看Spark作业详情 - ShowSparkJob](https://support.huaweicloud.com/api-aidatalake/ShowSparkJob.md): 查看指定Spark作业的详细信息,此接口为同步接口。包括作业ID、作业名称、作业状态、作业配置、资源配置、镜像配置等完整信息,调用成功后直接返回作业详细信息。请参见如何调用API。GET /v2/workspaces/{workspace_id}/spark-jobs/{job_id}状态码:200状态码:400状态码:401状态码:40 - [查询Spark作业的状态 - ShowSparkJobState](https://support.huaweicloud.com/api-aidatalake/ShowSparkJobState.md): 查询Spark作业的状态,此接口为同步接口。可通过作业ID查询Spark作业的当前执行状态,包括排队中、运行中、已成功、已失败等状态,调用后立即返回作业当前状态。请参见如何调用API。GET /v2/workspaces/{workspace_id}/spark-jobs/{job_id}/state状态码:200状态码:400状态码:4 - [查看Spark作业提交日志 - ShowSparkJobSubmitLog](https://support.huaweicloud.com/api-aidatalake/ShowSparkJobSubmitLog.md): 查看Spark作业的提交日志信息,用于排查作业提交过程中可能出现的问题。该接口为同步接口。请参见如何调用API。POST /v2/workspaces/{workspace_id}/spark-jobs/{job_id}/show-submit-log状态码:200状态码:400状态码:401状态码:403状态码:500查看Spark作业 - [查询Spark异步操作状态 - ShowSparkOperatorState](https://support.huaweicloud.com/api-aidatalake/ShowSparkOperatorState.md): 查询Spark异步操作的执行状态,用于获取异步操作(如重启集群等)的当前状态和执行结果。该接口为同步接口。请按需间隔一段时间轮询状态。请参见如何调用API。POST /v2/workspaces/{workspace_id}/spark-operators/{operation_id}/show-state状态码:200状态码:400状态 - [查看SparkSql作业详情 - ShowSparkSql](https://support.huaweicloud.com/api-aidatalake/ShowSparkSql.md): 查看SparkSql作业的详细信息,此接口为同步接口。包括作业状态、SQL内容、执行参数等,调用成功后直接返回作业详细信息。可通过执行SparkSql作业接口创建作业,通过查询SparkSql作业列表接口查询作业列表。请参见如何调用API。GET /v2/workspaces/{workspace_id}/spark-sqls/{stat - [查询SparkSql作业的状态 - ShowSparkSqlState](https://support.huaweicloud.com/api-aidatalake/ShowSparkSqlState.md): 查询SparkSql作业的状态,此接口为同步接口。可通过查询SparkSql作业列表接口获取statement_id,调用成功后直接返回作业当前状态。请参见如何调用API。GET /v2/workspaces/{workspace_id}/spark-sqls/{statement_id}/state状态码:200状态码:400状态码:4 - [查询服务委托 - ShowV2Agency](https://support.huaweicloud.com/api-aidatalake/ShowV2Agency.md): 查询授权给AI DataLake服务的委托。用户调用该接口查询已授权给AI DataLake的委托,以及委托中具体的权限内容。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/agencies/{agency_name}状态码:200状态码:400状态码:401状态码:403状态码:404状态码:408状态 - [查询用户是否签署协议 - ShowV2Agreement](https://support.huaweicloud.com/api-aidatalake/ShowV2Agreement.md): 查询用户是否签署协议。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/agreement状态码:200状态码:400状态码:401状态码:403状态码:404状态码:408状态码:500用户通过该接口查询已签署的租户协议。状态码:200请求成功。状态码:400请求参数错误。状态码:401未授权。状态码:4 - [查看计算资源详情 - ShowV2Compute](https://support.huaweicloud.com/api-aidatalake/ShowV2Compute.md): 查看指定计算资源的详细信息。此接口为同步接口。请参见如何调用API。GET /v2/workspaces/{workspace_id}/computes/{compute_id}状态码:200状态码:400状态码:401状态码:403状态码:404状态码:500查询计算资源详情。计算资源ID为“compute_id”。状态码:200请求成 - [查询资源池监控 - ShowV2ComputesMetrics](https://support.huaweicloud.com/api-aidatalake/ShowV2ComputesMetrics.md): 查询资源池监控CPU、MEM、NPU、GPU数据。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/workspaces/{workspace_id}/computes/metrics状态码:200状态码:400状态码:401状态码:403状态码:408状态码:500查询资源池“compute1”和“com - [查询端点详情 - ShowV2Endpoint](https://support.huaweicloud.com/api-aidatalake/ShowV2Endpoint.md): 列举工作空间下的端点详情。用户可通过该接口查询某端点详情,输入为端点ID,返回对应端点详情。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/workspaces/{workspace_id}/endpoints/{endpoint_id}状态码:200状态码:400状态码:401状态码:403状态码:40 - [查询端点配置限制 - ShowV2EndpointResourceLimit](https://support.huaweicloud.com/api-aidatalake/ShowV2EndpointResourceLimit.md): 查询指定资源池各规格的端点配置限制。用户可通过该接口查询计算资源池各规格资源大小和资源剩余量,各规格下端点可配置的cpu,mem,卡数列表。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/workspaces/{workspace_id}/endpoint-limit状态码:200状态码:400状态码:4 - [查询端点监控 - ShowV2EndpointsMetrics](https://support.huaweicloud.com/api-aidatalake/ShowV2EndpointsMetrics.md): 查询端点CPU、MEM、NPU、GPU监控数据。此接口为同步接口。请参见如何调用API。GET /v2/workspaces/{workspace_id}/endpoints/{endpoint_id}/metrics状态码:200状态码:400状态码:401状态码:403状态码:408状态码:500查询指定端点在“2026-06-16 - [查询镜像详情 - ShowV2Image](https://support.huaweicloud.com/api-aidatalake/ShowV2Image.md): 查询指定镜像的详细信息。用户可通过该接口获取单个镜像的完整配置和元数据。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/workspaces/{workspace_id}/images/{image_id}状态码:200状态码:400状态码:401状态码:403状态码:404状态码:500查询指定镜像的详 - [查看自定义镜像版本 - ShowV2ImageVersion](https://support.huaweicloud.com/api-aidatalake/ShowV2ImageVersion.md): 查看自定义镜像版本。用户可查询指定镜像版本的详细信息。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/workspaces/{workspace_id}/images/{image_id}/versions/{version_id}状态码:200状态码:400状态码:401状态码:403状态码:500查询 - [查询工作空间详细信息 - ShowV2Workspace](https://support.huaweicloud.com/api-aidatalake/ShowV2Workspace.md): 查询工作空间详细信息。用户可通过该接口查询某工作空间详情,输入为工作空间ID,返回对应工作空间详情。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。GET /v2/workspaces/{workspace_id}状态码:200状态码:400状态码:401状态码:403状态码:404状态码:408状态码:500查询指定工 - [签署租户协议 - SignV2Agreement](https://support.huaweicloud.com/api-aidatalake/SignV2Agreement.md): 签署租户协议,用户通过该接口签署租户协议。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。POST /v2/agreement状态码:200状态码:400状态码:401状态码:403状态码:404状态码:408状态码:500用户通过该接口签署租户协议,协议名称为“test_name”,协议版本为“v1”。状态码:200请 - [更新计算资源 - UpdateV2Compute](https://support.huaweicloud.com/api-aidatalake/UpdateV2Compute.md): 更新计算资源,支持修改名称、描述、容量、DNS配置、高级属性、标签等信息。此接口为异步接口,可通过查询计算资源操作记录列表接口获取操作结果,具体请参见查询计算资源操作记录列表。请参见如何调用API。PUT /v2/workspaces/{workspace_id}/computes/{compute_id}状态码:200状态码:400状态 - [更新端点 - UpdateV2Endpoint](https://support.huaweicloud.com/api-aidatalake/UpdateV2Endpoint.md): 更新端点。用户可通过该接口更新端点的名称、描述、引擎配置、容量、监控配置等。此接口为异步接口,可通过查询端点详情接口获取操作结果,具体请参见查询端点详情。请参见如何调用API。PUT /v2/workspaces/{workspace_id}/endpoints/{endpoint_id}状态码:200状态码:400状态码:401状态码: - [更新自定义镜像版本 - UpdateV2ImageVersion](https://support.huaweicloud.com/api-aidatalake/UpdateV2ImageVersion.md): 更新自定义镜像版本信息。用户通过该接口更新指定镜像版本的描述、架构、容器软件、分类等信息。与注册自定义镜像接口配合完成镜像版本管理。此接口为同步接口。请参见如何调用API。PUT /v2/workspaces/{workspace_id}/images/{image_id}/versions/{version_id}状态码:200状态码: - [更新工作空间 - UpdateV2Workspace](https://support.huaweicloud.com/api-aidatalake/UpdateV2Workspace.md): 更新工作空间。用户可通过该接口更新工作空间,支持传入名称、描述、标签,返回更新后的工作空间详情。此接口为同步接口,无配套使用接口和特殊场景。请参见如何调用API。PUT /v2/workspaces/{workspace_id}状态码:200状态码:400状态码:401状态码:403状态码:404状态码:408状态码:500更新工作空间名 - [使用前必读](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0001.md): 欢迎使用智能数据湖(AI DataLake)。AI DataLake是华为云构建的企业级多模态智能数据分析与管理平台,为您提供构建AI时代数据基础设施的完整能力。AI DataLake提供多模数据引擎Aura、AI计算引擎Ray、批处理引擎Spark和流处理引擎Flink四大核心计算引擎,聚焦多模数据处理、异构算力混合调度,开放湖仓处理, - [API概览](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0002.md): AI DataLake提供的符合RESTful API设计规范的接口,如表1所示。AuraJobV2业务接口,包括创建、获取、查询、关闭session,执行SQL及获取执行记录,获取Statement结果与执行状态、取消Statement执行,查询语句监控详情和SQL执行算子监控记录等接口。RayJob管理接口,包括作业的查询、运行和取消 - [构造请求](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0004.md): 本节介绍REST API请求的组成,并以调用IAM服务的管理员创建IAM用户说明如何调用API,该API获取用户的Token,Token可以用于调用其他API时鉴权。您还可以通过这个视频教程了解如何构造请求调用API:https://bbs.huaweicloud.com/videos/102987 。请求URI由如下部分组成:{URI- - [认证鉴权](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0005.md): 调用接口当前支持Token认证方式,您可以通过Token认证方式进行认证鉴权。Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来, - [返回结果](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0006.md): 请求发送以后,您会收到响应,包含状态码、响应消息头和消息体。状态码是一组从1xx到5xx的数字代码,状态码表示了请求响应的状态,完整的状态码列表请参见状态码。对于管理员创建IAM用户接口,如果调用后返回状态码为201,则表示请求成功。对应请求消息头,响应同样也有消息头,如Content-Type。对于管理员创建IAM用户接口,返回如图1所 - [权限及授权项说明](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0021.md): 如果您需要对您所拥有的智能数据湖(AI DataLake)进行精细的权限管理,您可以使用统一身份认证服务(Identity and Access Management,简称IAM),如果华为账号所具备的权限功能已经能满足您的要求,您可以跳过本章节,不影响您使用AI DataLake服务的其他功能。通过IAM,您可以通过授权控制主体(IAM - [策略授权参考](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0022.md): 本章节介绍AI DataLake服务策略授权场景下支持的策略授权项。策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下:权限:允许或拒绝某项操作。对应API接口:自定义策略实际调用的API接口。授权项:自定义 - [身份策略授权参考](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0023.md): 云服务在IAM预置了常用授权项,称为系统身份策略。如果IAM系统身份策略无法满足授权要求,管理员可以根据各服务支持的授权项,创建IAM自定义身份策略来进行精细的访问控制,IAM自定义身份策略是对系统身份策略的扩展和补充。除IAM服务外,Organizations服务中的服务控制策略(Service Control Policy,以下简称S - [状态码](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0027.md): 状态码如表1所示。 - [获取项目ID](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0029.md): 在调用接口的时候,部分URL中需要填入项目编号(project_id),所以需要获取到项目编号。项目编号获取步骤如下:登录AI DataLake管理控制台。鼠标移动到右上角的用户名处,在下拉列表中单击“我的凭证”。在“API凭证”页面的项目列表中查看项目ID。多项目时,展开“所属区域”,从“项目ID”列获取子项目ID。项目ID可以通过调用 - [获取账号ID](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0030.md): 在调用接口的时候,部分URL中需要填入账号ID(domain-id),所以需要先在管理控制台上获取到账号ID。账号ID获取步骤如下:登录AI DataLake管理控制台。鼠标移动到右上角的用户名处,在下拉列表中单击我的凭证。在“API凭证”页面中查看账号ID。获取账号ID - [Spark作业中SQL语句占位符使用指南](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0031.md): 占位符是在SQL语句中使用的一种参数标记方法,用:参数名的形式代替具体的数值或文本。它相当于先写好完整 SQL 逻辑框架,用占位符标记待填充数据位,执行时系统自动将用户输入数据安全地填充到这些位置。这种方法将SQL逻辑框架与数据完全分离,避免了直接拼接用户输入带来的SQL注入风险和语法错误问题,既保证了安全性又提高了代码的可维护性。占位符 - [AuraJobV2作业接口应用示例](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0032.md): 本文指导用户通过调用API的方式,介绍使用AuraJobV2作业的完整流程,包括创建会话、执行SQL、查看SQL执行结果、关闭会话等。本流程假设终端租户已经在Console界面完成AI DataLake的服务授权,且已创建工作空间和会话端点。API的调用方法请参见如何调用API。Aura端点已创建成功并处于“运行中”。已获取待创建会话Au - [SparkJob作业接口应用示例](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0036.md): 本文指导用户通过调用API的方式,执行Spark作业的完整流程,包括启动Spark作业、查询作业状态和详情、查询spark作业列表等。本流程假设终端租户已经在Console界面完成AI DataLake的服务授权,且已创建工作空间和Spark端点。API的调用方法请参见如何调用API。workspace_id:工作空间ID,可在控制台的工 - [Ray作业接口应用示例](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0037.md): 本文指导用户通过调用API的方式执行Ray作业完整流程,包括运行Ray作业、查询作业详情和取消作业运行等。本流程假设终端租户已经在Console界面完成AI DataLake的服务授权,且已创建工作空间、计算资源和RayJob端点。API的调用方法请参见如何调用API。已获取待运行RayJob的工作空间ID。已创建运行作业的计算资源。已创 - [创建工作空间应用示例](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0038.md): 本文指导用户通过调用API的方式,介绍创建工作空间的完整流程,包括创建工作空间、查看工作空间流程。本流程假设终端租户已经在Console界面完成AI DataLake的服务授权,且已创建LakeFormation实例。API的调用方法请参见如何调用API。已完成AI DataLake服务授权。已获取LakeFormation的实例ID。接 - [创建计算资源应用示例](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0039.md): 本文指导用户通过调用API的方式,介绍创建计算资源池的完整流程,包括创建计算资源池、查看计算资源池流程。本流程假设终端租户已经在Console界面完成AI DataLake的服务授权,且已创建工作空间。API的调用方法请参见如何调用API。已完成AI DataLake服务授权。已获取待创建资源池的工作空间ID。接口相关信息URI格式:PO - [创建端点应用示例](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0040.md): 本文指导用户通过调用API的方式,介绍创建端点的完整流程,包括创建端点、查看端点流程。本流程假设终端租户已经在Console界面完成AI DataLake的服务授权,且已创建工作空间。API的调用方法请参见如何调用API。已完成AI DataLake服务授权。已获取待创建资源池的工作空间ID。如果创建预留资源和混合模式的端点,还需要计算资 - [获取企业项目ID](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0042.md): 登录AI DataLake管理控制台。在顶部导航栏,选择企业 > 项目管理。项目管理在企业项目管理页面的名称/ID列,单击复制按钮,即可复制企业项目ID。获取企业项目ID ## 开发指南 - [Iceberg功能介绍](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0002.md): Apache Iceberg是一种面向海量分析数据集的开放表格式,通过高性能表格式为计算引擎添加表功能,使用方式与SQL表完全一致。Iceberg专为超大规模表而构建,已在实际业务环境中得到应用,单个表可容纳数十PB数据,且即使如此庞大的表也无需分布式SQL引擎即可读取。Iceberg支持以下功能:快速扫描规划:读取表或查找文件操作无需分 - [Iceberg表属性参数介绍](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0003.md): 创建和修改Iceberg表时,可以通过“TBLPROPERTIES”配置相关参数的值。 - [Iceberg Catalog介绍](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0004.md): Iceberg Catalog是Iceberg的顶层组件,负责管理所有Iceberg表的元数据和元数据操作。 Catalog管理表的架构和元数据,提供了创建、查询和修改表的接口,是用户进行Iceberg表操作的入口点。用户可以通过它找到每个表当前元数据文件的位置,是读取和写入Iceberg表的关键组件。当前AI DataLake版本支持使 - [Iceberg表Schema演进介绍](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0005.md): Iceberg支持原地表演进,不需要新建表和重写数据,通过修改元数据就可以完成表演进。Iceberg支持以下Schema演进:添加:向表或嵌套结构中添加新列。删除:从表或嵌套结构中移除现有列。重命名:重命名现有列或嵌套结构中的字段。更新:扩大列、结构字段、Map键、Map值或列表元素的类型。需注意,Map键不支持添加或删除会改变相等性的结 - [Iceberg表支持的数据类型介绍](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0006.md): Iceberg支持的基本数据类型请参见表1。不含时区的时间戳(Timestamp)值表示一个日期和一天中的时间,与时区无关,时间值独立于时区调整,例如2017-11-16 17:10:34总是被读取为2017-11-16 17:10:34,即具体的时间值(不带时区)。含时区的时间戳(Timestamptz)值表示时间线上的一个点,值以UT - [Iceberg隐式分区和分区演进介绍](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0007.md): 隐式分区是Iceberg内置的自动分区机制,由表自动根据原始字段(例如时间戳)通过内置函数计算分区,用户无需手动维护分区列,使得查询与物理存储解耦,可直接修改分区规则而不用迁移数据。典型使用场景:日志、埋点、时序数据按天/小时/月分区。多维度分区(时间 + 级别/类型/业务线)。表需要修改分区策略但无需重写数据。多人协作,避免手动分区字段 - [使用Iceberg前准备](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0013.md): 可选GUC参数enable_meta_scan,用于优化查询的性能。该参数默认打开,但在表数据量很小的情况下,关闭该参数时,查询性能可能比打开时更高,请基于实际情况打开或关闭该GUC。代码示例如下: - [Iceberg配置与类型](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0014.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [Iceberg on Aura DDL语法说明](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0015.md): 通过CREATE TABLE语法创建Iceberg表。与其他格式的表相比,创建Iceberg表没有特别的参数需要指定,只需要指定STORE AS ICEBERG即可。具体语法请参见CREATE TABLE。示例:其中write.metadata.delete-after-commit.enabled控制是否在提交事务后删除旧版本元数据文件 - [查询和写入Iceberg表](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0016.md): 可以查询Iceberg表中的数据。具体语法可参考SELECT。Iceberg v3表支持查询系统列_rowid,_last_updated_sequence_number。注意事项:当前仅支持查询最新全量数据。示例:可以向Iceberg表中添加一行或多行数据。具体语法可参考INSERT。注意事项:如果频繁插入小数据,可能会出现小文件问题, - [表达式分区](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0017.md): 在处理大规模数据集时,数据分区是提高查询性能的关键技术之一。然而,传统的分区方式需要用户手动定义分区逻辑,这不仅增加了用户的负担,还可能导致分区策略不够灵活。表达式分区用于支持Iceberg的隐藏分区功能,其核心设计是将“分区逻辑”从用户视角隐藏,交给Iceberg元数据自动管理。如何确保数据分区既高效又灵活?通过使用表达式分区,用户可以 - [Iceberg表服务](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0018.md): Aura提供一系列表服务,用户可以根据需要使用,例如清理旧快照,整理元数据、数据文件等,以提高存储、查询的效率。具体语法可参考Iceberg表服务函数。示例:清理旧快照select * from iceberg_expire_snapshots('iceberg_test','2025-05-15 14:12:00+08'); delet - [Iceberg配置与类型](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0020.md): Spark和Iceberg支持不同的类型集。Iceberg会自动进行类型转换,但并非所有组合都支持,因此在设计表的列类型之前,您需要了解Iceberg中的类型转换。Spark类型对应的Iceberg类型此类型转换表描述了Spark类型如何转换为Iceberg类型。转换在创建Iceberg表和通过Spark写入Iceberg表时都适用。该表 - [Iceberg on Spark DDL语法说明](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0021.md): Spark 可以在任何Iceberg Catalog中创建表,Iceberg会将Spark中的列类型转换为相应的Iceberg类型。命令如下:创建表命令支持所有范围的Spark create子句,包括:PARTITIONED BY:配置分区。LOCATION '(fully-qualified-uri)':设置表位置。COMMENT 't - [查询Iceberg表数据](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0022.md): 在Spark中使用Iceberg前,需先配置Spark Catalog,配置请参见Iceberg配置与类型。Iceberg基于Apache Spark的DataSourceV2 API实现数据源和Catalog功能。在Spark中,表的标识符需包含catalog名称。查询表数据操作为:创建表,例如:查询表数据:SELECT * FROM - [向Iceberg表中写入数据](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0023.md): Iceberg采用Apache Spark的DataSourceV2 API实现数据源和目录写入功能,部分功能仅在Spark中使用Iceberg SQL扩展时可用。Spark 支持INSERT INTO、MERGE INTO、INSERT OVERWRITE的SQL写入语句,以及新的DataFrameWriterV2 API。INSERT - [Iceberg表存储过程管理](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0024.md): 在Spark中使用Iceberg前,需先配置Spark目录,spark_catalog和prod目录配置请参见Iceberg配置与类型。存储过程仅在Spark 3中使用Iceberg SQL扩展时可用。可通过CALL语句从任何已配置的Iceberg Catalog中调用存储过程,所有存储过程均位于system命名空间下。CALL支持按名称 - [使用spark流式读写Iceberg](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0025.md): Iceberg使用Apache Spark的DataSourceV2 API来实现数据源和目录(catalog)功能。Spark DSv2是一个不断演进的API,在不同版本的Spark中支持程度有所不同。Iceberg支持在Spark结构化流处理任务中读取增量数据,可以从指定的历史时间戳开始:Iceberg只支持从追加(append)快照 - [如何处理并发提交数据冲突](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0028.md): 在并发写入Iceberg表时,通常会遇到两类冲突:并发提交数据冲突、乐观锁并发提交元数据冲突。本文介绍并发提交数据冲突。当出现以下并发作业时,可能会产生数据冲突,从而导致作业失败:对同一分区数据并发执行DML操作,例如对同一分区执行Update/Delete/Insert Overwrite/Insert操作。Compaction与DML - [如何处理乐观锁并发提交元数据冲突](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0029.md): 在并发写入Iceberg表时,通常会遇到两类冲突:并发提交数据冲突、乐观锁并发提交元数据冲突。本文介绍乐观锁并发提交元数据冲突。乐观锁并发提交元数据冲突的产生原因:多个修改作业(包括Insert、Update、Delete、MergeInto以及表服务操作)同时在LakeFormation上提交导致的并发提交冲突。例如:上图中,Trans - [使用LakeFormation进行表维护](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0031.md): LakeFormation表服务配置在创建Iceberg表和编辑Iceberg表时,支持配置表服务选项(仅独享型实例支持),存量实例如需开通表服务功能需执行以下步骤:如果当前实例已开通,则无“开通内表服务”按钮。开通内表服务后,可以创建内表和内部函数,如果需要关闭内表服务,需要彻底清除内表,删除实例时会自动关闭内表服务。成功开通内表服务功 - [使用引擎进行表维护](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0032.md): 原因:每次写/更新/删除/Upsert/压缩都会产生新快照,不清理会导致存储持续增长。实现方式:注意:分支和标签默认永不过期,需通过表属性history.expire.max-ref-age-ms配置。建议设置stream_results=>true,避免大数据量时Driver OOM。Aura实现方式:参考iceberg_expire_ - [Lance功能介绍](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0034.md): Lance是一种基于Apache Arrow生态构建的高性能列式数据存储格式,由LanceDB团队主导开发,旨在实现接近Arrow内存格式的数据访问性能,同时支持事务管理、索引和增量更新。Lance不仅适用于离线批处理分析,还重点支持在线查询、向量检索和人工智能应用,是一种面向AI与数据湖融合场景的新型存储格式。Lance底层数据结构与A - [Lance表目录介绍](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0035.md): Lance表目录是最初创建数据集的位置。每个Lance表都有且仅有一个根目录,它作为数据集文件的主要存储位置。Lance表根目录下包含标准子目录结构(data/、_versions/、_transactions/、_deletions/、_indices/、_refs/、tree/),用于组织数据集的文件。数据文件模式:data/{uui - [Lance索引介绍](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0036.md): Lance将索引视为独立的、冗余的数据结构,分层构建在表行标识符之上。这使文件格式免于内置搜索结构,并允许索引格式独立于表布局演进。Lance支持三大类索引:标量索引、向量索引和系统索引。标量索引加速对整数、时间戳和字符串等标量数据类型的查询。Lance支持的标量索引请参考表1。向量索引专用于高维嵌入的近似最近邻搜索(ANN)。Lance - [Lance表Schema演进介绍](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0037.md): Schema描述了Lance表的结构,包含所有字段、数据类型及元数据。它采用逻辑类型系统,将数据类型表示为映射到Apache Arrow的字符串。每个字段拥有唯一标识符(字段 ID),支持在不破坏引用的情况下重命名或重新排序字段,从而实现强大的Schema演进与版本跟踪。字段ID确保了即使Schema随时间变化,数据文件也能被正确解释。在 - [Lance表支持的数据类型介绍](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0038.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [Lance Namespace和LakeFormation Catalog介绍](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0040.md): Lance Namespace是用于逻辑隔离、层级化组织表/数据集的命名空间,提供命名唯一性与权限管控,支持多团队、多项目的数据资产分类管理。规范定义了一个标准化的接口,用于目录交互,如表发现、解析表位置以及协调提交。它通过一个名为LanceNamespace的统一接口,对LakeFormation Catalog等实现进行了抽象。Lak - [使用Lance前准备](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0042.md): 在使用 Aura 对 Lance 格式的数据表执行读写等操作之前,您必须确保已获得LakeFormation的相应访问权限,以避免因权限不足导致操作失败。关于权限的具体介绍,请参见用户及权限管理。 - [Lance配置与类型](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0043.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [Lance on Aura DDL语法说明](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0044.md): Lance表不支持创建partition和bucket列。用户使用CREATE TABLE语法创建Lance表,需指定STORE AS Lance。具体语法,请参见CREATE TABLE。用户创建的Lance表元数据存储于LakeFormation中,主要包含表名、表路径、表当前版本号和表参数,Lance表实际数据文件存储于OBS桶中。 - [查询和写入Lance表](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0045.md): 可以查询Lance表中的数据。具体语法,请参考SELECT。注意事项:当前仅支持查询最新全量数据。示例:支持基于全文索引的单词、短语检索以及相关的bool类型,content1和content2为fts索引列:示例:可以向Lance表中添加一行或多行数据。具体语法,请参考INSERT。示例: - [更新Lance表](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0046.md): 可以对Lance表中的一行或多行数据执行更新操作。具体语法,请参考UPDATE。注意事项:不支持update from、set或where条件中会产生多表join的update。示例: - [Lance表使用索引](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0047.md): 可以对Lance表中的一列向量列构建索引,向量列需要被声明为fixed-size-list,请参见创建Lance表。向量索引类型可以是{ivfflat, ivfpq, ivfrq, ivfsq, hnsw, hnswpq, hnswsq}中的任意一种,建索引具体语法及约束,请参考CREATE INDEX。支持分布式创建向量索引。产生的索引 - [如何处理Lance表并发冲突](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0049.md): Lance表采用MVCC(多版本并发控制)机制:每个版本由一个不可变的manifest描述,该manifest引用fragments(数据文件)、indices(索引文件)以及可选的transaction(事务)文件。读操作读取某个特定的manifest版本,因此支持快照读取;写操作通过提交新的manifest来生成新版本,从而实现ACI - [在Spark SQL作业中使用UDF](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0050.md): AI DataLake支持用户使用Hive UDF(User Defined Function,用户定义函数)进行数据查询等操作,UDF只对单行数据产生作用,适用于一进一出的场景。自定义函数中引用static类或接口时,必须要加上“try catch”异常捕获,否则可能会造成包冲突,导致函数功能异常。在进行UDF开发前,请准备以下开发环境 - [在Spark SQL作业中使用UDAF](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0051.md): AI DataLake支持用户使用Hive UDAF(User Defined Aggregation Function,用户定义聚合函数)可对多行数据产生作用,通常与groupBy联合使用;等同于SQL中常用的SUM(),AVG(),也是聚合函数。自定义函数中引用static类或接口时,必须要加上“try catch”异常捕获,否则可能 - [在Spark SQL作业中使用UDTF](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0052.md): AI DataLake支持用户使用Hive UDTF(User-Defined Table-Generating Functions)自定义表值函数,UDTF用于解决一进多出业务场景,即其输入与输出是一对多的关系,读入一行数据,输出多个值。自定义函数中引用static类或接口时,必须要加上“try catch”异常捕获,否则可能会造成包冲 - [概述](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0054.md): Remote UDF(Remote User-Defined Function,远程用户自定义函数)是指将UDF的执行逻辑从主计算引擎剥离,主引擎通过标准接口(如 HTTP、gRPC、Thrift)调用该服务完成计算。Remote UDF将计算逻辑与主引擎分离、实现资源解耦,充分提升Remote UDF复用性与灵活性。本节内容以Funct - [新建Maven工程,配置Project structure](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0055.md): 本例使用IntelliJ IDEA 2024.3.2.2工具操作演示打开IntelliJ IDEA,选择“File > New > Project”。新建Project选择Maven Archetype,配置以下信息:Name:自定义项目名称。本例设置项目名称为MyRemoteUDF。Location:选择项目存储路径。本例项目保存路径为 - [编写UDF函数代码并导出Jar包](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0056.md): UDF函数实现,主要注意以下几点:自定义UDF需要继承UDFHandler。在方法上添加@TypeResolve注解,用于表明函数的入参和出参。入参和出参通过“->”分隔。入参和出参类型(resolveType)以及对应的SQL和Java数据类型请参考表1。resolveType类型SQL typeJava typeresolveType - [创建FunctionGraph函数](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0057.md): 前提条件:了解FunctionGraph业务使用流程。在创建FunctionGraph函数之前,您需要获取这两个配置项。提交Spark SQL或Spark Job作业时,需要设置以上两个配置项。登录函数工作流FunctionGraph管理控制台。在左侧列表中单击“函数 > 函数列表”,单击“创建函数”创建函数单击“创建空白函数”,并配置函 - [概述](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0059.md): Remote UDAF(Remote User-Defined Aggregate Function)为用户自定义聚合函数,适用于多进一出业务场景。即其输入与输出是多对一的关系,将多条输入记录聚合成一个输出值。本节内容以FunctionGraph作为Remote UDAF 的执行载体,介绍开发Remote UDAF到计算引擎调用的操作步骤 - [新建Maven工程,配置Project structure](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0060.md): 本例使用IntelliJ IDEA 2024.3.2.2工具操作演示打开IntelliJ IDEA,选择“File > New > Project”。新建Project选择Maven Archetype,配置以下信息:Name:自定义项目名称。本例设置项目名称为MyRemoteUDAF。Location:选择项目存储路径。本例项目保存路径 - [编写UDAF函数代码并导出Jar包](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0061.md): UDAF函数实现,主要注意以下几点:自定义UDAF需继承UDAFHandler类,在类内编写UDAF函数。并实现如下方法:public abstract Writable newBuffer(); public abstract void iterate(Writable buffer, Object[] args) throws Fun - [创建FunctionGraph函数](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0062.md): 了解FunctionGraph业务使用流程。登录函数工作流FunctionGraph管理控制台。在左侧列表中单击“函数 > 函数列表”,单击“创建函数”创建函数单击“创建空白函数”,并配置函数的基本信息。详细参数说明请参考函数属性。函数类型:本例为事件函数。运行时环境:Java11。委托:当函数工作流服务需与其他云服务协同工作时,需要创建 - [SQL创建函数](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0064.md): 创建使用Remote UDAF自定义函数应用于Spark作业开发当中。或无urn:在FunctionGraph函数列表页面,选择您需要复制URN的函数,在操作列中单击复制URN。创建本示例函数integer_add,执行的指令如下:选择对应的数据库与队列,输入SQL指令后单击执行按钮。 - [SQL调用函数](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0065.md): 调用指定函数。无function_name:即在FunctionGraph创建的自定义函数名称。调用本示例函数,返回一个平均数 - [SQL删除函数](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0066.md): 删除指定函数。无TEMPORARY:所删除的函数是否为临时函数。IF EXISTS:所删除的函数不存在时使用,可避免系统报错。 - [显示所有函数](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0067.md): 查看当前工程下所有的函数。无LIKE:此限定符仅为兼容性而使用,没有任何实际作用。 - [显示函数详情](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0068.md): 查看指定函数的相关信息。无EXTENDED:显示扩展使用信息。 - [概述](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0070.md): Remote UDTF(Remote User-Defined Table-Generating Function)为用户自定义表值函数,适用于单进多出业务场景。即其输入与输出是一对多的关系,读入一行数据,输出多个值可视为一张表。本节内容以FunctionGraph作为Remote UDTF 的执行载体,介绍开发Remote UDTF到计 - [新建Maven工程,配置Project structure](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0071.md): 本例使用IntelliJ IDEA 2024.3.2.2工具操作演示打开IntelliJ IDEA,选择“File > New > Project”。新建Project选择Maven Archetype,配置以下信息:Name:自定义项目名称。本例设置项目名称为MyRemoteUDTF。Location:选择项目存储路径。本例项目保存路径 - [编写UDTF函数代码并导出Jar包](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0072.md): UDTF函数实现,主要注意以下几点:自定义UDTF需要继承UDTFHandler。在方法上添加@TypeResolve注解,用于表明函数的入参和出参。入参和出参通过'->'分隔。入参和出参类型(resolveType)以及对应的SQL和Java数据类型请参考表1。resolveType类型SQL typeJava typeresolveT - [创建FunctionGraph函数](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0073.md): 了解FunctionGraph业务使用流程。登录函数工作流FunctionGraph管理控制台。在左侧列表中单击“函数 > 函数列表”,单击“创建函数”创建函数单击“创建空白函数”,并配置函数的基本信息。详细参数说明请参考函数属性。函数类型:本例为事件函数。运行时环境:Java 8。委托:当函数工作流服务需与其他云服务协同工作时,需要创建 - [SQL创建函数](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0075.md): 创建使用Remote UDTF自定义函数应用于Spark作业开发当中。或无urn:在FunctionGraph函数列表页面,选择您需要复制URN的函数,在操作列中单击复制URN。创建本示例函数remote_udtf,执行的指令如下:选择对应的数据库与队列,输入SQL指令后单击执行按钮。 - [SQL调用函数](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0076.md): 调用指定函数。无function_name:即在FunctionGraph创建的自定义函数名称。调用本示例函数remote_udtf。选择对应的数据库与队列,输入SQL指令后单击执行按钮。 - [SQL删除函数](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0077.md): 删除指定函数。无TEMPORARY:所删除的函数是否为临时函数。IF EXISTS:所删除的函数不存在时使用,可避免系统报错。 - [显示所有函数](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0078.md): 查看当前工程下所有的函数。无LIKE:此限定符仅为兼容性而使用,没有任何实际作用。运行结果: - [显示函数详情](https://support.huaweicloud.com/devg-aidatalake/aidatalake_05_0079.md): 查看指定函数的相关信息。UDTF不可以嵌套使用。EXTENDED:显示扩展使用信息。运行结果: ## Aura语法参考 - [使用前必读](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0001.md): 在使用Aura进行数据开发前,需先了解Aura的核心理念以及提供的两种交互方式。什么是AuraAura是一款高性能、分布式的面向多模态数据处理的计算引擎。在AI时代,数据不再局限于传统的结构化表格,图像、音频、视频、文本等非结构化数据扮演着越来越重要的角色。Aura的核心设计目标就是简化多模态数据的处理流程,让开发者能够使用熟悉的SQL或 - [快速开始:使用Aura端点运行DataFrame或SQL作业](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0002.md): AI DataLake支持提交DataFrame或SQL作业至Aura端点中运行,支持使用Python编辑器和DataArts Studio开发作业,DataArts Studio开发作业详细操作,请参见快速上手使用AI DataLake查询数据。本章节为您演示如何使用Python编辑器提交DataFrame作业,包括以下操作:1.创建一 - [单表查询](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0005.md): 示例表:通过SELECT ... FROM ... 语句从数据库中获取结果。通过WHERE语句对查询的结果进行过滤,找到想要查询的部分。使用ORDER BY语句可以让查询结果按照期望的方式进行排序。如果需要查询只返回部分结果,可以使用LIMIT语句限制查询结果返回的记录数。可以通过使用GROUP BY语句配合聚合函数,构建一个聚合查询来关 - [多表连接查询](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0006.md): 通过SQL完成各种复杂的查询,多表之间的连接是必不可少的。连接分为:内连接和外连接两大类,每大类中还可进行细分。内连接:标准内连接(INNER JOIN),交叉连接(CROSS JOIN)和自然连接(NATURAL JOIN)。外连接:左外连接(LEFT OUTER JOIN),右外连接(RIGHT OUTER JOIN)和全外连接(FU - [开发规范](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0008.md): 如果用户在APP的开发中,使用了连接池机制,那么需要遵循如下规范:如果在连接中设置了GUC参数,那么在将连接归还连接池之前,必须使用“SET SESSION AUTHORIZATION DEFAULT;RESET ALL;”将连接的状态清空。如果使用了临时表,那么在将连接归还连接池之前,必须将临时表删除。否则,连接池里面的连接就是有状态的 - [JDBC包与驱动类](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0011.md): 联系运维人员获取JDBC驱动,解压后有两个JDBC的驱动jar包:gsjdbc4.jar:与PostgreSQL保持兼容的驱动包,其中类名、类结构与PostgreSQL驱动完全一致,曾经运行于PostgreSQL的应用程序可以直接移植到当前系统使用。gsjdbc200.jar:如果同一JVM进程内需要同时访问PostgreSQL及Aura - [开发流程](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0012.md): 在Java数据库连接(JDBC)开发中,遵循一定的流程可以帮助您高效地实现数据库操作。一个基本的JDBC开发流程,通常包括建立数据库连接、执行SQL查询或更新、处理结果、关闭连接等关键步骤。采用JDBC开发应用程序的流程图示例如下: - [加载驱动](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0013.md): 在创建数据库连接之前,需要先加载数据库驱动程序。加载驱动有两种方法:在代码中创建连接之前任意位置隐含装载:Class.forName("org.postgresql.Driver");在JVM启动时参数传递:java -Djdbc.drivers=org.postgresql.Driver jdbctest上述jdbctest为测试用例程 - [连接数据库](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0014.md): 在创建数据库连接之后,才能使用他来执行SQL语句操作数据。JDBC提供了三个方法,用于创建数据库连接。DriverManager.getConnection(String url);DriverManager.getConnection(String url, Properties info);DriverManager.getConne - [执行SQL语句](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0015.md): 应用程序通过执行SQL语句来操作数据库的数据(不用传递参数的语句),需要按以下步骤执行:预编译语句是只编译和优化一次,然后可以通过设置不同的参数值多次使用。由于已经预先编译好,后续使用会减少执行时间。因此,如果多次执行一条语句,请选择使用预编译语句。可以按以下步骤执行:用一条预处理语句处理多条相似的数据,数据库只创建一次执行计划,节省了语 - [处理结果集](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0016.md): ResultSet对象具有指向其当前数据行的光标。最初,光标被置于第一行之前。next方法将光标移动到下一行;因为该方法在ResultSet对象没有下一行时返回false,所以可以在while循环中使用它来迭代结果集。但对于可滚动的结果集,JDBC驱动程序提供更多的定位方法,使ResultSet指向特定的行。定位方法如表1所示。对于可滚动 - [关闭连接](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0017.md): 在使用数据库连接完成相应的数据操作后,需要关闭数据库连接。关闭数据库连接可以直接调用其close方法即可。如:con.close() - [示例:常用操作](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0018.md): 以下演示基于JDBC开发的主要步骤。涉及创建数据库、创建表、插入数据等。此示例将演示如何基于Aura提供的JDBC接口开发应用程序。//DBtest.java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatem - [java.sql.Connection](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0020.md): java.sql.Connection是数据库连接接口。 - [java.sql.DatabaseMetaData](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0021.md): java.sql.DatabaseMetaData是数据库对象定义接口。 - [java.sql.Driver](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0022.md): java.sql.Driver是数据库驱动接口。 - [java.sql.PreparedStatement](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0023.md): java.sql.PreparedStatement是预处理语句接口。addBatch()、execute()必须在clearBatch()之后才能执行。调用executeBatch()方法并不会清除batch。用户必须显式使用clearBatch()清除 。在添加了一个batch的绑定变量后,用户如果想重用这些值(再次添加一个batch - [java.sql.ResultSet](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0024.md): java.sql.ResultSet是执行结果集接口。一个Statement不能有多个处于“open”状态的ResultSet。用于遍历结果集(ResultSet)的游标(Cursor)在被提交后不能保持“open”的状态。 - [java.sql.ResultSetMetaData](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0025.md): java.sql.ResultSetMetaData是对ResultSet对象相关信息的具体描述。 - [java.sql.Statement](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0026.md): java.sql.Statement是SQL语句接口。通过setFetchSize可以减少结果集在客户端的内存占用情况。它的原理是通过将结果集打包成游标,然后分段处理,所以会加大数据库与客户端的通信量,会有性能损耗。由于数据库游标是事务内有效,所以,在设置setFetchSize的同时,需要将连接设置为非自动提交模式,setAutoCom - [javax.sql.ConnectionPoolDataSource](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0027.md): javax.sql.ConnectionPoolDataSource是数据源连接池接口。 - [javax.sql.DataSource](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0028.md): javax.sql.DataSource是数据源接口。 - [javax.sql.PooledConnection](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0029.md): javax.sql.PooledConnection是由连接池创建的连接接口。 - [javax.naming.Context](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0030.md): javax.naming.Context是连接配置的上下文接口。 - [javax.naming.spi.InitialContextFactory](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0031.md): javax.naming.spi.InitialContextFactory是初始连接上下文工厂接口。 - [使用前须知](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0033.md): Aura Java软件开发包(Aura Java SDK,Aura Java Software Development Kit)是Aura提供的REST API的Java语言版本的封装。用户可以使用SDK提供的接口方法来使用Aura端点,以简化用户在使用中的开发步骤。本部分介绍Java SDK的版本变更,并提供SDK的安装说明。如果您需要 - [使用前准备](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0034.md): 在使用Java SDK访问Aura之前,您需要先完成服务环境的准备和开发环境的准备。服务环境准备包括准备账号和访问密钥,是使用SDK与Aura云服务交互的必要条件。开发环境准备是指为了您能顺利完成SDK的安装、完成基于SDK的代码开发与运行,需要提前在本地完成开发环境的搭建,例如下载安装依赖软件、安装开发工具等。在使用Aura服务之前您需 - [客户端初始化](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0035.md): 使用Java SDK工具访问Aura,需要用户初始化Aura客户端。用户可以使用永久AK/SK或临时AK/SK两种认证方式初始化客户端,示例代码如下:已参考使用前须知获取了对应权限。已参考使用前准备配置了Java SDK并取得了AK/SK或者Token。方法定义参数说明参数名是否必填描述endpoint是Aura提供的服务地址。acces - [SDK方法介绍](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0036.md): 功能介绍Session表示一个连接,用户可以通过一个Session执行SQL请求,并通过该Session查询请求结果。该方法可以通过用户提供的工作空间ID和端点ID同步创建一个Session,可以设置Session连接的LakeFormation实例信息和Catalog名称。Session表示一个连接,用户可以通过一个Session执行S - [性能调优概述](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0038.md): 数据库性能调优是指通过优化数据库系统的配置及SQL查询,以提高数据库性能和效率的过程。目的为消除性能瓶颈、减少响应时间、提高系统吞吐量和资源利用率,降低业务成本,从而提高系统稳定性,给用户带来更大的价值。本章通过性能诊断、系统调优及SQL调优及常见SQL调优案例等性能调优的实际操作,为数据库性能调优人员提供全方位的指导。数据库调优是一个复 - [数据库系统参数调优](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0040.md): 为了保证数据库尽可能高性能地运行,建议依据资源情况和业务实际进行数据库系统GUC参数的设置。本章节旨在介绍一些常用参数以及推荐配置,关于参数的详细设置方法请参考查看和设置GUC参数。 - [SMP并行执行](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0041.md): 在复杂查询场景中,单个查询的执行时间较长,系统并发度低,通过SMP并行执行技术实现算子级的并行,能够有效减少查询执行时间,提升查询性能及资源利用率。通过算子并行来提升性能,同时会占用更多的系统资源,包括CPU、内存、网络、I/O等等。本质上SMP是一种以资源换取时间的方式,在合适的场景以及资源充足的情况下,能够起到较好的性能提升效果;但是 - [SQL查询执行流程](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0043.md): SQL引擎从接收SQL语句到执行SQL语句需要经历的步骤如图1和表1所示。其中,红色字体部分为DBA可以介入实施调优的环节。Aura优化器是典型的基于代价的优化 (Cost-Based Optimization,简称CBO)。在这种优化器模型下,数据库根据表的元组数、字段宽度、NULL记录比率、distinct值、MCV值、HB值等表的特 - [SQL执行计划](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0044.md): SQL执行计划是一个节点树,显示Aura执行一条SQL语句时执行的详细步骤。使用EXPLAIN命令可以查看优化器为每个查询生成的具体执行计划。EXPLAIN给每个执行节点都输出一行,显示基本的节点类型和优化器为执行这个节点预计的开销值。除了设置不同的执行计划显示格式外,还可以通过不同的EXPLAIN用法,显示不同详细程度的执行计划信息。常 - [执行计划算子](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0045.md): SQL执行计划中每一个步骤为一个数据库运算符,也叫做一个执行算子。Aura中算子是基本的数据处理单元,合理地组合算子、优化算子的顺序和执行方式,可以提升数据的处理效率。Aura算子可分为:扫描算子、控制算子、物化算子、连接算子、其他算子等。扫描算子用来扫描表中的数据,每次获取一条元组作为上层节点的输入, 存在于查询计划树的叶子节点,它不仅 - [SQL执行监控](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0046.md): SQL历史监控数据中记录了查询作业的各项资源使用情况(包括内存、下盘、CN和DN时长、OBS访问时间、LakeFormation访问时间等)以及SQL执行计划信息(EXPLAIN/EXPLAIN PERFORMANCE),且历史监控数据只有在SQL语句执行结束后才会生成。SQL历史监控数据对外展示的字段如下:当前SQL监控数据存放在结果集 - [SQL调优流程](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0047.md): 对慢SQL语句进行分析,操作如下: - [更新统计信息](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0048.md): 在数据库中,统计信息是规划器生成计划的源数据。没有收集统计信息或者统计信息陈旧会造成执行计划严重劣化,从而导致性能问题。ANALYZE语句可收集与数据库中表内容相关的统计信息,统计结果存储在系统表PG_STATISTIC中。查询优化器会使用这些统计数据,以生成最有效的执行计划。建议在执行了大批量插入/删除操作后,例行对表或全库执行ANAL - [子查询调优](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0050.md): 应用程序通过SQL语句来操作数据库时会使用大量的子查询,这种写法比直接对两个表做连接操作在结构上和思路上更清晰,尤其是在一些比较复杂的查询语句中,子查询有更完整、更独立的语义,会使SQL对业务逻辑的表达更清晰更容易理解,因此得到了广泛的应用。Aura根据子查询在SQL语句中的位置把子查询分成了子查询、子链接两种形式。子查询SubQuery - [算子级调优](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0051.md): 一个查询语句要经过多个算子步骤才会输出最终的结果。由于个别算子耗时过长导致整体查询性能下降的情况比较常见。这些算子是整个查询的瓶颈算子。通用的优化手段是EXPLAIN ANALYZE/PERFORMANCE命令查看执行过程的瓶颈算子,然后进行针对性优化。如下面的执行过程信息中,Hashagg算子的执行时间占总时间的:(66167-5621 - [SQL语句改写规则](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0052.md): 根据数据库的SQL执行机制以及大量的实践,总结发现:通过一定的规则调整SQL语句,在保证结果正确的基础上,能够提高SQL执行效率。如果遵守下列规则,能够大幅度提升业务查询效率。使用union all代替unionunion在合并两个集合时会执行去重操作,而union all则直接将两个结果集合并、不执行去重。执行去重会消耗大量的时间,因此 - [优化器参数调整](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0053.md): 本节将介绍影响Aura调优性能的关键CN配置参数,配置方法参见查看和设置GUC参数。 - [Plan Hint调优概述](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0055.md): Plan Hint为用户提供了直接影响执行计划生成的手段,用户可以通过指定join顺序,join、stream、scan方法,指定结果行数,指定重分布过程中的倾斜信息,指定配置参数的值等多个手段来进行执行计划的调优,以提升查询的性能。Plan Hint支持在SELECT、INSERT、UPDATE、MERGE、DELETE关键字后通过如下 - [Join顺序的Hint](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0056.md): 指明join的顺序,包括内外表顺序。单层圆括号(),仅指定join顺序,不指定内外表顺序。leading(join_table_list) leading(@block_name join_table_list)双层圆括号(()),同时指定join顺序和内外表顺序,内外表顺序仅在最外层生效。leading((join_table_lis - [Join方式的Hint](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0057.md): 指明Join使用的方法,可以为Nested Loop,Hash Join和Merge Join。no表示hint的join方式不使用。block_name表示语句块的block_name,详细说明请参考block_name。table_list为表示hint表集合的字符串,该字符串中的表与join_table_list相同,只是中间不允许 - [行数的Hint](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0058.md): 指明中间结果集的大小,支持绝对值和相对值的hint。block_name表示语句块的block_name,详细说明请参考block_name。#,+,-,*,进行行数估算hint的四种操作符号。#表示直接使用后面的行数进行hint。+,-,*表示对原来估算的行数进行加、减、乘操作,运算后的行数最小值为1行。table_list为hint对 - [Stream方式的Hint](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0059.md): 指明stream使用的方法,可以为broadcast和redistribute以及指定AGG重分布的分布键。指定Agg重分布列Hint,仅8.1.3.100及以上集群版本支持。no表示hint的stream方式不使用,当指定AGG分布列的hint时指定no关键字无效。block_name表示语句块的block_name,详细说明请参考bl - [子链接块名的hint](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0060.md): 指明子链接块的名称。block_name hint仅在对应的子链接块提升时才会被上层查询使用。目前支持的子链接提升包括IN子链接提升、EXISTS子链接提升和包含Agg等值相关子链接提升。该hint通常会和前面章节提到的hint联合使用。对于FROM关键字后的子查询,则需要使用子查询的别名进行hint,block_name hint不会被 - [指定子查询不提升的hint](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0061.md): 优化器在对查询进行逻辑优化时通常会将可以提升的子查询提升到上层以避免嵌套执行,但对于某些场景,嵌套执行不会导致性能下降过多,而提升之后扩大了查询路径的搜索范围,可能导致性能变差。对于此类情况,可以使用no merge hint指定子查询不提升进行调试。大多数情况下不建议使用此hint。block_name表示语句块的block_name, - [配置参数的hint](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0063.md): 指明计划生成时配置参数的值,又称作guc hint。如果hint设置的配置参数在语句级别生效,则该hint必须写在顶层查询中,而不能写在子查询中。对于UNION、INTERSECT、EXCEPT和MINUS语句,可以将在语句级别的guc hint写在参与集合运算的任意一个SELECT子句上,该guc hint设置的配置参数会在参与集合运算 - [Hint的错误、冲突及告警](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0064.md): Plan Hint的结果会体现在计划的变化上,可以通过explain来查看变化。Hint中的错误不会影响语句的执行,只是不能生效,该错误会根据语句类型以不同方式提示用户。对于explain语句,hint的错误会以warning形式显示在界面上,对于非explain语句,会以debug1级别日志显示在日志中,关键字为PLANHINT。语法错 - [执行计划算子监控](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0065.md): 执行计划算子历史监控数据中记录了查询作业每个算子细粒度的执行进度信息(包括开始时间、执行时长、已处理行数、内存、下盘等),历史信息每5秒采集上报一次。执行计划算子历史监控数据的字段如下表所示:执行计划算子实时监控数据中记录了查询作业每个算子细粒度的执行进度信息(包括开始时间、执行时长、已处理行数、内存、下盘等),后台线程每5秒采样一次,实 - [案例:调整GUC参数best_agg_plan](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0067.md): t1的表定义为:假设agg下层算子所输出结果集的分布列为setA,agg操作的group by列为setB,则在Stream框架下,Agg操作可以分为两个场景。场景一:setA是setB的一个子集。对于这种场景,直接对下层结果集进行汇聚的结果就是正确的汇聚结果,上层算子直接使用即可。场景二:setA不是setB的一个子集。对于这种场景,S - [创建和管理Schema](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0070.md): Schema又称作模式,从逻辑上组织一个数据库中的对象和数据。通过管理Schema,允许多个用户使用同一数据库而不相互干扰,同时便于将第三方应用添加到相应的Schema下而不引起冲突。相同的数据库对象名称可以应用在同一数据库的不同Schema中,而没有冲突。例如,a_schema和b_schema都可以包含名为mytable的表。具有所需 - [创建和管理表](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0071.md): CREATE TABLE命令创建一个表,创建表时可以定义以下内容:表的列及数据类型。表分布的定义,即表的分布策略,它决定Aura数据库如何在片(Segment)之间划分数据。表存储格式。分区表定义。示例:CREATE TABLE创建了一个表web_returns_p1,并以ORC文件格式存储数据。Aura支持两种表类型:托管表(Manag - [表分区定义](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0072.md): 分区表就是把逻辑上的一张表根据分区策略分成几张物理块进行存储,这张逻辑上的表称之为分区表,物理块称之为分区。分区表是一张逻辑表,不存储数据,数据实际是存储在分区上的。当进行条件查询时,系统只会扫描满足条件的分区,避免全表扫描,从而提升查询性能。分区表的优势:改善查询性能。对分区对象的查询可以仅搜索自己关心的分区,提高检索效率。增强可用性。 - [概述](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0095.md): 在AI场景中,数据科学家经常面临多模态数据(如文本、图像、音频、视频、点云等)的管理与分析挑战,这些数据通常分散在不同的数据源中,导致数据整合和处理效率低下。为了解决这一问题,如何实现跨模态数据的高效统一管理与分析?Aura多模态AI数据湖服务应运而生,它是一站式的Serverless服务平台,专为管理、处理、分析多模态数据类型而设计,旨 - [快速开始](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0096.md): 已创建工作空间,详细操作请参见创建工作空间。已创建计算资源,详细操作请参见购买预留资源池。已创建Aura端点,详细操作请参见创建Aura引擎端点。已获取用户的AK、SK信息。在管理控制台页面,鼠标移动至右上方的用户名,在下拉列表中选择“我的凭证”。单击“访问密钥”页签,单击“新增访问密钥”,输入验证码或密码。单击“确定”,生成并下载访问密 - [概述](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0098.md): 现如今,人工智能已能原生理解图片、音频、视频和向量等类型数据,但传统引擎从未被设计成能够将这些格式输入到大模型中。Aura填补了这一空白,为您提供了一个分布式引擎,能够处理这些类型数据,在内存允许的范围内,持续为CPU或GPU的计算提供数据。Aura DataFrame支持通过UDF处理图片(PNG/JPG等)、音频(WAV/MP3/FL - [图片](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0099.md): 图片类型内部使用Pillow库处理图片,获取PIL Image对象后通过PIL库处理图片。 支持处理的图片格式:JPEG、PNG。该示例演示如何从OBS路径下“obs://xxxxx/xxxxx”读取图片,并且加载到Dataset中,然后从中随机选取3张图片再写回到指定的OBS路径下。 - [视频](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0100.md): 视频内部使用PyAV处理数据。支持的格式:mp4、mkv、webm、avi、mov、flv、m4v、m4a、3gp、3g2、ts。支持的编码:avc1、avc3、h264、hvc1、h265、hevc、vp9、vp8、mp4v。视频对象的属性和方法如下所示:该示例演示如何从obs路径下"obs://xxxxx/xxxxx"读取视频,并且转 - [音频](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0101.md): 音频内部使用PyAV库处理数据。支持的音频格式:mp3、aiff、flac、wav、wma、m4a、aac。音频对象的属性和方法如下所示:该示例演示如何从obs路径下"obs://xxxxx/xxxxx"读取音频,并且加载到dataset中,然后从中随机选取3条音频再写回到指定的obs路径下。 - [向量](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0102.md): 向量封装了EmbeddingVector类,可以通过这个类对象表示一维向量类型。该示例演示如何创建一个向量类型。 - [UDF概述](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0104.md): 用户自定义函数(User-Defined Function,简称UDF)是指由用户根据特定需求自定义的函数,用于扩展数据库或数据处理系统的功能。UDF可以执行各种操作,如数据转换、复杂计算、数据聚合等,这些操作可能超出了系统提供的内置函数的能力。UDF的主要用途包括:扩展功能:UDF允许用户扩展数据库或数据处理系统的功能,执行内置函数不支 - [Scalar UDF](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0106.md): Scalar UDF是最基本的行处理函数, 它接受零个或多个输入参数,并对这一行数据进行操作,最终返回一行结果。通常Scalar UDF适用于数学运算、复杂类型转换和自定义格式化等行处理的场景。Scalar UDF的行为与内置函数非常相似,但其具体实现由用户自定义。建立连接。import os from aura_frame.multim - [Class UDF](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0107.md): Class UDF基于面向对象编程范式实现,主要目的是为了创建有状态的处理逻辑。函数要求实现__init__, __call__等方法。Class UDF注册传入的是Python类,对于__init__、__call__、 __del__ 3个实例方法有特殊的含义认定,详情请参见下表;其他的Python类和实例方法不做限制,用户可以任意添 - [Vectorized UDF](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0108.md): Vectorized UDF是向量化执行的函数,是为解决传统行式UDF性能瓶颈而设计的高效函数。入参、出参通常为PyArrow或者Pandas类型。下文提供两个示例展示如何使用Vectorized UDF。示例一:使用PyArrow进行向量化加速。import os import aura_frame as aura from aura_ - [UDTF](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0109.md): UDTF是输入一行返回多行的函数,适用于典型的多模态数据处理场景,包括视频/音频切帧,样本生成等。UDTF具体的定义和使用约束请参考UDTF。以下示例展示UDTF的注册和使用的流程。创建会话。import ibis import aura_frame as aura import logging from aura_frame.multi - [UDAF](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0110.md): UDAF是输入多行返回一组聚合值的函数,适用于典型的多模态数据处理场景,包括视频/音频/图像的统计特征聚合,多模态标签总结等。UDAF具体的定义和使用约束请参考UDAF。UDAF注册传入的必须是Python类,对于__init__、aggregate_state、accumulate、merge、finish、 __del__ 6个实例方 - [约束限制](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0112.md): Python UDF即使用Python语言编写的自定义函数,当Aura提供的内置函数无法支撑客户的业务实现时, 客户可以参考本文中的开发流程及使用示例,自行编写代码逻辑创建Python UDF,以满足多样化业务需求。使用Python UDF,有以下限制:UDF运行时环境的Python版本支持3.10和3.11系列,且建议使用3.11.9版 - [数据类型映射](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0113.md): Python和Aura数据类型的映射关系如下表所示: - [代码归档包的组织结构](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0114.md): 当用户的业务场景比较复杂,UDF所涉及的代码较多时,推荐用户以文件压缩包的形式注册函数,将UDF依赖的所有相关代码文件统一归档到一个压缩包里,上传至OBS后,在创建函数时指定压缩包的存储路径。压缩包里代码文件结构要求如下:必须包含文件"{FUNCTION_NAME}_source.py",该文件被视为函数的主入口文件。且文件内容需要使用C - [开发注意事项](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0115.md): Aura提供了三种注册UDF的方式:ibis-aura SDK显式注册、隐式注册以及SQL的DDL注册,推荐用户使用ibis-aura sdk显式注册,该方式有以下两个优势:SDK提供的注册接口已完全遵守Aura DDL的使用规范,只要正确调用接口即可,能避免违反约束规范而导致UDF不能正常使用的问题。SDK提供了更多的约束检查,例如Py - [WITH ARGUMENTS语法](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0116.md): WITH ARGUMENTS语法扩展了现有用户定义函数(UDF)的功能,主要作用是允许用户在UDF运行时设置初始状态。通过这一功能,用户可以:配置运行时资源和并发度:用户可以指定UDF运行时所需的资源(如内存、CPU等)以及并发执行的实例数量,从而优化性能和资源利用率。设置类的初始化参数:对于以类(class)形式定义的UDF,用户可以通 - [自适应并行](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0117.md): 在AI数据工程中,面对大量数据处理的场景,需要通过并行调用actor来提升数据处理的效率,进行分布式计算。但固定并行度依赖于调参经验以及多次测试反馈,为提升用户体验和减少调参时间,提供自适应并行来提高使用UDF的易用度。功能约束限制如下:执行UDF函数时必须指定min_concurrency和max_concurrency有效值。如果当前 - [Scalar UDF](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0118.md): 开发Python Scalar UDF,总体流程如下:开发UDF代码,除了业务本身代码以外,代码中还需要包含如下信息:导入模块:如果使用ibis-aura sdk开发UDF,则需要安装和导入ibis相关模块。函数的主入口Handler:自定义代码中,必须清晰定义函数的主入口,Handler方法是唯一的。函数签名:Handler方法的定义中 - [UDTF](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0119.md): UDTF整体开发流程可参考Scalar UDF,需要注意以下几点:Handler目前仅支持返回迭代器,推荐使用yield。UDTF不支持开启并发和向量化计算。当Handler出现死循环,无限输出结果时,Aura会根据超时时间自动关闭程序,默认超时时间为1000s。创建UDTF:CREATE FUNCTION py_generate_ser - [UDAF](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0120.md): UDAF整体开发流程可以参考Scalar UDF,需要注意以下几点:Handler指定的必须是Python Class,且Python Class中必须包括accumulate、aggregate_state、merge、finish 4个方法。具体的方法含义见表1 注册UDAF时的特殊实例方法。UDAF要求用户实现的accumulate - [UDF 错误处理与重试](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0121.md): 在AI数据工程中,UDF常涉及网络调用、外部模型推理、数据解析等易出错操作。当UDF执行遇到异常时,默认行为是直接抛出异常并中断整个查询。但在实际业务中,用户往往需要更灵活的错误处理策略,例如:静默忽略:部分数据异常不影响整体结果,希望跳过错误行继续执行。日志记录:记录错误信息用于事后排查,但不中断查询。自动重试:网络超时、服务临时不可用 - [环境变量设置](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0122.md): env_vars允许在UDF调用时动态注入环境变量到Actor进程,无需为不同环境变量配置创建冗余UDF定义。在UDF中通过os.environ访问:Python侧在with_arguments() 中执行严格类型校验:env_vars的key必须符合POSIX规范^[a-zA-Z_][a-zA-Z0-9_]*$,最大长度1022字节。内 - [UDF Actor放置策略](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0123.md): scheduling_strategy用于控制UDF Actor的放置策略,支持两种策略类型。控制同一查询的多个Actor实例的放置关系:SAME_REQUIRED首次分发限制:首次分发时pod上不存在同查询已分发实例标签,无法满足required约束,会返回ERROR。仅在多个Actor按序分发时有效。生产推荐SAME_PREFERRE - [Python UDF性能调优](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0124.md): Aura支持统计运行时的关键性能指标,根据性能指标,用户可以调整UDF运行时的资源规格和并行度。使用explain performance可以打印UDF Actor运行的性能指标。如图1所示,统计了函数calculate_0311在每个DN所对应的UDF Actor的性能情况。下文以图中三行性能数据为例进行说明。executor0000_ - [DataFrame示例](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0126.md): 本章节提供了类Pandas的Python DataFrame SDK,方便用户使用Python编写数据处理作业;同时利用Aura内核高效的计算能力,为数据科学家、AI工程师等提供了易用、高效的数据处理能力。本特性基于Ibis Python DataFrame开源框架实现,将Ibis前端框架与Aura引擎对接。用户可基于熟悉的Ibis Da - [语音识别示例](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0127.md): 本案例介绍如何定义Vectorized Scalar UDF来进行语音识别、如何定义UDAF来进行聚合统计和可视化。 - [视频帧描述与摘要生成示例](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0128.md): 本示例将介绍如何使用API实现以下功能:使用UDTF(用户定义表函数)提取关键视频帧并生成对应的帧描述。应用UDAF(用户定义聚合函数)将多个帧描述综合成连贯的视频摘要。本示例需要以下Python包:创建服务器连接。import os from aura_frame.multimodal import ai_lake from conte - [接口总览](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0130.md): Aura DataFrame主要包含数据处理、数据管理、输入/输出、辅助工具、触发执行五个部分:数据处理:支持丰富的变换操作,如map()、flat_map()、filter()、join()、groupby()等,可对样本进行特征工程和结构化处理。数据管理:提供对数据集的增删改查能力,包括insert()、update()、delete - [Dataset APIs](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0132.md): 描述:获取Dataset的所有列的列名集合。输入参数:无返回值类型:tuple[str, ...]示例:描述:给一个Dataset添加列。输入参数:exprs (Union[Sequence[Expr], None]) :要添加为列的命名表达式序列。mutations(Value) :使用关键字参数的命名表达式。返回值类型:已添加新列的D - [Table APIs](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0133.md): 描述:用于将Dataset插入到数据库表中。输入参数:data (dataset.Dataset):要插入的Dataset对象,必须是aura_frame.multimodal.dataset.Dataset类型。overwrite (bool):是否覆盖已存在的数据,默认为False。返回值类型:None描述:用于显示表的前N行数据。输 - [User-Defined Function APIs](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0134.md): 显式注册的含义是用户需要手动在Python代码中侵入式添加注册逻辑代码,需要用户使用backend...register/register_from_file来实现,调用即注册。显式注册依赖于已经获得backend会话对象才能进行。推荐使用显式注册的场景:如果用户希望明确控制注册时间,允许侵入式添加注册逻辑,或对同一个Backend连接下 - [Session APIs](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0135.md): 描述:从指定数据库加载数据集。输入参数:name (str) :要加载的Dataset的名称。database (Optional[str]) :要加载Dataset的数据库名称。如果未提供,则使用默认数据库。返回值类型:Dataset。描述:配置函数部署所需的临时工作区,包括设置必要的凭证和存储信息。输入参数:obs_server (s - [AI APIs](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0136.md): 描述: 使用大语言模型生成文本,并将生成结果作为新列添加到Dataset中。model_name需已注册。输入参数:prompt (str):文本生成的提示词模板。输入列的内容将被追加到此提示词后。on (ir.Column):包含待处理输入数据的Dataset列。as_col (str):存储生成文本的新列名称。model_name ( - [I/O APIs](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0137.md): 描述:将数据写入指定的Iceberg表中。输入参数:target_name (str) :目标表的名称。database (str) :表所属的数据库。create_if_not_exists (bool) :如果为True,当表不存在时将自动创建该表。overwrite (bool):如果为True,将覆盖表中现有的数据。is_exte - [Aura服务权限介绍](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0139.md): AI DataLake服务Aura计算引擎是华为云服务,用户体系遵从华为云统一身份认证服务IAM和IAM身份中心,包括用户、用户组、委托。AI DataLake服务对接统一的元数据管理服务LakeFormation,权限体系对接LakeFormation权限管理,针对Catalog、数据库、表、模型、函数等数据资源的权限控制,推荐使用La - [用户管理](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0140.md): Aura计算引擎作为数据库类查询系统,提供了多个SQL语句,支持用户、用户组、委托、角色的管理能力。查询用户SELECT * FROM pg_show_users();查询用户组SELECT * FROM pg_show_user_groups();查询代理SELECT * FROM pg_show_agents();查询角色SELECT - [权限介绍](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0142.md): 权限表示用户访问某个数据库对象(包括表、视图、函数、模型等)的操作(包括增、删、改、查、创建等)是否被允许。Aura的权限管理分为两种场景:数据对象权限将数据库对象(表和视图、指定字段、数据库、函数、模式等)的相关权限授予特定角色或用户。GRANT命令将数据库对象的特定权限授予一个或多个角色。这些权限会追加到已有的权限上。将数据库对象(表 - [角色管理](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0143.md): Aura的权限管理模型,是一种典型的RBAC(基于角色的权限控制)的实现,将用户、角色、权限通过此模型管理起来。角色是一组权限的集合:按照数据库系统中承担的责任划分具有不同权限的角色。角色是数据库权限的集合,代表了一个用户或一组用户的行为约束。通过GRANT语句把角色授予用户后,用户即具有了角色的所有权限。推荐使用角色进行高效权限分配。例 - [对象授权/取消授权管理](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0144.md): 对象支持的权限列表对象类型READWRITEDESCRIBEEXECUTEINSERTSELECTUPDATEDELETEALTERDROPDATABASE✓✓✓-----✓✓SCHEMA✓✓✓-----✓✓TABLE--✓-✓✓✓✓✓✓FUNCTION--✓✓----✓✓PATH✓✓--------对象授权支持的权限类型Aura对象Au - [SQL on Iceberg](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0145.md): Apache Iceberg是一种面向海量分析数据集的开放表格式。它通过高性能表格式为计算引擎添加表功能,使用方式与SQL表完全一致。Iceberg专为超大规模表而构建,已在实际业务环境中得到应用,单个表可容纳数十PB数据,且即使如此庞大的表也无需分布式SQL引擎即可读取。关于SQL on Iceberg的更多信息,请参见Iceberg功 - [SQL on Lance](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0146.md): Lance是一种基于Apache Arrow生态构建的高性能列式数据存储格式,由LanceDB团队主导开发,旨在实现接近Arrow内存格式的数据访问性能,同时支持事务管理、索引和增量更新。Lance不仅适用于离线批处理分析,还重点支持在线查询、向量检索和人工智能应用,是一种面向AI与数据湖融合场景的新型存储格式。关于SQL on Lanc - [关键字](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0148.md): SQL里有保留字和非保留字之分。根据标准,保留字绝不能用做其他标识符。非保留字只是在特定的环境里有特殊的含义,而在其他环境里是可以用做标识符的。 - [与LakeFormation的数据类型映射关系](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0150.md): Aura中定义的数据类型与LakeFormation中的类型存在明确的映射关系,如下表所示: - [数值类型](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0151.md): 数值类型也叫数字类型。由1、2、4或8字节的整数以及4或8字节的浮点数和可选精度小数组成。对应的数字操作符和相关函数,请参见数字操作函数和操作符。Aura支持的数值类型按精度可以分为:整数类型,任意精度型,浮点类型和序列整型。SMALLINT、INTEGER和BIGINT类型存储整个数值(不带有小数部分),也就是整数。如果尝试存储超出范围 - [布尔类型](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0152.md): “真”值的有效文本值是:TRUE、't'、'true'、'y'、'yes'、'1'。“假”值的有效文本值是:FALSE、'f'、'false'、'n'、'no'、'0'。使用TRUE和FALSE是比较规范的用法(也是SQL兼容的用法)。显示用字母t和f输出boolean值。 - [字符类型](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0153.md): Aura支持的字符类型请参见表1。字符串操作符和相关的内置函数请参见字符处理函数和操作符。除了每列的大小限制以外,每个元组的总大小也不可超过1GB-8023B(即1073733621B)。对于字符串数据,建议使用变长字符串数据类型,并指定最大长度。请务必确保指定的最大长度大于需要存储的最大字符数,避免超出最大长度时出现字符截断现象。除非明 - [二进制类型](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0154.md): Aura支持的二进制类型请参见表1。除了每列的大小限制以外,每个元组的总大小也不可超过1G-8203字节。示例 - [日期/时间类型](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0155.md): Aura支持的日期/时间类型请参见表1。该类型的操作符和内置函数请参见时间、日期处理函数和操作符。如果其他的数据库时间格式和Aura的时间格式不一致,可通过修改配置参数DateStyle的值来保持一致。示例:日期和时间的输入几乎可以是任何合理的格式,包括ISO-8601格式、SQL-兼容格式、传统POSTGRES格式或者其它的形式。系统支 - [对象标识符类型](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0156.md): Aura在内部使用对象标识符(OID)作为各种系统表的主键。系统不会给用户创建的表增加一个OID系统字段,OID类型代表一个对象标识符。目前OID类型用一个四字节的无符号整数实现。因此不建议在创建的表中使用OID字段做主键。OID类型:主要作为数据库系统表中字段使用。示例:OID别名类型REGCLASS:主要用于对象OID值的简化查找。示 - [隐式转换支持范围](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0157.md): Aura当前对于存储格式为orc或parquet的表类型,支持数值类型的隐式转换,即存储空间字节数多的类型向下兼容存储空间字节数少的类型。例如实际存储为orc::SHORT(2字节),建表类型为SMALLINT、INT、BIGINT时都可以正常查询,Aura当前支持的隐式转换范围如下表所示。 - [复杂类型](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0158.md): Aura中iceberg表、parquet表、orc表支持读写复杂类型列,包含managed表和external表,当前仅支持struct和array类型及其嵌套类型。当前DDL仅支持STRUCT和ARRAY类型。定义语法如下:ARRAY:定义语法为ARRAY。STRUCT:定义语法为STRUCTAND>OR。运算规则请参见表1,表中的a和b代表逻辑表达式。操作符AND和OR具有交换性,即交换左右两个操作数,不影响其结果。 - [比较操作符](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0177.md): 比较操作符可用于所有相关的数据类型,并返回布尔类型数值。所有比较操作符都是双目操作符,被比较的两个数据类型必须是相同的数据类型或者是可以进行隐式转换的类型。例如1<2<3这样的表达式为非法的,因为布尔值和3之间不能做比较。Aura提供的比较操作符请参见表1。 - [模式匹配操作符](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0178.md): 数据库提供了三种实现模式匹配的方法:SQL LIKE操作符和POSIX-风格的正则表达式。除了这些基本的操作符外,还有一些函数可用于提取或替换匹配子串并在匹配位置分离一个串。判断字符串是否能匹配上LIKE后的模式字符串。如果字符串与提供的模式匹配,则LIKE表达式返回为真(NOT LIKE表达式返回假),否则返回为假(NOT LIKE表达 - [聚集函数](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0179.md): 描述:所有输入行的expression总和。返回类型:通常情况下输入数据类型和输出数据类型是相同的,但以下情况会发生类型转换:对于SMALLINT或INT输入,输出类型为BIGINT。对于BIGINT输入,输出类型为NUMBER 。对于浮点数输入,输出类型为DOUBLE PRECISION。示例:描述:所有输入行中expression的最 - [窗口函数](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0180.md): 普通的聚集函数只能用来计算一行内的结果,或者把所有行聚集成一行结果。而窗口函数可以跨行计算,并且把结果填到每一行中。通过查询筛选出的行的某些部分,窗口调用函数实现了类似于聚集函数的功能,所以聚集函数也可以作为窗口函数使用。 窗口函数可以扫描所有的行,并同时将原始数据和聚集分析结果同时显示出来。列存表目前只支持窗口函数rank(expres - [类型转换函数](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0181.md): 描述:类型转换函数,将x转换成y指定的类型。示例:描述:类型转换函数,将x转换成y指定的类型。示例:描述:将x转换成给定的type类型值,如果转换失败且当前类型转换为Aura允许的转换,则返回NULL,否则报错。示例:描述:获取系统时间戳。返回值类型:timestamp with time zone示例:描述:将一个DATE、TIMEST - [JSON/JSONB操作符](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0183.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [JSON/JSONB函数](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0184.md): JSON/JSONB函数表示可以用于JSON类型数据的函数。有关JSON/JSONB函数和操作符仅8.1.2及以上集群版本支持。描述:将值聚合为json数组。返回类型:array-json示例:描述:将值聚合为json对象。返回类型:json示例:描述:从可变参数列表中构建一个可能是异构类型的JSON数组。返回类型:json示例:描述:从 - [条件表达式函数](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0185.md): 描述:返回参数列表中第一个非NULL的参数值。COALESCE(expr1, expr2) 等价于CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END。示例:如果表达式列表中的所有表达式都等于NULL,则本函数返回NULL。它常用于在显示数据时用缺省值替换NULL。和CASE表达式一样 - [序列号生成函数](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0187.md): generate_series()函数根据指定的开始值(start)、结束值(stop)和步长(step)返回一个基于系列的集合。generate_series()函数的入参中,当step是正数且start大于stop,则返回零行。相反,当step是负数且start小于stop,则返回零行。如果任何输入为NULL也会返回零行。如果step - [会话信息函数](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0189.md): 描述:当前会话连接的服务进程的进程ID。返回值类型:integer示例:描述:等价于current_user。返回值类型:name示例:描述:获取元数据服务器连接配置信息。返回值类型:record示例:描述:版本信息。version返回一个描述服务器版本信息的字符串。返回值类型:text示例: - [系统表信息函数](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0190.md): 描述:获取数据类型的SQL名称。返回类型:text备注:format_type通过数据类型的类型OID以及可能的类型修饰词,返回其SQL名称。如果不知道具体的修饰词,则在类型修饰词的位置传入NULL。类型修饰词一般只对有长度限制的数据类型有意义。format_type所返回的SQL名称中包含数据类型的长度值,其大小是:实际存储长度len - [系统函数信息函数](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0191.md): 描述:查询系统内置函数的信息。返回类型:record示例: - [状态信息函数](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0192.md): 描述:用于查看指定会话的执行单元线程之间的等待状态。返回值类型:record函数返回信息如下:示例:描述:用于查看会话过程中YR接口调用的统计信息。返回值类型:record函数返回信息如下:示例: - [内存管理函数](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0194.md): 内存管理函数仅25.5.0及以上集群版本支持。描述:用于查看所有后端actor节点的内存使用情况。返回值类型:record函数返回信息如下:描述:查询指定actor进程中共享内存上下文的统计信息。参数:actor_name,表示actor名称。返回值类型:record示例:描述:查询指定actor、名字为contextname的共享内存上 - [数据库对象尺寸函数](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0196.md): 描述:获取表大小,计算表目录下所有文件的总大小。返回值类型:int64描述:获取表大小,返回表目录下所有文件的路径和大小信息。返回值类型:file_path:text类型,文件路径。file_name:text类型,文件名。file_size:int64类型,文件大小。file_etag:text类型,文件etag。file_last_m - [统计信息函数](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0197.md): 描述:返回一个关于带有特殊PID的后台进程的记录信息,当参数为NULL时,则返回每个活动的后台进程的记录。返回结果是PG_STAT_ACTIVITY视图中的一个子集,不包含connection_info列。返回值类型:setof record描述:获取CN或DN进程的堆栈信息,函数入参actor_name、tid均需要通过视图或其他函数进 - [Iceberg表服务函数](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0198.md): 描述:Iceberg每个commit都会生成一个新快照,同时保留旧数据和元数据,以便进行快照隔离和time travel。expire snapshots可以用来清理不再需要的旧快照以及仅被不需要快照包含的数据文件,以提高查询、成本效率。注意事项:要明确旧快照的清理、保留策略。执行旧快照清理后,被删除的旧快照数据将无法再通过常规查询访问, - [大模型推理函数](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0200.md): 描述:调用 CREATE MODEL创建的远端模型进行推理。语法:入参说明:model_name:创建的模型名。prompt:发送给远端模型的提示词,可以是CONCAT(prompt_prefix, column_name),或者纯文本字符串,或者 column_name。model_hyper_parameter:远端模型推理的超参数 - [简单表达式](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0202.md): 逻辑表达式的操作符和运算规则,请参见逻辑操作符。常用的比较操作符,请参见比较操作符。除比较操作符外,还可以使用以下句式结构:BETWEEN操作符a BETWEEN x AND y等效于a >= x AND a <= ya NOT BETWEEN x AND y等效于a < x OR a > ya BETWEEN x AND - [条件表达式](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0203.md): 在执行SQL语句时,可通过条件表达式筛选出符合条件的数据。条件表达式主要有以下几种:CASECASE表达式是条件表达式,类似于其他编程语言中的CASE语句。CASE表达式的语法图请参考图1。case::=CASE子句可以用于合法的表达式中。condition是一个返回BOOLEAN数据类型的表达式:如果结果为真,CASE表达式的结果就是符 - [子查询表达式](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0204.md): 子查询表达式主要有以下几种:EXISTS/NOT EXISTSEXISTS/NOT EXISTS的语法图请参见图1。EXISTS/NOT EXISTS::=EXISTS的参数是一个任意的SELECT语句,或者说子查询。系统对子查询进行运算以判断它是否返回行。如果它至少返回一行,则EXISTS结果就为"真";如果子查询没有返回任何行, EX - [数组表达式](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0205.md): expressionIN(value [, ...])右侧括号中的是一个表达式列表。左侧表达式的结果与表达式列表的内容进行比较。如果列表中的内容符合左侧表达式的结果,则IN的结果为true。如果没有相符的结果,则IN的结果为false。示例如下:如果表达式结果为null,或者表达式列表不符合表达式的条件且右侧表达式列表返回结果至少一处为空 - [行表达式](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0206.md): 语法:row_constructor operator row_constructor两边都是一个行构造器,两行值必须具有相同数目的字段,每一行都进行比较,行比较允许使用=,<>,<,<=,>=等操作符,或其中一个相似的语义符。=<>和别的操作符使用略有不同。如果两行值的所有字段都是非空并且相等,则认为两行是相等的;如果两行值的任意字段为 - [概述](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0208.md): 在SQL语言中,每个数据都与一个决定其行为和用法的数据类型相关。Aura提供一个可扩展的数据类型系统,该系统比其它SQL实现更具通用性和灵活性。因而,Aura中大多数类型转换是由通用规则来管理的,这种做法允许使用混合类型的表达式。Aura扫描/分析器只将词法元素分解成五个基本种类:整数、浮点数、字符串、标识符和关键字。大多数非数字类型首先 - [操作符](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0209.md): 从系统表pg_operator中选出要考虑的操作符。如果可以找到一个参数类型以及参数个数都一致的操作符,那么这个操作符就是最终使用的操作符。如果找到了多个备选的操作符,将从中选择一个最合适的。寻找最优匹配。丢弃输入类型不匹配以及无法隐式转换成匹配的候选操作符。unknown文本在这种情况下可以转换成任何类型。如果只剩下一个候选操作符,则使 - [函数](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0210.md): 从系统表pg_proc中选择所有可能被选到的函数。如果使用了一个不带模式修饰的函数名字,那么认为该函数是那些在当前搜索路径中的函数。如果给出一个带修饰的函数名,那么只考虑指定模式中的函数。如果搜索路径中找到了多个不同参数类型的函数。将从中选择一个合适的函数。如果搜索路径中找到了多个不同参数类型的函数。将从中选择一个合适的函数。查找和输入参 - [值存储](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0211.md): 查找与目标字段准确的匹配。试着将表达式直接转换成目标类型。如果已知这两种类型之间存在一个已登记的转换函数,那么直接调用该转换函数即可。如果表达式是一个未知类型文本,该文本字符串的内容将交给目标类型的输入转换过程。检查目标类型是否有长度转换。长度转换是一个从某类型到自身的转换。如果在pg_cast表里面找到一个,那么在存储到目标字段之前先在 - [UNION,CASE和相关构造](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0212.md): SQL UNION构造把不相同的数据类型进行匹配输出为统一的数据类型结果集。因为SELECT UNION语句中的所有查询结果必须在一列里显示出来,所以每个SELECT子句中的元素类型必须相互匹配并转换成一个统一的数据类型。类似地,一个CASE构造的结果表达式必须转换成统一的类型,这样整个case表达式会有一个统一的输出类型。同样的要求也存 - [SHOW Conf](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0215.md): SHOW将显示当前运行时参数的数值。可以使用SET语句来设置这些参数。SHOW可以查看的某些参数是只读的,可以查看但不能设置它们的值。configuration_parameter运行时参数的名称。取值范围:可以使用SHOW ALL命令查看运行时参数。部分通过SHOW ALL查看的参数不能通过SET设置。如max_datanodes。运行 - [SHOW Schemas/Tables/Views/Partitions/Functions/Models](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0216.md): SHOW为Aura服务下特有语法,该语法功能是列举LakeFormation上指定对象下的子对象信息。无。无。列举当前Catalog下的所有数据库。列举LakeFormation上test_schema数据库下面的所有表。列举LakeFormation上test_table表的所有分区。列举LakeFormation上当前数据库下面的所有 - [CREATE SCHEMA](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0217.md): CREATE SCHEMA为Aura服务下特有语法,该语法功能是在LakeFormation上创建指定名称的Database。Aura没有集群概念,不会存储任何元数据,所有元数据均存放于LakeFormation,因此用户在创建External Schema后,可以登录LakeFormation界面,查看创建的元数据。schema_nam - [DROP SCHEMA](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0218.md): DROP SCHEMA为Aura服务下特有语法,该语法功能是在LakeFormation上删除指定名称的Database。在删除Schema数据时,如果用户数据量很大,可能会导致语句执行时间过长。IF EXISTS如果指定的模式不存在,发出一个notice而不是抛出一个错误。如果指定的模式不存在,发出一个notice而不是抛出一个错误。s - [CREATE TABLE](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0219.md): CREATE TABLE为Aura服务下特有语法,该语法功能是在LakeFormation上创建指定名称的表。关于表达式分区表的详细说明,请参考表达式分区。PARTITION BY中出现的列不能出现在表的普通列描述中,分区列始终排在普通列的后面。PARTITION BY中支持的最大分区键数目是4。CLUSTERED BY语法适用范围:OR - [CREATE VIEW](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0220.md): CREATE VIEW语法功能是在LakeFormation上创建指定名称的视图。OR REPLACE如果存在同名视图,则将会创建新视图并覆盖老视图的元数据。如果存在同名视图,则将会创建新视图并覆盖老视图的元数据。schema_name视图所属的数据库名,如果未指定数据库名时,则将在current_schema下创建视图。视图所属的数据库 - [CREATE FUNCTION](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0221.md): 创建一个自定义函数。创建自定义函数语法。CREATE [AGGREGATE] FUNCTION function_name ( [ { argname argtype } ] [, ...] ] ) [ RETURNS [SETOF] rettype | RETURNS TABLE ( { column_nam - [CREATE MODEL](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0222.md): 保存大模型元信息到LakeFormation。供大模型推理函数的ai_generate查询调用。仅支持远端大模型调用。 - [DROP TABLE](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0223.md): DROP TABLE为Aura服务下语法,该语法功能是删除LakeFormation上指定名称的表。在删除管控表(MANAGED TABLE)时,会同时删除表元数据、统计信息和数据,如果用户数据量很大,可能会导致语句执行时间过长;删除外表(EXTERNAL TABLE)时,仅删除表的元数据及统计信息,不会删除数据。IF EXISTS如果指 - [DROP VIEW](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0224.md): DROP VIEW的语法功能是删除LakeFormation上指定名称的视图。IF EXISTS如果指定的视图不存在,则发出一个提示而不会报错。如果指定的视图不存在,则发出一个提示而不会报错。view_nameLakeFormation的视图名字。LakeFormation的视图名字。删除视图test_view,但不会删除视图所依赖的表: - [DROP FUNCTION](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0225.md): 删除一个已存在的函数。无法删除内置函数,只支持删除自定义函数。删除一个自定义函数 - [DROP MODEL](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0226.md): 删除一个已存在的模型。 - [ALTER TABLE](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0227.md): ALTER TABLE为Aura服务下特有语法,该语法功能是修改LakeFormation上表的元数据信息,用于调整数据表的结构或属性。ADD COLUMNS、DROP COLUMNS、COLUMN RENAME、ALTER COLUMN语法仅对ICEBERG表生效,ORC、PARQUET表无法对列进行操作。列位置操作、复杂类型字段操作仅 - [DESCRIBE](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0228.md): DESCRIBE为Aura服务下特有语法,该语法功能是显示LakeFormation上指定对象的详细信息。描述目标表的详细信息:描述目标数据库的详细信息:描述目标视图的详细信息:描述test_schema的函数function_name的详细信息:描述目标模型的详细信息: - [MSCK REPAIR TABLE](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0229.md): MSCK REPAIR TABLE为Aura服务下特有语法,该语法功能是将数据目录上的分区信息同步到元数据存储引擎上。无。无。同步分区信息: - [TRUNCATE](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0230.md): TRUNCATE为Aura服务下特有语法,该语法功能是将表数据清空。外表(EXTERNAL TABLE)不支持TRUNCATE。Iceberg表不支持TRUNCATE PARTITION语法。table_name清空数据的目标表名。清空数据的目标表名。PARTITIONS如果指定PARTITIONS关键字,则只清空目标分区的数据。PART - [CREATE INDEX](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0231.md): 使用CREATE INDEX可以基于一个外表的一个或多个列建索引。索引是一个对象,它为索引列的每种取值建立一个记录用来快速找到其对应在外表中的一行或多行。Aura目前支持的索引是:Lance外表格式的向量索引。目前仅支持Lance外表的向量索引。向量索引的算法支持{ivfflat, ivfpq, ivfrq, ivfsq, hnsw, h - [DROP INDEX](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0232.md): 使用DROP INDEX可以删除一个已经建好的索引。目前仅支持删除Lance外表的索引。index_name:索引名。table_name:建索引的目标表名。 - [SHOW INDEX](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0233.md): 使用SHOW INDEX可以打印Lance表上已经建好的索引,返回表包含3列:表名、索引名与索引列名。如果指定表名,则仅展示当前Lance表上所有的索引信息;如果不指定表名,则展示当前数据库内部所有Lance表上的所有索引信息。目前仅支持显示Lance外表的索引。table_name:目标表名。 - [ALTER INDEX](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0234.md): 使用ALTER INDEX可以重建或优化已创建的索引。目前仅支持优化Lance外表的索引。index_name:索引名。table_name:建索引的目标表名。 - [CREATE ROLE](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0235.md): 使用CREATE ROLE语法在LakeFormation服务中创建一个角色。role_name:角色名称。comment_text:描述信息。 - [DROP ROLE](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0236.md): 使用DROP ROLE语法在LakeFormation服务中删除一个角色。role_name:角色名称。 - [ALTER ROLE](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0237.md): 使用ALTER ROLE语法在LakeFormation服务中修改一个角色。语法一ALTER ROLE role_name [ options ] name_list ;其中,options可以为:| ADD USER/USER GROUP/AGENT | DROP USER/USER GROUP/AGENT其中,options可以为:语 - [ALTER USER](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0238.md): 使用ALTER USER语法在LakeFormation服务中将用户关联给角色。role_name:用户名称。role_list:角色名称列表。 - [ALTER USER GROUP](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0239.md): 使用ALTER USER GROUP语法在LakeFormation服务中将用户组关联给角色。groupname:用户组名称。role_list:角色名称列表。 - [DML语法一览表](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0241.md): DML(Data Manipulation Language,数据操作语言),用于对数据库表中的数据进行操作。如:插入、更新、查询、删除。插入数据是往数据库表中添加一条或多条记录,请参考INSERT。数据库查询语句SELECT是用于在数据库中检索适合条件的信息,请参考SELECT。 - [EXPLAIN](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0242.md): 显示SQL语句的执行计划。执行计划将显示SQL语句所引用的表采用的扫描方式。如果引用了多个表,执行计划还会显示使用的JOIN算法。执行计划中最关键的部分是语句的预计执行开销,即计划生成器对执行该语句所需时间的预估。如果指定了ANALYZE选项,则该语句会被执行,然后根据实际的运行结果显示统计数据,包括每个计划节点内时间总开销(毫秒为单位) - [INSERT](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0243.md): 向表中添加一行或多行数据。只有拥有表INSERT权限的用户才可以向表中插入数据。如果使用RETURNING子句,用户必须要有该表的SELECT权限。如果使用QUERY子句插入来自查询里的数据行,用户还需要拥有在查询里使用的表的SELECT权限。如果使用OVERWRITE子句覆盖式插入数据,用户还需要拥有该表的SELECT和TRUNCATE - [VALUES](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0244.md): 根据给定的值表达式计算一个或一组行的值。它通常用于在一个较大的命令内生成一个“常数表”。应当避免使用VALUES返回数量非常大的结果行,否则可能会遭遇内存耗尽或者性能低下。尤其对于INSERT INTO VALUES语法,建议使用在小数据量插入的场景。对于大数据量的插入,建议使用产品提供的其它导入方式进行。如果指定了多行,那么每一行都必须 - [DELETE](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0245.md): 从指定的表里删除满足WHERE子句的行。如果WHERE子句不存在,将删除表中所有行,结果只保留表结构。目前仅Iceberg表支持Delete。要删除表中的数据,用户必须对它有DELETE权限。同样也必须有USING子句引用的表以及condition上读取的表的SELECT权限。避免使用DELETE删除全表数据,考虑使用TRUNCATE T - [MERGE INTO](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0246.md): 在数据处理和分析的场景中,用户经常需要将一个数据源的数据合并到另一个数据源中,例如将增量数据合并到主表中。然而,在实际操作中,由于缺乏有效的单一语句支持,用户不得不使用多个语句组合来实现这一功能,这不仅降低了处理效率,还可能影响数据的一致性和准确性。如何在保证数据处理效率的同时,确保数据的一致性和准确性,成为了一个亟待解决的问题。为此,A - [OPTIMIZE](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0247.md): 对目标表的指定数据进行重写。目前仅Iceberg表支持该语法。如果用户指定了排序键,数据重写后,文件内数据有序,而无法保证全局有序。建议选择重写条件时,按照分区维度编辑重写条件。table_name:目标表的名字。取值范围:已存在的表名。condition:一个返回boolean值的表达式,用于判断哪些文件需要被重写。target_lis - [UPDATE](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0248.md): 更新表中的数据。UPDATE修改满足条件的所有行中指定的字段值,WHERE子句声明条件,SET子句指定的字段会被修改,没有出现的字段则保持它们的原值。目前仅Iceberg表支持Update。要修改表中的数据,用户必须对它有UPDATE权限。同样对expression或condition条件里涉及到的任何表要有SELECT权限。试图在一个S - [ANALYZE | ANALYSE](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0250.md): 用于收集有关数据库中表内容的统计信息,统计结果存储在LakeFormation上。执行计划生成器会使用这些统计数据,以确定最有效的执行计划。能够执行ANALYZE特定表的用户,包括表的所有者、被授予该表上读取权限的用户。ANALYZE会扫描表数据,同时会产生计费。收集全表的统计信息。{ ANALYZE | ANALYSE } table_ - [GRANT](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0251.md): 使用GRANT语法在LakeFormation服务中进行授权操作。WITH GRANT表示级联授权,被授权的用户可以给其它用户授予相同权限。其中:privileges可以为:| [ READ, WRITE, DESCRIBE, EXECUTE, ALTER, DROP, INSERT, SELECT, UPDATE, DELETE ] [ - [REVOKE](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0252.md): 使用REVOKE语法在LakeFormation服务中进行取消授权操作。WITH GRANT表示级联授权,被授权的用户可以给其它用户授予相同权限。其中:privileges可以为:| [ READ, WRITE, DESCRIBE, EXECUTE, ALTER, DROP, INSERT, SELECT, UPDATE, DELETE - [SELECT](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0254.md): SELECT用于从表中读取数据。SELECT语句就像叠加在数据库表上的过滤器,利用SQL关键字从数据表中过滤出用户需要的数据。必须对每个在SELECT命令中使用的字段有查询权限。condition和expression中可以使用targetlist中表达式的别名。只能同一层引用。只能引用targetlist中的别名。只能是后面的表达式引用 - [WITH表达式](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0255.md): WITH表达式用于定义在大型查询中使用的辅助语句,这些辅助语句通常被称为公共表达式或CTE(即common table expression),可以理解为一个带名称的子查询,之后该子查询可以以其名称在查询中被多次引用。WITH表达式中的辅助语句可以是SELECT,并且WITH子句本身也可以被附加到一个主语句中,主语句可以是SELECT、I - [查看和设置GUC参数](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0257.md): 为确保Aura的最优性能,用户可根据业务需求对数据库中的GUC参数进行调整。数据库提供了许多运行参数,配置这些参数可以影响数据库系统的行为。在修改这些参数时请确保已了解对应参数对数据库的影响,否则可能会导致无法预料的结果。参数中如果取值范围为字符串,此字符串应遵循操作系统的路径和文件名命名规则。取值范围最大值为INT_MAX的参数,此选项 - [安全和认证](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0259.md): 参数说明:表明与服务器建立连接后,不进行任何操作的最长时间。取值范围:整型,0~86400,最小单位为秒(s),0表示关闭超时设置。默认值:10min参数说明:表明内核夯检测的超时时长。取值范围:整型,0-2147483647,最小单位为分钟。0表示关闭夯检测功能。默认值:5min - [优化器方法配置](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0261.md): 以下配置参数提供了影响查询优化器选择查询规划的原始方法。如果优化器为特定的查询选择的缺省规划并不是最优的,可以通过使用这些配置参数强制优化器选择一个不同的规划来临时解决这个问题。更好的方法包括调节优化器开销常量、手动运行ANALYZE、增加配置参数default_statistics_target的值。参数说明:控制优化器对Hash连接规 - [其他优化器选项](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0262.md): 参数说明:为没有用ALTER TABLE SET STATISTICS设置字段目标的表设置缺省统计目标。此参数设置为正数是代表统计信息的样本数量,为负数时,代表使用百分比的形式设置统计目标,负数转换为对应的百分比,即-5代表5%。采样时,会将default_statistics_target * 300作为随机抽样的大小,例如默认值为10 - [语句行为](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0264.md): 介绍SQL语句执行过程的相关默认参数。参数说明:当一个被引用对象没有指定模式时,此参数设置模式搜索顺序。它的值由一个或多个模式名构成,不同的模式名用逗号隔开。当前会话存放临时表的模式时,可以使用别名pg_temp将它列在搜索路径中,如pg_temp,public。 存放临时表的模式始终会作为第一个被搜索的对象,排在pg_catalog和s - [区域和格式化](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0265.md): 介绍时间格式设置的相关参数。参数说明:设置日期和时间值的显示格式,以及有歧义的输入值的解析规则。这个变量包含两个独立的部分:输出格式声明(ISO、Postgres、SQL、German)和输入输出的年/月/日顺序(DMY、MDY、YMD)。这两个可以独立设置或者一起设置。关键字Euro和European等价于DMY;关键字US、NonEu - [锁管理](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0266.md): 在Aura中,使用LakeFormation中心锁来保证多计算节点并发写入同一张表时的正确性。本节介绍的参数主要管理LakeFormation中心锁的相关行为。参数说明:控制获取锁的最长等待时间。当申请锁的等待时间超过设定值时,系统会报错。取值范围:整型,0 ~ INT_MAX,单位为毫秒(ms)。如果该参数的值等于0,表示至多允许申请一 - [Python UDF](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0267.md): 与Python UDF相关的GUC参数介绍。参数说明:配置python udf执行时with arguments中部分参数的默认值。当with arguments未指定下列参数时,会默认使用python_udf_spec设置的GUC值。set python_udf_spec = '{"key1":value1, ..}',表示覆盖已有GU - [向量检索](https://support.huaweicloud.com/sqlref-aura-aidatalake/aidatalake_061_0268.md): 参数说明:设置Lance向量检索相关参数,包括探测分区数、重排序因子以及分布式TopK剪枝策略。参数格式为逗号分隔的键值对,每个键值对以(key:value)形式表示。参数选项及取值:默认值:(nprobes:1024), (refine_factor:0), (large_topk_threshold:0), (global_topk_ ## Spark语法参考 - [Spark SQL语法概览](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0001.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [约束与限制](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0002.md): 目前普通格式的表和Iceberg表都暂不支持执行如下SQL语句:SETUSEUSE DATABASEREFRESH RESOURCECACHE TABLEUNCACHE TABLECLEAR CACHEREFRESH TABLERESETLIST JARSLIST FILESADD JARADD FILE - [创建数据库](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0004.md): 创建数据库。IF NOT EXISTS:所需创建的数据库已存在时不报错,静默跳过。COMMENT:对数据库的描述。LOCATION:指定数据库在文件系统中的存储路径。必须指定,且为OBS格式。例如obs://bucket-name/db-path/。不指定LOCATION或不满足格式要求将报错。WITH DBPROPERTIES:数据库的 - [删除数据库](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0005.md): 删除数据库及其关联的文件系统目录。如果数据库不存在,系统将抛出异常。IF EXISTS:所需删除的数据库不存在时使用,可避免系统报错。DATABASE与SCHEMA两者没有区别,可替换使用,建议使用DATABASE。RESTRICT表示如果该数据库不为空(有表存在),DROP操作会报错,执行失败,RESTRICT是默认逻辑。CASCADE - [查看指定数据库](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0006.md): 返回指定数据库的元数据信息,包括数据库名称、数据库描述、文件系统上的存储路径等。如果指定EXTENDED选项,还会返回数据库的属性信息。EXTENDED:除了显示上述信息外,还会额外显示数据库的属性(DBPROPERTIES)信息。如果所要查看的数据库不存在,则系统报错。EXTENDED选项会额外显示DBPROPERTIES中定义的属性信 - [查看所有数据库](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0007.md): 查看当前工程下所有的数据库。可使用LIKE子句按正则表达式模式筛选数据库名称。如果不提供模式,则列出系统中所有数据库。LIKE:使用正则表达式模式筛选结果。DATABASES / SCHEMAS:两者等效,均可使用。DATABASES与SCHEMAS是等效的,都将返回所有的数据库名称。查看当前实例中的所有数据库。SHOW DATABASE - [修改数据库属性](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0008.md): ALTER DATABASE语句用于修改数据库的属性或位置。DATABASE、SCHEMA和NAMESPACE关键字可互换使用。如果数据库不存在,会报错。设置属性删除属性修改位置DATABASE / SCHEMA / NAMESPACE:三者等效,可互换使用,建议使用DATABASE。SET DBPROPERTIES / SET PROP - [表类型说明](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0010.md): AI DataLake Spark SQL端点支持两种表类型:External Table(外部表)和Managed Table(管理表)。AI DataLake的External Table(OBS表)与开源Spark的External Table概念一致,但建表语法不使用EXTERNAL关键字,这是与开源的主要差异点。通过指定LOCA - [使用DataSource语法创建Managed Table](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0012.md): 使用DataSource语法创建管理表。DataSource语法和Hive语法主要区别在于支持的表数据存储格式范围、支持的分区数等有差异,详细请参考语法格式和注意事项说明。CTAS建表语句不能指定表的属性。若没有指定分隔符,则默认为逗号(,)。关于分区表的使用说明:创建分区表时,PARTITIONED BY中指定分区列必须是表中的列,且必 - [使用Hive语法创建Managed Table](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0013.md): 使用Hive语法创建管理表。DataSource语法和Hive语法主要区别在于支持的表数据存储格式范围、支持的分区数等有差异,详细请参考语法格式和注意事项说明。CTAS建表语句不能指定表的属性。Hive管理表不支持在建表时指定多字符的分隔符。关于分区表的使用说明:创建分区表时,PARTITIONED BY中指定分区列必须是不在表中的列,且 - [使用DataSource语法创建External Table](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0014.md): 使用DataSource语法创建external表。DataSource语法和Hive语法主要区别在于支持的表数据存储格式范围、支持的分区数等有差异,详细请参考语法格式和注意事项说明。推荐使用OBS并行文件系统进行存储。并行文件系统是一种高性能文件系统,提供毫秒级别访问时延,TB/s级别带宽和百万级别的IOPS,适用于大数据交互式分析场景 - [使用Hive语法创建External Table](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0015.md): 使用Hive语法创建OBS表。DataSource语法和Hive语法主要区别在于支持的表数据存储格式范围、支持的分区数等有差异,详细请参考语法格式和注意事项说明。推荐使用OBS并行文件系统进行存储。并行文件系统是一种高性能文件系统,提供毫秒级别访问时延,TB/s级别带宽和百万级别的IOPS,适用于大数据交互式分析场景。创建表时会统计大小。 - [删除表](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0016.md): 删除表。DROP TABLE 用于删除已有的表及其元数据。OBS表(外部表):仅删除元数据信息,存放在OBS上的数据不会被删除。管理表:同时删除数据及相应的元数据信息。IF EXISTS:若指定,当表不存在时不会报错;若未指定且表不存在,将抛出异常。所要删除的表必须是当前数据库下存在的,否则会出错,可以通过添加 IF EXISTS 来避免 - [查看所有表](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0018.md): 查看当前数据库下所有的表及视图。可通过 IN / FROM 指定数据库,使用 LIKE 进行模式匹配筛选。无返回结果示例:查看 company_db 数据库下的所有表。查看当前数据库下所有以 emp 开头的表。查看 company_db 数据库下所有以 dept 开头的表。 - [查看建表语句](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0019.md): 返回对应表的建表语句(CREATE TABLE statement)。SHOW CREATE TABLE用于查看表的完整定义语句。默认返回DataSource格式的建表语句。使用AS SERDE子句可返回Hive格式的建表语句,适用于Hive SerDe表。SHOW CREATE TABLE [ db_name. ] table_name - [查看表属性](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0020.md): 查看表的属性。SHOW TBLPROPERTIES 用于返回表的属性键值对信息,可查看全部属性或指定属性的值。SHOW TBLPROPERTIES:查看表属性的关键字,TBLPROPERTIES和PROPERTIES可互换使用。property_name 大小写敏感。例如 'owner' 和 'Owner' 是不同的属性。不能同时指定多个 - [查看指定表所有列](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0021.md): 查看指定表中的所有列。可通过 FROM / IN 指定表所属的数据库。SHOW COLUMNS { FROM | IN } table_name [ { FROM | IN } db_name ]所指定的表必须是数据库中存在的表,否则会出错。第一组 FROM / IN 后跟表名,第二组 FROM / IN 后跟数据库名,两者功能相同但位置 - [查看指定表所有分区](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0022.md): 查看指定表的所有分区。可通过 PARTITION 子句指定分区条件进行筛选,支持部分分区键匹配。其中 partition_specs 的语法为:所要查看分区的表必须存在且是分区表,否则会出错。partition_specs 中可以只指定部分分区键,系统将返回所有匹配的分区。例如,对于 (year, month, day) 三级分区表,只指 - [查看表统计信息](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0023.md): 查看表的统计信息。默认返回所有列的列名和列数据类型,使用 EXTENDED 或 FORMATTED 可查看详细的表元数据信息。DESCRIBE 与 DESC 简写等效。{ DESCRIBE | DESC } [ EXTENDED | FORMATTED ] [ db_name. ] table_name若所查看的表不存在,将会出错。默认情 - [添加列](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0025.md): 添加一个或多个新列到表中。ADD COLUMNS:添加列。COMMENT:列描述。该SQL不建议并发执行,并发情况下添加列结果可能互相覆盖。为表t1添加一个INT类型的列age。为表t1同时添加column2和column3两个列。为表t1添加一个STRING类型的列address,并附带列注释。为数据库mydb中的表employee添加 - [修改列注释](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0026.md): 修改非分区表或分区表的列注释信息。Spark 4.0推荐使用ALTER COLUMN语法,同时兼容CHANGE COLUMN语法。语法一(推荐,Spark 4.0):ALTER TABLE [db_name.]table_name ALTER COLUMN col_name COMMENT 'col_comment';语法二(兼容):AL - [表别名](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0027.md): 给表或者子查询结果起别名。table_reference:可以是表、视图或者子查询。AS:可用于连接table_reference和alias,是否添加此关键字不会影响命令执行结果。所要查询的表必须是已经存在的,否则会出错。别名的命名必须在别名的使用之前,否则会出错。此外,建议不要重名。给表simple_table起别名为n,并利用n.n - [添加分区](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0029.md): 为已存在的OBS分区表添加一个或多个分区。该命令将分区元数据信息注册到元数据库中,使后续查询可以按分区列进行数据检索。OBS分区表生成分区信息主要有以下两种场景:向OBS分区表插入对应的分区数据,数据插入成功后自动生成分区元数据信息。手动拷贝分区目录和数据到OBS分区表路径下,再执行本命令添加分区元数据信息。向表中添加分区时,此表和分区列 - [重命名分区](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0030.md): 修改OBS分区表中某个分区的分区值。该命令仅支持操作OBS表,不支持对管理表进行操作。该命令仅支持操作OBS表,不支持对管理表进行操作。所要重命名分区的表和分区必须已存在,否则会出错。新分区名不能与其他分区重名,否则将出错。若分区表是按照多个字段进行分区的,重命名分区时需要指定所有的分区字段,指定字段的顺序可任意。partition_sp - [删除分区](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0031.md): 删除分区表的一个或多个分区。管理表和OBS表均支持使用本命令删除分区。对于OBS表,还可以使用指定筛选条件删除分区按条件批量删除。所要删除分区的表必须是已经存在的表,否则会出错。所要删除的分区必须是已经存在的,否则会出错,可通过语句中添加 IF EXISTS 避免该错误。对于OBS表,删除分区仅删除元数据,OBS目录中的数据文件不会自动删 - [修改表分区位置](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0032.md): 修改OBS表分区的存储位置。该命令仅支持OBS表(外部表),不支持管理表。PARTITION:指定要修改位置的分区。SET LOCATION:设置分区的新存储路径。LOCATION:分区路径,必须为OBS格式。该命令仅支持OBS表(外部表),不支持管理表。所要修改位置的表分区必须是已经存在的,否则将报错。指定的新OBS路径必须是已经存在的 - [更新表分区信息](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0033.md): 恢复(恢复注册)分区表中所有尚未在元数据库中注册的分区信息。典型应用场景:当手动在OBS上添加分区目录后,通过本命令将新增的分区信息刷新到元数据库中,之后即可通过 SHOW PARTITIONS 查看到新增的分区。Spark SQL提供两种等价语法:MSCK REPAIR TABLE 和 ALTER TABLE ... RECOVER P - [导入数据](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0035.md): LOAD DATA可用于导入CSV、Parquet、ORC、JSON、Avro格式的数据,内部将转换成Parquet数据格式进行存储。datasource表和iceberg表不支持LOAD DATA操作。INPATH:数据路径。OPTIONS:属性列表。以下是可以在导入数据时使用的配置选项:DATA_TYPE: 指定导入的数据类型,当前支 - [插入数据](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0036.md): 将SELECT查询结果或某条数据插入到表中。insert overwrite语法不适用于同一张表内部的“自读自写”场景(包括分区表和非分区表),直接在原表上执行insert overwrite可能会导致数据丢失或数据不一致的风险。如果要实现“自读自写”场景数据操作,建议使用一个临时表来处理数据。"自读自写"即目的表和数据源表都是同一张表。 - [复用子查询](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0037.md): 复用子查询(Common Table Expression,CTE)通过 WITH ... AS 语句定义命名的临时结果集,在查询的不同部分重复使用,避免重复计算相同的子查询,从而提高查询性能和可读性。单个子查询:多个子查询:所要查询的表必须是已经存在的表,否则会出错。多个 CTE 之间使用逗号分隔。CTE 定义必须在主查询之前。CTE - [清空数据](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0038.md): 清除管理表或者OBS表的数据。只支持清除管理表或者OBS表的数据。 - [导出查询结果](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0039.md): INSERT OVERWRITE DIRECTORY用于将查询结果直接写入到指定的目录,支持按CSV、Parquet、ORC、JSON、Avro格式进行存储。USING:指定所存储格式。OPTIONS:导出时的属性列表,为可选项。通过配置“spark.sql.shuffle.partitions”参数可以设置非管理表在OBS桶中插入的文件 - [创建视图](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0041.md): 创建视图。CREATE VIEW:基于给定的select语句创建视图,不会将select语句的结果写入磁盘。OR REPLACE:指定该关键字后,若视图已经存在将不报错,并根据select语句更新视图的定义。WITH SCHEMA:指定视图的Schema管理策略。BINDING:严格绑定,底层表结构变化时视图失效。COMPENSATION - [删除视图](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0042.md): 删除视图。DROP:删除指定视图的元数据。虽然视图和表有很多共同之处,但是DROP TABLE不能用来删除VIEW。所要删除的视图必须是已经存在的,否则会出错,可以通过IF EXISTS来避免该错误。删除名为student_view的视图。 - [修改视图](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0043.md): ALTER VIEW语句用于修改视图的元数据,包括重命名视图、设置/删除视图属性。重命名视图Iceberg、Lance和Hive表不支持修改视图名称。ALTER VIEW view_identifier RENAME TO view_identifierIceberg、Lance和Hive表不支持修改视图名称。ALTER VIEW vie - [查看视图](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0044.md): SHOW VIEWS语句用于列出指定数据库中的所有视图。可以通过模式匹配过滤视图名称。如果不指定数据库,则列出当前数据库的视图。如果指定数据库为全局临时视图数据库,则列出全局临时视图。注意:无论指定哪个数据库,本地临时视图始终会被列出。列出当前数据库的所有视图结果:列出指定数据库的视图结果:列出全局临时视图结果:使用模式匹配过滤视图结果: - [使用场景](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0046.md): 物化视图通过物理存储SQL查询的结果,使得未来的查询可以直接读取预计算的结果,而不是每次都重新计算相同的逻辑。这可以显著提高查询性能,特别是对于频繁运行的查询,尤其是涉及连接(joins)和聚合(aggregates)操作的查询。当物化视图启用时,优化器会自动将符合条件的查询重写为使用物化视图,而不是扫描基础表。Spark物化视图支持以下 - [配置参数](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0047.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [语法参考](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0049.md): 创建普通物化视图基于SQL查询创建物化视图:CREATE MATERIALIZED VIEW [IF NOT EXISTS] view_name [( [COMMENT ], ...)] [COMMENT '...'] [PARTITIONED BY col1, col2, ...] [ CL - [权限管理](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0050.md): 物化视图可视为一种特殊的表在LakeFormation进行单独授权管理,包括读取、删除、修改等权限。创建视图需要database的CREATE_TABLE、DESCRIBE权限 + 所有源表的SELECT、DESCRIBE、ALTER权限。需要database的CREATE_TABLE、DESCRIBE权限 + 所有源表的SELECT、D - [自动改写](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0051.md): 物化视图自动改写可在逻辑计划生成阶段匹配执行计划,将其自动改写为物化视图查询语句自动改写鉴权自动改写时,需要同时校验所有源表的权限 + 物化视图的权限,才能自动改写。自动改写时,需要同时校验所有源表的权限 + 物化视图的权限,才能自动改写。精确匹配(Hash Match)将逻辑执行计划的hash值保存在表属性中,直接使用hash值比对判断 - [元数据](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0052.md): 创建物化视图时,会在源表和物化视图的Table Properties中新增一些参数用于记录相互关联的物化视图和源表信息。 - [约束与限制](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0053.md): 模式当前仅支持Spark-SQL模式,Spark-JOB模式暂不支持。当前仅支持Spark-SQL模式,Spark-JOB模式暂不支持。支持的源表类型MANAGED_TABLE 、EXTERNAL_TABLEMANAGED_TABLE 、EXTERNAL_TABLE表格式Managed Materialized View被创建为Icebe - [语法参考](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0055.md): 创建智能物化视图基于SQL查询创建物化视图:CREATE LAKE MATERIALIZED VIEW [IF NOT EXISTS] view_name [( [COMMENT ], ...)] [COMMENT '...'] [PARTITIONED BY col1, col2, ...] - [权限管理](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0056.md): 创建视图创建位置在LakeFormation内部obs桶中。需要database的CREATE_TABLE、DESCRIBE权限 + 所有源表的SELECT、DESCRIBE、ALTER权限。创建位置在LakeFormation内部obs桶中。需要database的CREATE_TABLE、DESCRIBE权限 + 所有源表的SELECT - [刷新策略](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0058.md): 增量刷新增量刷新允许物化视图(MVs)通过仅处理源表中发生变化的数据来进行更新,而不是重新计算整个视图。这大大减少了大容量数据集的刷新时间和资源消耗。使用增量刷新,要求源表必须是 Apache Iceberg 表,且开启了Iceberg快照功能。增量刷新允许物化视图(MVs)通过仅处理源表中发生变化的数据来进行更新,而不是重新计算整个视图 - [刷新时效](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0059.md): 智能物化视图提供多种刷新时效供用户选择手动刷新用户执行REFRESH MATERIALIZED VIEW mv_name命令。用户执行REFRESH MATERIALIZED VIEW mv_name命令。定时刷新在表属性中设置刷新周期字段,由LakeFormation后台设置定时任务。允许用户执行alter命令修改刷新周期字段,Spar - [视图元数据](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0060.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [CTE物化](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0061.md): 在某些情况下,用户可能会执行包含相同 CTE(公用表表达式)子查询的重复查询。此外,不同的用户之间可能也无法察觉彼此正在使用相同的计算逻辑。为了提升用户的计算效率、减少重复计算并加速查询,AIDatalake提供了CTE物化 (CTE Materialization) 功能,该功能可以为 CTE 自动创建物化视图。启动CTE物化SQL语句 - [约束与限制](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0062.md): 模式当前仅支持Spark-SQL模式,Spark-JOB模式暂不支持当前仅支持Spark-SQL模式,Spark-JOB模式暂不支持支持的源表类型MANAGED_TABLEMANAGED_TABLE表格式LAKE Materialized View被创建为Iceberg表。视图源表仅支持Iceberg表。LAKE Materialized - [查看计划](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0063.md): 执行该语句将返回该SQL语句的逻辑计划与物理执行计划。EXTENDED:指定该关键字后,会同时输出逻辑计划与物理执行计划。CODEGEN:指定该关键字后,若有codegen产生的代码也将输出。无。返回“SELECT * FROM test”SQL语句的逻辑计划与物理执行计划。 - [数据权限列表](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0065.md): 平台中SQL语句与数据库、表、角色相关的权限矩阵如表2所示。权限操作本质是通过平台管理的API实现,而非直接在Spark SQL引擎中执行GRANT/REVOKE语句来实现。同一数据库下的表和视图共享权限命名空间。具有GRANT_PRIVILEGE权限的用户可以为其他用户赋权。具有REVOKE_PRIVILEGE权限的用户可以回收其他用户 - [创建角色](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0066.md): 创建一个新的角色。只有在数据库上具有CREATE_ROLE权限的用户才能创建角色。例如:管理员用户、数据库的owner用户和被赋予了CREATE_ROLE权限的其他用户。每个角色必须属于且只能属于一个数据库。无。 - [显示角色](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0067.md): 显示所有的角色或者显示当前数据库下绑定到“user_name”的角色。ALL:显示所有的角色。ALL关键字与user_name不可同时存在。显示project下的所有角色。SHOW ALL ROLES;只有管理员才有权限执行show all roles语句。只有管理员才有权限执行show all roles语句。显示绑定到用户名为user - [删除角色](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0068.md): 删除角色。无。 - [绑定角色](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0069.md): 绑定用户和角色。无。role_name和user_name必须存在,否则会报错。 - [解绑角色](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0070.md): 取消用户和角色的绑定。无。role_name和user_name必须存在,且user_name绑定了该role_name。取消用户user_name1和role1的绑定。 - [分配权限](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0071.md): 授予用户或角色权限。ROLE:限定后面的role_name是一个角色。USER:限定后面的user_name是一个用户。privilege必须是可授权限中的一种。且如果赋权对象在resource或上一级resource上已经有对应权限时,则会赋权失败。Privilege支持的权限类型可参见数据权限列表。resource可以是databas - [回收权限](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0072.md): 回收已经授予用户或角色的权限。ROLE:限定后面的role_name是一个角色。USER:限定后面的user_name是一个用户。privilege必须为赋权对象在resource中的已授权限,否则会回收失败。Privilege支持的权限类型可参见数据权限列表。resource可以是database、table、view、column,f - [显示已授权限](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0073.md): 显示某个用户在resource上已经授予的权限。USER:限定后面的user_name是一个用户。resource可以是database、table、column、view,function格式分别为:database的格式为:databases.db_nametable的格式为:databases.db_name.tables.tabl - [显示所有角色和用户的绑定关系](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0074.md): 在当前database显示角色与某用户的绑定关系。无。角色名必须存在。 - [概述](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0076.md): 数据类型是数据的一个基本属性,用于区分不同类型的数据。不同的数据类型所占的存储空间不同,能够进行的操作也不相同。数据库中的数据存储在表中。表中的每一列都定义了数据类型,用户存储数据时,须遵从这些数据类型的属性,否则可能会出错。 - [原生数据类型](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0077.md): AI DataLake支持原生数据类型,请参见表1。VARCHAR和CHAR在实际存储是STRING型,因此超出长度的字符串不会被截断。FLOAT类型在实际存储是DOUBLE型。Spark Native已支持VARIANT类型。仅v3表支持VARIANT数据类型。有符号整数,存储空间为4字节,-2147483648~2147483647, - [复杂数据类型](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0078.md): Spark SQL支持复杂数据类型,如表1所示。创建含有复杂数据类型字段的表时,该表存储格式不支持CSV(txt)。如果表中含有复杂数据类型字段时,该表不支持CSV(txt)格式的文件数据导入。MAP数据类型建表必须指定schema,且不支持date、short、timestamp数据类型。对于JSON格式OBS表,MAP的键类型只支持S - [Iceberg表相关语法](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0079.md): Apache Iceberg是一种面向海量分析数据集的开放表格式,通过高性能表格式为计算引擎添加表功能,使用方式与SQL表完全一致。Iceberg专为超大规模表而构建,已在实际业务环境中得到应用,单个表可容纳数十PB数据,且即使如此庞大的表也无需分布式SQL引擎即可读取。Spark引擎支持Iceberg的相关语法,关于Iceberg表相关 - [SQL自定义函数](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0081.md): SQL自定义函数允许使用SQL表达式定义函数逻辑,支持标量函数(返回单个值)和表值函数(返回表结果集)。创建标量函数CREATE [OR REPLACE] FUNCTION function_name ([parameter_name data_type [{ DEFAULT | = } default_value]] [, ...]) - [创建函数](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0082.md): 平台支持创建使用UDF和UDTF等自定义函数应用于Spark作业开发中。或如果在数据库中存在同名的函数,系统将会报错。只支持Hive语法创建函数。请注意避免该场景:如果创建的自定义函数F1指定类C1,程序包名JAR1,创建自定义函数F2也指定类C1,程序包JAR2,因为F2和F1使用相同的类名,导致功能相互冲突,影响作业执行。UDF热加载 - [删除函数](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0083.md): 删除函数。TEMPORARY:指定删除临时函数。IF EXISTS:所删除的函数不存在时使用,可避免系统报错。删除一个已存在的函数。如果要删除的函数不存在,则系统报错。只支持Hive语法。删除函数mergeBill。 - [显示函数详情](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0084.md): 查看指定函数的相关信息。EXTENDED:显示扩展使用信息。返回已有函数的元数据(实现类和用法),如果函数不存在,则系统报错。查看函数mergeBill的相关信息。 - [显示所有函数](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0085.md): 查看当前工程下所有的函数。其中regex为正则表达式,可以参考如下:LIKE:此限定符仅为兼容性而使用,没有任何实际作用。显示与给定正则表达式或函数名匹配的函数。如果未提供正则表达式或名称,则显示所有函数。如果声明了USER或SYSTEM,那么将分别显示用户定义的Spark SQL函数和系统定义的Spark SQL函数。查看当前的所有函数 - [DESCRIBE FUNCTION](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0086.md): DESCRIBE FUNCTION语句用于查看函数的元数据信息,包括函数名称、实现类和用法说明。如果指定 EXTENDED 选项,还会显示扩展的使用信息和示例。不使用 EXTENDED 时,仅显示函数名称、实现类和基本用法。使用 EXTENDED 时,额外显示示例和详细使用说明。如果函数不存在,会报错。DESC 是 DESCRIBE 的缩 - [Select](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0088.md): SELECT语句用于从表中查询数据,是Spark SQL中最基本的查询语句。Spark 4.0支持完整的SELECT语法,包括LATERAL、PIVOT/UNPIVOT、OFFSET分页等特性。其中 projectItem 为:table_reference 为:所查询的表必须是已经存在的表,否则提示查询错误。在WHERE子句中使用NOT - [ORDER BY](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0090.md): ORDER BY子句用于对查询结果进行全局排序。Spark 4.0增强了排序功能,支持NULLS FIRST/LAST指定NULL值排序位置,并可与OFFSET配合实现分页。ORDER BY执行全局排序,所有数据会汇聚到一个Reducer中处理。与GROUP BY一起使用时,ORDER BY后面可以跟聚合函数。ORDER BY可以引用SE - [SORT BY](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0091.md): SORT BY子句用于在每个Reducer内对数据进行局部排序。与ORDER BY的全局排序不同,SORT BY只保证每个Reducer内的数据有序。SORT BY是局部排序,仅保证每个Reducer内的数据有序,不保证全局有序。如需全局排序,请使用ORDER BY。SORT BY通常与DISTRIBUTE BY配合使用,先分桶再桶内排序 - [CLUSTER BY](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0092.md): CLUSTER BY子句用于根据指定字段对数据进行分桶,并在桶内按同一字段进行排序。CLUSTER BY等效于DISTRIBUTE BY和SORT BY使用相同字段的情况。CLUSTER BY只能按升序排序,不能指定ASC或DESC。如需指定排序方向,请使用DISTRIBUTE BY + SORT BY组合。CLUSTER BY等效于DI - [DISTRIBUTE BY](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0093.md): DISTRIBUTE BY子句用于根据指定字段对数据进行分桶(重新分区),将相同键值的数据分配到同一个Reducer中。DISTRIBUTE BY不会在桶内进行排序。DISTRIBUTE BY仅负责分桶,不负责桶内排序。如需在分桶后排序,请配合SORT BY使用。DISTRIBUTE BY和SORT BY可以使用不同字段。CLUSTER - [按列GROUP BY](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0095.md): 按列对表进行分组操作。GROUP BY:按列可分为单列GROUP BY与多列GROUP BY。单列GROUP BY:指GROUP BY子句中仅包含一列,col_name_list中包含的字段必须出现在attr_expr_list的字段内,attr_expr_list中可以使用多个聚合函数,比如count(),sum(),聚合函数中可以包含 - [按表达式GROUP BY](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0096.md): 按表达式对表进行分组操作。groupby_expression:可以是单字段,多字段,也可以是聚合函数,字符串函数等。所要分组的表必须是已经存在的表,否则会出错。同单列分组,GROUP BY中出现的字段必须包含在attr_expr_list的字段中,表达式支持内置函数,自定义函数等。先利用substr函数取字段name的子字符串,并按照该 - [GROUP BY中使用HAVING](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0097.md): 利用HAVING子句在表分组后实现过滤。groupby_expression:可以是单字段,多字段,也可以是聚合函数,字符串函数等。所要分组的表必须是已经存在的表,否则会出错。如果过滤条件受GROUP BY的查询结果影响,则不能用WHERE子句进行过滤,而要用HAVING子句进行过滤。HAVING与GROUP BY合用,先通过GROUP - [ROLLUP](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0098.md): ROLLUP是GROUP BY的扩展,用于生成多级聚合行、超聚合行和总计行。ROLLUP按照从右到左的顺序递减分组粒度,实现层次化的聚合统计。或使用WITH语法:GROUP BY ROLLUP(a, b, c) 等价于以下四个分组查询的UNION ALL:(a, b, c) 分组小计:SELECT a, b, c, sum(express - [GROUPING SETS](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0099.md): GROUPING SETS是GROUP BY的扩展,用于在一次查询中实现多组不同粒度的分组统计,相当于将多个GROUP BY查询通过UNION ALL合并的结果。其中 grouping_set 为:GROUP BY a, b GROUPING SETS ((a,b)) 等价于:SELECT a, b, sum(expression) FR - [内连接](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0101.md): 内连接(INNER JOIN)将两个表中满足连接条件的行组合起来作为结果集。仅返回两表中都满足 JOIN 条件的记录。所要进行 JOIN 连接的表必须是已经存在的表,否则会出错。在一次查询中可以连接两个以上的表,使用多个 JOIN 子句依次连接。通过将 student_info 与 course_info 两张表中的课程编号匹配建立 JO - [左外连接](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0102.md): 左外连接(LEFT OUTER JOIN)根据左表的记录去匹配右表,返回左表的所有记录。对于右表中没有匹配值的记录,结果集中相应列返回 NULL。所要进行 JOIN 连接的表必须是已经存在的表,否则会出错。LEFT JOIN 是 LEFT OUTER JOIN 的简写形式,两者语义完全相同。左外连接时利用 student_info 表中的 - [右外连接](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0103.md): 右外连接(RIGHT OUTER JOIN)根据右表的记录去匹配左表,返回右表的所有记录。对于左表中没有匹配值的记录,结果集中相应列返回 NULL。所要进行 JOIN 连接的表必须是已经存在的表,否则会出错。RIGHT JOIN 是 RIGHT OUTER JOIN 的简写形式,两者语义完全相同。右外连接与左外连接对称:A RIGHT O - [全外连接](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0104.md): 全外连接(FULL OUTER JOIN)根据左表与右表的所有记录进行匹配,返回两表中的所有记录。对于没有匹配值的记录,结果集中相应列返回 NULL。所要进行 JOIN 连接的表必须是已经存在的表,否则会出错。FULL JOIN 是 FULL OUTER JOIN 的简写形式,两者语义完全相同。全外连接的结果集等于左外连接与右外连接的并集 - [隐式连接](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0105.md): 隐式连接与内连接功能相同,返回两表中满足 WHERE 条件的结果集,但不用 JOIN 关键字显式指定连接条件,而是通过 WHERE 子句实现。所要进行连接的表必须是已经存在的表,否则会出错。隐式连接的命令中不含有 JOIN ... ON ... 关键词,而是通过 WHERE 子句作为连接条件将两张表连接。隐式连接等价于 INNER JOI - [笛卡尔连接](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0106.md): 笛卡尔连接(CROSS JOIN)把第一个表的每一条记录和第二个表的所有记录相连接。如果第一个表的记录数为m,第二个表的记录数为n,则会产生m * n条记录。所要进行JOIN连接的表必须是已经存在的表,否则会出错。CROSS JOIN是求笛卡尔积的标准方式。如果不带ON子句,则直接计算两表的笛卡尔积。笛卡尔连接可能产生大量记录,请谨慎使用 - [左半连接](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0107.md): 左半连接(LEFT SEMI JOIN)用来查看左表中符合 JOIN 条件的记录。左半连接只返回左表中的记录,不返回右表的列。所要进行 JOIN 连接的表必须是已经存在的表,否则会出错。attr_expr_list 中所涉及的字段只能是左表中的字段,否则会出错。左半连接与左外连接的区别:左半连接只返回左表中符合 JOIN 条件的记录,而左 - [不等值连接](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0108.md): 不等值连接中,多张表通过不相等的连接值进行连接,并返回满足不等式条件的结果集。所要进行JOIN连接的表必须是已经存在的表,否则会出错。不等值连接的连接条件均为不等式条件,与等值连接(使用=比较)不同。不等值连接可能导致结果集较大,请谨慎使用。返回student_info_1与 student_info_2两张表中的所有学生姓名对组合,但不 - [FROM](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0110.md): FROM子句用于指定查询的数据源。Spark 4.0增强了FROM子句,支持LATERAL子查询、TABLE关键字、VALUES行构造等多种数据源形式。其中 table_reference 为:join_table 为:join_type 为:所要查询的表必须是已经存在的表,否则会出错。FROM嵌套子查询中,子查询必须指定别名。LATER - [OVER](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0111.md): OVER子句与窗口函数配合使用,用于定义窗口的分区、排序和范围。窗口函数为每行数据基于其所在窗口计算一个值,而不像普通聚合函数那样将多行合并为一行。其中 window_frame 为:frame_start 和 frame_end 为:ROWS为物理窗口,根据行号偏移计算,与当前行的值无关。RANGE为逻辑窗口,根据ORDER BY表达式 - [WHERE](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0112.md): WHERE子句用于指定过滤条件,仅返回满足条件的行。Spark 4.0增强了WHERE中的子查询能力,支持LATERAL子查询和相关子查询。其中 boolean_expression 可以包含子查询:所要查询的表必须是已经存在的表,否则会出错。使用IN或NOT IN时,子查询的返回结果必须是单列。使用EXISTS或NOT EXISTS时, - [HAVING](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0113.md): HAVING子句用于对GROUP BY分组后的结果进行过滤。与WHERE不同,HAVING可以使用聚合函数作为过滤条件。Spark 4.0增强了HAVING子句中的子查询能力。所要查询的表必须是已经存在的表,否则会出错。HAVING中的子查询与聚合函数的位置不能互换,聚合函数应在比较运算符的左侧。HAVING与WHERE的区别:WHERE - [多层嵌套子查询](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0115.md): 多层嵌套子查询是指在子查询中嵌套子查询,即在一个 SELECT 语句的 FROM 子句中使用另一个 SELECT 语句作为数据源,可以多层嵌套。LATERAL 子查询语法(Spark 4.0 支持):所要查询的表必须是已经存在的表,否则会出错。在嵌套查询中必须指定子查询的别名,否则会出错。别名必须先定义后引用,建议别名不要重名。LATER - [列别名](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0120.md): 给列起别名。alias:用于对attr_expr中的字段名称起别名。AS:是否添加此关键字不会影响结果。所要查询的表必须是已经存在的,否则会出错。别名的命名必须在别名的使用之前,否则会出错。此外,建议不要重名。先通过子查询SELECT name AS n FROM simple_table WHERE score > 90获得结果,在子查 - [UNION](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0122.md): UNION返回多个查询结果的并集。UNION默认去除重复行,使用UNION ALL保留重复行。每一个SELECT语句返回的列数必须相同。对应列的数据类型必须兼容。结果集的列名由第一个SELECT语句决定。UNION默认去重,UNION ALL不去重。在不需要去重的场景下,推荐使用UNION ALL以获得更好的性能。多个集合运算(UNION - [INTERSECT](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0123.md): INTERSECT返回多个查询结果的交集,即同时存在于所有查询结果中的行。INTERSECT默认去除重复行,使用INTERSECT ALL保留重复行。两个SELECT语句返回的列数必须相同。对应列的数据类型必须兼容。Spark 4.0支持INTERSECT ALL语法,保留重复行。多个集合运算(UNION、INTERSECT、EXCEPT - [EXCEPT](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0124.md): EXCEPT返回两个查询结果的差集,即存在于第一个查询结果中但不存在于第二个查询结果中的行。EXCEPT默认去除重复行,使用EXCEPT ALL保留重复行。每一个SELECT语句返回的列数必须相同。对应列的数据类型必须兼容。Spark 4.0支持EXCEPT ALL语法,保留重复行。多个集合运算(UNION、INTERSECT、EXCEP - [CASE...WHEN](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0125.md): CASE...WHEN是条件表达式,用于根据条件返回不同的值。Spark SQL支持简单CASE函数和CASE搜索函数两种形式。简单CASE函数:依据expression与value1的匹配结果跳转到相应的result1。CASE搜索函数:按指定顺序为每个WHEN子句的condition1求值。返回第一个取值为TRUE的condition - [Pipe语法(|>)](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0128.md): Pipe语法(管道操作符 |>)是Spark 4.0的SQL语法扩展,允许以管道(pipeline)方式组织SQL查询。Pipe语法将查询从嵌套的函数调用风格改为从上到下的线性流程,使复杂查询更易读写。Pipe语法与现有SQL语法完全兼容,可以在任何查询中混合使用。Pipe语法以FROM子句开头。每个 |> 操作符处理前一步的输出,形成管 - [导出查询结果](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0129.md): INSERT OVERWRITE DIRECTORY用于将查询结果直接写入到指定的目录,支持按CSV、Parquet、ORC、JSON、Avro格式进行存储。USING:指定所存储格式。OPTIONS:导出时的属性列表,为可选项。通过配置spark.sql.shuffle.partitions参数可以设置非Managed表在OBS桶中插入 - [add_months](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0133.md): add_months函数用于计算日期值增加指定月数后的日期。即start_date在num_months个月之后的date。返回开始日期start_date增加num_months个月后的日期,返回值格式为yyyy-mm-dd。返回值date类型的日期值。start_date非DATE或STRING时,返回报错,错误信息:data typ - [current_date](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0134.md): current_date函数用于返回当前日期值。返回值格式为yyyy-mm-dd。相似函数:getdate,getdate函数用于返回当前系统时间。返回值格式为yyyy-mm-dd hh:mi:ss。无返回DATE类型的日期值,格式为yyyy-mm-dd返回2023-08-16。 - [current_timestamp](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0135.md): CURRENT_TIMESTAMP函数用于返回当前时间戳。无返回TIMESTAMP类型的时间戳。返回1692002816300。 - [date_add](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0136.md): date_add函数用于计算按照days幅度递增start_date日期的天数。如需要获取当前日期基础上指定变动幅度的日期,可结合current_date或getdate函数共同使用。请注意date_add函数与date_sub函数逻辑相反。返回DATE类型的日期值,格式为yyyy-mm-dd。start_date非DATE或STRING - [dateadd1](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0137.md): dateadd1函数用于按照指定的单位datepart和幅度delta修改date的值。如需要获取当前日期基础上指定变动幅度的日期,可结合current_date或getdate函数共同使用。返回STRING类型的日期值。date非DATE或STRING类型时,返回报错,错误信息:data type mismatch。date为DATE或 - [date_sub](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0138.md): date_sub函数按照days幅度递减start_date日期的天数。如需要获取当前日期基础上指定变动幅度的日期,可结合current_date或getdate函数共同使用。请注意date_sub函数与date_add函数逻辑相反。返回DATE类型的日期值,格式为yyyy-mm-dd。start_date非DATE或STRING类型时, - [date_format](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0139.md): date_format函数用于将date按照format指定的格式转换为字符串。按指定类型返回STRING类型的日期。date非DATE或STRING类型时,返回报错,错误信息:data type mismatch。date为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL。date值为NULL时,返回NULL。for - [datediff](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0140.md): datediff函数用于计算两个时间date1、date2的日期差值。相似函数:datediff1,datediff1函数用于计算两个时间date1、date2的差值,将差值以指定的时间单位datepart表示。返回BIGINT类型。date1、date2非DATE或STRING类型时,返回报错,错误信息:data type mismat - [datediff1](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0141.md): datediff1函数用于计算两个时间date1、date2的差值,将差值以指定的时间单位datepart表示。相似函数:datediff,datediff函数用于计算两个时间date1、date2的日期差值,不支持指定返回的时间单位。返回BIGINT类型。date1、date2非DATE或STRING类型时,返回报错,错误信息:data - [datepart1](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0142.md): datepart1函数用于计算日期date中符合指定时间单位datepart1的值。返回BIGINT类型。date非DATE或STRING类型时,返回报错,错误信息:data type mismatch;date为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL;date值为NULL时,返回NULL。datepart值 - [datetrunc](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0143.md): datetrunc函数用于计算将日期date按照datepart指定的时间单位进行截取后的日期值。截取datepart之前的部分,除截取的部分外自动填充为默认值。可参考示例代码。返回DATE或STRING类型的日期值。date非DATE或STRING类型时,返回报错,错误信息:data type mismatch;date为DATE或ST - [day/dayofmonth](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0144.md): day函数用于返回指定日期的天。返回INT类型date非DATE或STRING类型时,返回报错,错误信息:data type mismatch。date为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL。date值为NULL时,返回NULL。示例1select day('2023-08-01');返回1。返回1。示例2 - [from_unixtime](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0145.md): from_unixtime函数用于计算将数字型的UNIX值代表的时间戳转换为日期值。将时间戳转换为时间格式,返回STRING类型的日期值,格式为“yyyy-MM-dd HH:mm:ss”或“yyyyMMddHHmmss.uuuuuu”或 "yyyyMMdd"。unixtime值为NULL时,返回NULL。示例1select from_un - [from_utc_timestamp](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0146.md): from_utc_timestamp函数用于计算将UTC的时间戳转化为timezone所对应的本地时间戳。返回TIMESTAMP类型的时间戳。timestamp非DATE、TIMESTAMP或STRING类型时,返回报错,错误信息:data type mismatch;timestamp为DATE、TIMESTAMP或STRING类型时, - [getdate](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0147.md): getdate函数用于返回当前系统时间。返回值格式为yyyy-mm-dd hh:mi:ss。相似函数:current_date,current_date函数用于返回当前日期值。返回值格式为yyyy-mm-dd。无返回STRING类型的日期值,格式为yyyy-mm-dd hh:mi:ss。假设当前时间为2023-08-10 10:54:00 - [hour](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0148.md): hour函数用于返回指定时间的小时,范围为0到23。返回INT类型的值。date非DATE或STRING类型时,返回报错,错误信息:data type mismatch。date为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL。date值为NULL时,返回NULL。示例1select hour('2023-08-10 - [isdate](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0149.md): isdate函数用于判断一个日期字符串能否根据指定的格式转换为一个日期值。返回BOOLEAN类型的值。date或format值为NULL时,返回NULL。返回true。返回false。 - [last_day](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0150.md): last_day函数用于返回date所在月份的最后一天。相似函数:last_day1,lastday1函数用于返回date所在月的最后一天,截取到天,时分秒部分为00:00:00。返回DATE类型的日期值,格式为yyyy-mm-dddate非DATE或STRING类型时,返回报错,错误信息:data type mismatch。date为 - [last_day1](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0151.md): last_day1函数用于返回date所在月的最后一天,截取到天,时分秒部分为00:00:00。相似函数:last_day,last_day函数用于返回date所在月份的最后一天。返回值格式为:yyyy-mm-dd。返回STRING类型的日期值。格式为yyyy-mm-dd hh:mi:ss。date非DATE或STRING类型时,返回报错 - [minute](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0152.md): minute函数用于返回指定时间的分钟,范围为0到59。返回INT类型。date非DATE或STRING类型时,返回报错,错误信息:data type mismatch。date为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL。date值为NULL时,返回NULL。示例1select minute('2023-08- - [month](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0153.md): month函数用于返回指定时间的月份,范围为1至12月。返回INT类型。date非DATE或STRING类型时,返回报错,错误信息:data type mismatch。date为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL。date值为NULL时,返回NULL。示例1select month('2023-08-1 - [months_between](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0154.md): months_between函数用于返回date1与date2之间的月份差。返回DOUBLE类型的值。date1、date2非DATE或STRING类型时,返回报错,错误信息:data type mismatch。date1、date2为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL。当date1晚于date2时,返 - [next_day](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0155.md): next_day函数用于返回起始日期之后最接近指定星期的日期。返回DATE类型的日期值,格式为yyyy-mm-dd。start_date非DATE或STRING类型时,返回报错,错误信息:data type mismatch。start_date为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL。start_date值 - [quarter](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0156.md): quarter函数用于返回该date所在的季度,范围为1~4。返回INT类型。date非DATE或STRING类型时,返回报错,错误信息:data type mismatch。date为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL。date值为NULL时,返回NULL。返回3。返回3。返回NULL。 - [second](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0157.md): second函数用于返回指定时间的秒,范围为0到59。返回INT类型。date非DATE或STRING类型时,返回报错,错误信息:data type mismatch。date为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL。date值为NULL时,返回NULL。示例1select second('2023-08-1 - [to_char1](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0158.md): to_char1函数用于将日期按照指定格式转换为字符串。返回STRING类型。date非DATE或STRING类型时,返回报错,错误信息:data type mismatch。date为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL。format值为NULL时,返回NULL。返回静态数据示例2023-08*16。返回 - [to_date](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0159.md): to_date函数用于返回时间中的年月日。相似函数:to_date1,to_date1函数用于将指定格式的字符串转换为日期值,支持指定转换的日期格式。返回DATE类型的日期值,格式为yyyy-mm-dd。timestamp非DATE或STRING类型时,返回报错,错误信息:data type mismatch。timestamp为DATE - [to_date1](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0160.md): to_date1函数用于将指定格式的字符串转换为日期值。相似函数:to_date,to_date函数用于返回时间中的年月日,不支持指定转换的日期格式。返回DATE类型的日期值。date非DATE或STRING类型时,返回报错,错误信息:data type mismatch。date为DATE或STRING类型,但不符合日期值的入参格式时, - [to_utc_timestamp](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0161.md): to_utc_timestamp函数用于将timezone所对应的时间戳转换为UTC的时间戳。返回BIGINT类型值。timestamp非DATE或STRING类型时,返回报错,错误信息:data type mismatch。timestamp为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL。timestamp值为N - [trunc](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0162.md): trunc函数用于将date按照特定的格式进行清零操作。清零操作即返回默认值,年、月、日的默认值为01,时、分、秒、毫秒 的默认值为00。返回DATE类型的日期值,格式为yyyy-mm-dd。date非DATE或STRING类型时,返回报错,错误信息:data type mismatch。date为DATE或STRING类型,但不符合日期 - [trunc_numeric](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0163.md): trunc_numeric函数用于将输入值number截取到指定小数点位置。返回DOUBLE或DECIMAL类型。返回规则如下:number为DOUBLE、DECIMAL类型时会返回相应的类型。number为STRING、BIGINT类型时,返回DOUBLE类型。decimal_places非BIGINT类型时,返回报错。number值为 - [unix_timestamp](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0164.md): unix_timestamp函数用于将日期值转化为数字型的UNIX格式的日期值。函数返回值将返回正常UNIX格式时间戳前十位。返回BIGINT类型的值。timestamp值为NULL时,返回NULL。timestamp和pattern都为空时,返回从“1970-01-01 00:00:00”到现在的秒数代表的时间戳。返回169214999 - [weekday](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0165.md): weekday函数用于返回日期值所在周的第几天(周一为0)返回INT类型的值。周一作为一周的第一天,返回值为0。其他日期依次递增,周日返回6。date非DATE或STRING类型时,返回报错,错误信息:data type mismatch。date为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL。date值为NULL - [weekofyear](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0166.md): weekofyear函数用于返回指定日期是一年中的第几周,范围为0到53。返回INT类型的值。date非DATE或STRING类型时,返回报错,错误信息:data type mismatch。date为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL。date值为NULL时,返回NULL。返回33。select wee - [year](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0167.md): year函数用于返回指定日期中的年份。返回INT类型的值。date非DATE或STRING类型时,返回报错,错误信息:data type mismatch。date为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL。date值为NULL时,返回NULL。返回2023。select year('2023-08-16 10 - [ascii](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0169.md): ascii函数用于返回字符串str第一个字符的ASCII码。返回BIGINT的值。str非STRING、BIGINT、DOUBLE、DECIMAL或DATETIME类型时,返回报错。str值为NULL时,返回NULL。返回字符串ABC第一个字符的ASCII码。命令示例如下。返回65。select ascii('ABC');返回65。输入参 - [concat](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0170.md): concat函数用于拼接数组或字符串。输入为ARRAY数组:将多个ARRAY数组中的所有元素连接在一起,生成一个新的ARRAY数组。输入为字符串:将多个字符串连接在一起,生成一个新的字符串。输入为ARRAY数组输入为字符串返回ARRAY数组或STRING的值。返回ARRAY类型。如果任一输入ARRAY数组为NULL,返回结果为NULL。返 - [concat_ws](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0171.md): 连接多个字符串,字符串之间以指定的分隔符分隔。或返回STRING类型的值。str1或str2非STRING、BIGINT、DECIMAL、DOUBLE或DATETIME类型时,返回报错。如果参数(待拼接字符)为NULL,则会忽略这个参数。如果没有输入参数(待拼接字符),返回NULL。将字符串ABC和DEF通过:连接,返回ABC:DEF。任 - [char_matchcount](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0172.md): char_matchcount函数用于计算str1中有多少个字符出现在str2中。返回BIGINT类型。str1或str2值为NULL时,返回NULL。返回3。返回NULL。 - [encode](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0173.md): encode函数用于使用charset的编码方式对str进行编码。返回BINARY类型的值。str或charset值为NULL时,返回NULL。将字符串abc按照UTF-8格式编码。命令示例如下。返回YWJj。select encode("abc", "UTF-8");返回YWJj。select encode("abc", "UTF-8" - [find_in_set](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0174.md): find_in_set函数用于查找字符串str1在以逗号(,)分隔的字符串str2中的位置,从1开始计数。返回BIGINT类型的值。当str2中无法匹配到str1或str1中包含逗号(,)时,返回0。当str1或str2值为NULL时,返回NULL。查找字符串ab在字符串abc,123,ab,c中的位置。命令示例如下。返回3。select - [get_json_object](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0175.md): get_json_object函数用于根据所给路径对json对象进行解析,当json对象非法时将返回NULL。返回STRING类型的值。如果json为空或非法的json格式,返回NULL。如果json合法,path也存在,则返回对应字符串。提取JSON对象src\_json.json中的信息。示例数据如下。jsonString = {"s - [initcap](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0176.md): initcap函数用于将文本字符串转换成首字母大写其余字母小写的形式。返回一个STRING类型字符串,字符串中每个单词首字母大写,其余变为小写。返回Fli Sql - [instr](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0177.md): instr函数用于返回substr在str中最早出现的下标。当参数中出现NULL时,返回NULL,当str中不存在substr时返回0,注意下标从1开始。相似函数:instr1,instr1函数用于计算子串str2在字符串str1中的位置,instr1函数支持指定起始搜索位置和匹配次数。返回BIGINT类型的值。如果在str1中未找到st - [instr1](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0178.md): instr1函数用于计算子串str2在字符串str1中的位置。相似函数:instr,instr函数用于返回substr在str中最早出现的下标。但是instr不支持指定起始搜索位置和匹配次数。表 1 参数说明返回BIGINT类型。如果在str1中未找到str2,则返回0。如果str2为空串,则总能匹配成功。str1、str2、start_ - [keyvalue](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0179.md): keyvalue函数用于计算将字符串str按照split1进行切分,并按split2将每组变成Key-Value对,返回key所对应的Value。表 1 参数说明返回STRING类型。split1或split2值为NULL时,返回NULL。str或key值为NULL或没有匹配的key时,返回NULL。如果有多个Key-Value匹配,返回 - [length](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0180.md): length函数用于返回字符串的长度。相似函数:lengthb,lengthb函数用于计算字符串str以字节为单位的长度,返回STRING类型的值。返回BIGINT类型的值。str非STRING、BIGINT、DOUBLE、DECIMAL或DATETIME类型时,返回报错。str值为NULL时,返回NULL。计算字符串abc的长度。命令示 - [lengthb](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0181.md): lengthb函数用于计算字符串str以字节为单位的长度。相似函数:length,length函数用于返回字符串的长度,返回BIGINT类型的值。返回BIGINT类型的值。str非STRING、BIGINT、DOUBLE、DECIMAL或DATETIME类型时,返回报错。str值为NULL时,返回NULL。返回5。返回NULL。 - [levenshtein](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0182.md): levenshtein函数用于返回两个字符串之间的Levenshtein距离,如levenshtein('kitten','sitting') =3。Levenshtein距离,是编辑距离的一种。指两个字串之间,由一个转成另一个所需的最少编辑操作次数。返回INT类型的值。返回3 - [locate](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0183.md): 在str中查找substr的位置,从1开始计数。可以通过start_pos指定开始查找的位置。返回INT类型的值。str中无法匹配到substr时,返回0。str或substr值为NULL时,返回NULL。start_pos值为NULL时,返回0。查找字符串ab在字符串abhiab中的位置,返回1。从第2个位置开始查找,返回5。start - [lower/lcase](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0184.md): lower函数用于将文本字符串转换成字母全部小写的形式。返回为STRING类型的值。入参非 STRING、BIGINT、DOUBLE、DECIMAL 或 DATETIME 类型时,返回报错。入参值为NULL时,返回NULL。将字符串中的大写字符转换为小写字符。命令示例如下。返回 abc。输入参数为NULL。命令示例如下。返回NULL。 - [lpad](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0185.md): 返回指定长度的字符串。给定字符串str长度小于指定长度len时,由指定字符pad从左侧填补;给定字符串str长度大于指定长度len时,从左截取len个字符。返回STRING类型的值。如果len小于str的字符数,则返回str从左开始截取len位的字符串。如果len为0,则返回空串。如果没有输入参数或任一输入参数值为NULL,返回NULL。 - [ltrim](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0186.md): ltrim函数用于从str的左端去除字符:如果未指定trimChars,则默认去除空格。如果指定了trimChars,则以trimChars中包含的字符作为一个集合,从str的左端去除尽可能长的所有字符都在集合trimChars中的子串。相似函数:rtrim,rtrim函数用于从str的右端去除字符。trim,trim函数用于从str的左 - [parse_url](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0187.md): 返回给定URL的指定部分。partToExtract的有效值包括HOST、PATH、QUERY、REF、PROTOCOL、AUTHORITY、FILE和USERINFO。当第二个参数为QUERY时,可以使用第三个参数提取特定参数的值。返回STRING类型的值。urlString、partToExtract或keyToExtract值为NU - [regexp_count1](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0188.md): 计算source中从start_position位置开始,匹配指定pattern的子串数。返回BIGINT类型的值。如果没有匹配成功,返回0。source或pattern值为NULL时,返回NULL。返回4。返回3。返回NULL。 - [regexp_extract](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0189.md): 将字符串source按照pattern的分组规则进行字符串匹配,返回第groupid个组匹配到的字符串内容。返回STRING类型的值。如果pattern为空串或pattern中没有分组,返回报错。groupid非BIGINT类型或小于0时,返回报错。source、pattern或groupid值为NULL时,返回NULL。将basketb - [regexp_instr1](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0190.md): 计算字符串source从start_position开始,与pattern第occurrence次匹配的子串的起始或结束位置。返回BIGINT类型的值。return_option指定匹配的子串在source中的开始或结束位置。如果pattern为空串,返回报错。start_position或occurrence非BIGINT类型或小于等于 - [regexp_replace](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0191.md): regexp_replace函数用于将source字符串中匹配pattern的子串替换成指定字符串replacement后,返回结果字符串。Spark 4.0版本支持position参数,可指定从第N次匹配开始替换。表 1 参数说明返回STRING类型的值。如果pattern为空串,返回报错。当引用不存在的组时,不进行替换。如果repla - [regexp_replace1](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0192.md): regexp_replace1函数用于将source字符串中第occurrence次匹配pattern的子串,替换成指定字符串replace_string后,返回结果字符串。regexp_replace1函数只适用于Spark 2.4.5及之前的版本。相似函数:regexp_replace,regexp_replace函数针对不同的Spa - [regexp_substr1](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0193.md): 计算从start_position位置开始,source中第occurrence次匹配指定pattern的子串。返回STRING类型的值。如果pattern为空串,返回报错。没有匹配时,返回NULL。start_position或occurrence非BIGINT类型或小于等于0时,返回报错。source、pattern、start_po - [repeat](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0194.md): repeat函数用于返回将str重复n次后的字符串。返回STRING类型。str非STRING、BIGINT、DOUBLE、DECIMAL或DATETIME类型时,返回报错。n为空时,返回报错。str或n值为NULL时,返回NULL。将字符‘123’重复2次,返回 123123。 - [replace](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0195.md): 用 new 字符串替换 str 字符串中与 old 字符串完全重合的部分并返回替换后的字符串。如果没有重合的字符串,返回原 str。返回 STRING 类型。如果任一输入参数值为 NULL,返回 NULL。返回 AA123AA。返回 NULL。 - [reverse](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0196.md): reverse函数用于返回倒序字符串。返回STRING类型。str非STRING、BIGINT、DOUBLE、DECIMAL或DATETIME类型时,返回报错。str值为NULL时,返回NULL。返回 LQS krapS。返回[3,4,1,2]。 - [rpad](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0197.md): 将字符串 str1 向右补足到 length 位,使用字符串 str2 进行补位。返回 STRING 类型。如果 length 小于 str1 的长度,则返回 str1 从左开始截取 length 位的字符串。如果 length 为 0,则返回空串。如果任一输入参数值为 NULL,返回 NULL。返回 hi???。返回 h。 - [rtrim](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0198.md): rtrim函数用于从str的右端去除字符:如果未指定trimChars,则默认去除空格字符。如果指定了trimChars,则以trimChars中包含的字符作为一个集合,从str的右端去除尽可能长的所有字符都在集合trimChars中的子串。相似函数:ltrim,ltrim函数用于从str的左端去除字符。trim,trim函数用于从str - [space](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0199.md): space函数用于返回指定数量的空格。返回STRING类型。n为空时,返回报错。n值为NULL时,返回NULL。返回6。 - [split_part1](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0200.md): split_part函数用于依照分隔符separator拆分字符串str,返回从start部分到end部分的子串(闭区间)。表 1 参数说明返回STRING类型的值。如果start的值大于切分后实际的分段数,例如字符串拆分完有4个片段,start大于4,返回空串。如果separator不存在于str中,且start指定为1,返回整个str - [substr/substring](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0201.md): 返回字符串 str 从 start_position 开始、长度为 length 的子串。substr 与 substring 功能相同。或返回 STRING 类型。当 length 被省略时,返回到 str 结尾的子串。str、start_position 或 length 值为 NULL 时,返回 NULL。返回 k SQL。返回 S - [substring_index](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0202.md): substring_index函数用于截取字符串str第count个分隔符之前的字符串。如果count为正,则从左边开始截取。如果count为负,则从右边开始截取。表 1 参数说明返回STRING类型。如果任一输入参数值为NULL,返回NULL。返回 hello.world。返回world.people。 - [translate](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0203.md): 将 input 字符串中出现的 from 中的字符逐个替换为 to 中对应位置的字符。例如:将 abcde 中的 bcd 替换成 BCD:返回 STRING 类型。如果任一输入参数值为 NULL,返回 NULL。返回 A1B2C3。 - [trim](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0204.md): trim函数用于从str的左右两端去除字符:如果未指定trimChars,则默认去除空格字符。如果指定了trimChars,则以trimChars中包含的字符作为一个集合,从str的左右两端去除尽可能长的所有字符都在集合trimChars中的子串。相似函数:ltrim,ltrim函数用于从str的左端去除字符。rtrim,rtrim函数用 - [upper/ucase](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0205.md): upper函数用于将文本字符串转换成字母全部大写的形式。或返回STRING类型。入参非 STRING、BIGINT、DOUBLE、DECIMAL 或 DATETIME 类型时,返回报错。入参值为NULL时,返回NULL。将字符串中的小写字符转换为大写字符。命令示例如下。返回ABC。输入参数为NULL。命令示例如下。返回NULL。 - [url_decode1](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0206.md): url_decode函数用于将字符串从application/x-www-form-urlencoded MIME格式转为常规字符。返回STRING类型的值。STRING类型UTF-8编码的字符串。返回 Example for url_decode :// dsf(fasfs)。 - [url_encode1](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0207.md): url_encode函数用于将字符串编码为application/x-www-form-urlencoded MIME格式。返回STRING类型的值。input或encoding值为NULL时,返回NULL。返回Example+for+url_encode%3A%2F%2F+dsf%28fasfs%29 - [printf](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0208.md): printf函数用于将输入按特定格式打印输出。返回STRING类型的值。将Obj中的参数填入format后打印输出。返回字符串:姓名:user1,年龄:20,性别:女,籍贯:城市1。 - [abs](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0210.md): abs函数用于计算入参的绝对值。abs(DOUBLE a)返回DOUBLE、INT或DECIMAL类型的值。a为NULL,则返回NULL。返回NULL。返回1。返回3.1415926。 - [acos](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0211.md): acos函数用于返回给定数值a的反余弦值。返回DOUBLE类型,值在0~π之间。a的值不在[-1,1]范围内时,返回NaN。a为NULL,则返回NULL。返回3.141592653589793。返回0。返回NULL。返回NaN。 - [asin](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0212.md): asin函数用于返回给定数值a的反正弦值。返回DOUBLE类型,值在-π/2~π/2之间。a的值不在[-1,1]范围内时,返回NaN。a为NULL,则返回NULL。返回1.5707963267948966。返回0.6435011087932844。返回NULL。返回NaN。 - [atan](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0213.md): atan函数用于返回给定数值a的反正切值。返回DOUBLE类型,值在-π/2~π/2之间。a为NULL,则返回NULL。返回0.7853981633974483。返回0.5404195002705842。返回NULL。 - [bin](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0214.md): bin函数用于返回a的二进制格式。返回STRING类型。a值为NULL时,返回NULL。返回1。返回NULL。返回1000。返回1000。 - [bround](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0215.md): bround函数用于返回一个数值,该数值是按照指定d位小数进行四舍五入运算的结果。返回DOUBLE类型。a或d值为NULL时,返回NULL。返回123.4。返回123.6。返回NULL。返回123.457。 - [cbrt](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0216.md): cbrt函数用于返回a的立方根。返回DOUBLE类型。a为NULL,则返回NULL。返回3。返回3.3019272488946267。返回NULL。 - [ceil](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0217.md): ceil函数用于返回大于或等于a的最小整数。返回DECIMAL类型的值。a为NULL,则返回NULL。返回2。返回-1。返回NULL。 - [conv](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0218.md): conv函数用于进制转换,将from_base进制下的num转化为to_base进制下面的数。返回STRING类型。num、from_base或to_base值为NULL时,返回NULL。转换过程以64位精度工作,溢出时返回NULL。num如果输入的是小数,会转为整数值后进行进制转换,小数部分会被舍弃。返回8。返回B。返回703710。返 - [cos](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0219.md): cos函数用于计算a的余弦值,输入为弧度返回DOUBLE类型的值。a为NULL,则返回NULL。返回-0.9999999999999986返回NULL。 - [cot1](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0220.md): cot1函数用于计算a的余切值,输入为弧度。返回DOUBLE或DECIMAL类型。a为NULL,则返回NULL。返回1.0000000000000002。返回NULL。 - [degrees](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0221.md): degrees函数用于计算返回弧度所对应的角度。返回DOUBLE类型的值。a为NULL,则返回NULL。返回90.0。返回0。返回NULL。 - [e](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0222.md): e函数用于返回自然常数e的值。返回DOUBLE类型。返回2.718281828459045。 - [exp](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0223.md): exp函数用于计算返回e的a次方的值。返回DOUBLE类型的值。a为NULL,则返回NULL。返回7.38905609893065。返回20.085536923187668。返回NULL。 - [factorial](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0224.md): factorial函数用于返回a的阶乘。返回BIGINT类型。a值为0时,返回1。a值为NULL或[0,20]之外的值,返回NULL。返回720。返回1。返回120。返回NULL。返回NULL。 - [floor](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0225.md): floor函数用于返回小于或等于a的最大整数。返回BIGINT类型。a为NULL,则返回NULL。返回1。返回-2。返回NULL。 - [greatest](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0226.md): greatest函数用于返回列表中的最大值。返回DOUBLE类型的值。任一参数为NULL时,则忽略NULL返回最大值。返回4.0。返回4。 - [hex](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0227.md): hex函数用于将整数或字符转换为十六进制格式。返回STRING类型。a值为0时,返回0。a值为NULL时,返回NULL。返回0。返回61。返回10。返回31。返回3136。返回NULL。 - [least](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0228.md): least函数用于返回列表中的最小值。返回DOUBLE类型的值。v1、v2...为String类型时,返回报错。所有参数都为NULL时,返回NULL。返回1.0。返回NULL。 - [ln](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0229.md): ln函数用于返回给定数值的自然对数。返回DOUBLE类型的值。a值为负数或0时,返回NULL。a值为NULL时,返回NULL。返回1.144729868791239。返回1。返回NULL。 - [log](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0230.md): log函数根据给定底数及真数返回对数值。返回DOUBLE类型的值。base或a为NULL时,返回NULL。base或a为负数或0时,返回NULL。如果base为1(会引发一个除零行为),会返回NULL。返回2。返回NULL。返回NULL。 - [log10](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0231.md): log10函数用于返回给定数值的以10为底的对数(常用对数)。返回DOUBLE类型的值。a值为0、负数或NULL时,返回NULL。返回NULL。返回NULL。返回0.9542425094393249。返回1。 - [log2](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0232.md): log2函数用于返回给定数值的以2为底的对数。返回DOUBLE类型的值。a值为0、负数或NULL时,返回NULL。返回NULL。返回NULL。返回3.1699250014423126。返回4。 - [negative](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0233.md): negative函数用于返回a的相反数。返回DECIMAL或INT类型。a为NULL,则返回NULL。返回-1。返回3。 - [pi](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0234.md): pi函数用于返回圆周率π的值。返回DOUBLE类型。返回3.141592653589793。 - [pmod](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0235.md): pmod函数用于返回a除b的正余数。返回DECIMAL或INT类型。a或b为NULL,则返回NULL。b为0时,返回NULL返回2。返回1。返回0.877。 - [positive](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0236.md): positive函数用于返回a的值。返回 DECIMAL、DOUBLE或INT类型。a为NULL,则返回NULL。返回3。返回-3。返回123。 - [pow](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0237.md): pow函数用于计算返回a的p次幂。返回DOUBLE类型的值。a、p为NULL,则返回NULL。返回16。返回NULL。返回17.429460393524256。 - [radians](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0238.md): radians函数用于返回角度所对应的弧度。返回DOUBLE类型的值。a为NULL,则返回NULL。返回1.0471975511965976。返回0。返回NULL。 - [rand](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0239.md): rand函数用于返回大于或等于0且小于1的平均分布随机数。返回DOUBLE类型的值。返回0.3668915240363728。返回0.25738143505962285。 - [round](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0240.md): round函数用于计算a的四舍五入到d位的值。返回DOUBLE类型的值。d为负数时,对小数点左侧第|d|位进行四舍五入。a或d值为NULL时,返回NULL。返回123.0。返回123.4。 - [shiftleft](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0241.md): shiftleft函数用于有符号左移,将a的二进制数按位左移b位。返回INT类型。a或b值为NULL时,返回NULL。返回8。返回48。返回48。返回NULL。 - [shiftright](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0242.md): shiftright函数用于有符号右移,将a的二进制数按位右移b位。返回INT类型。a或b值为NULL时,返回NULL。返回2。返回4。返回4。返回NULL。 - [shiftrightunsigned](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0243.md): shiftrightunsigned函数用于无符号右移,将a的二进制数按位右移b位。返回INT类型。a或b值为NULL时,返回NULL。返回2。返回536870910。返回2。返回NULL。 - [sign](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0244.md): sign函数用于返回a所对应的正负号。返回DOUBLE类型。a值为正数时,返回1。a值为负数时,返回-1。a值为0时,返回0。a值为NULL时,返回NULL。返回-1。返回1。返回0。返回1。返回NULL。 - [sin](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0245.md): sin函数用于计算a的正弦值,输入为弧度。返回DOUBLE类型的值。a为NULL,则返回NULL。返回1。返回NULL。 - [soundex](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0246.md): soundex函数用于从str返回一个soundex字符串,如soundex('Miller')= M460。返回STRING类型的值。str值为NULL时,返回NULL。返回M460 - [sqrt](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0247.md): sqrt函数用于返回数值的平方根。返回DOUBLE类型的值。a为NULL,则返回NULL。返回2.8284271247461903。返回4。返回NULL。 - [tan](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0248.md): tan函数用于计算a的正切值,输入为弧度。返回DOUBLE类型的值。a为NULL,则返回NULL。返回0.9999999999999999。返回NULL。 - [avg](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0250.md): avg函数用于计算平均值。返回DOUBLE类型的值。如果col值为NULL时,该列不参与计算。计算所有仓库的平均商品数(items)。命令示例如下:select avg(items) from warehouse;返回结果如下:_c0 100.0返回结果如下:与group by配合使用,计算每个仓库中所有商品的平均库存。命 - [corr](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0251.md): corr函数用于返回两列数值的相关系数。返回DOUBLE类型的值。计算所有商品库存(items)和价格(price)的相关系数。命令示例如下:select corr(items,price) from warehouse;返回结果如下:_c0 1.242355返回结果如下:与group by配合使用,对所有商品按照仓库( - [count](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0252.md): count函数用于返回记录条数。返回BIGINT类型。colname值为NULL时,该行不参与计算。计算所有仓库表中的记录数。命令示例如下:select count(*) from warehouse;返回结果如下:_c0 10返回结果如下:与group by配合使用,对所有商品按照仓库(warehouseId)进行分组 - [covar_pop](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0253.md): covar_pop函数用于返回两列数值协方差。返回DOUBLE类型的值。计算所有商品库存(items)和价格(price)的协方差。命令示例如下:select covar_pop(items,price) from warehouse;返回结果如下:_c0 1.242355返回结果如下:与group by配合使用,对所有 - [covar_samp](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0254.md): covar_samp函数用于返回两列数值样本协方差。返回DOUBLE类型的值。计算所有商品库存(items)和价格(price)的样本协方差。命令示例如下:select covar_samp(items,price) from warehouse;返回结果如下:_c0 1.242355返回结果如下:与group by配合 - [max](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0255.md): max函数用于返回最大值。返回DOUBLE类型的值。返回值的类型与col类型相同。返回规则如下:col值为NULL时,该行不参与计算。col为BOOLEAN类型时,不允许参与运算。计算所有商品的最高库存(items)。命令示例如下:select max(items) from warehouse;返回结果如下:_c0 9 - [min](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0256.md): min函数用于返回最小值。返回DOUBLE类型的值。返回值的类型与col类型相同。返回规则如下:col值为NULL时,该行不参与计算。col为BOOLEAN类型时,不允许参与运算。计算所有商品的最低库存(items)。命令示例如下:select min(items) from warehouse;返回结果如下:_c0 6 - [percentile](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0257.md): percentile函数用于计算精确百分位数,适用于小数据量。先对指定列升序排列,然后取第p位百分数的精确值。返回DOUBLE或ARRAY类型。列名不存在时,返回报错。p为NULL或在[0,1]之外时,返回报错。假设列int_test中的元素为1、2、3、4,类型为INT类型。返回3.0999999999999996。返回2.5。返回[1 - [percentile_approx](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0258.md): percentile_approx函数用于计算近似百分位数,适用于大数据量。先对指定列升序排列,然后取第p位百分数最靠近的值。返回DOUBLE类型的值。计算所有商品库存(items)的0.5百分位,精确度100。命令示例如下:假设列int_test中的元素为1、2、3、4,类型为INT类型。select PERCENTILE_APPROX - [stddev_pop](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0259.md): stddev_pop函数用于返回指定列的总体标准差。返回DOUBLE类型的值。计算所有商品库存(items)的总体标准差。命令示例如下:select stddev_pop(items) from warehouse;返回结果如下:_c0 91.49358659976605返回结果如下:与group by配合使用,对所有商品 - [stddev_samp](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0260.md): stddev_samp函数用于返回指定列的样本标准差。返回DOUBLE类型的值。计算所有商品库存(items)的样本标准差。命令示例如下:select stddev_samp(items) from warehouse;返回结果如下:+------------+ | _c0 | +------------+ | 1.3423 - [sum](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0261.md): sum函数用于求和。返回DOUBLE类型的值。如果col值为NULL时,该行不参与计算。计算所有仓库的商品(items)总和。命令示例如下:select sum(items) from warehouse;返回结果如下:_c0 55357返回结果如下:与group by配合使用,对所有商品按照仓库(warehouseId) - [variance/var_pop](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0262.md): variance/var_pop函数用于返回列的总体方差。返回DOUBLE类型的值。计算所有商品库存(items)的方差。命令示例如下:select variance(items) from warehouse; --等效于如下语句。 select var_pop(items) from warehouse;返回结果如下:_c0 - [var_samp](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0263.md): var_samp函数用于返回指定列的样本方差。返回DOUBLE类型的值。计算所有商品库存(items)的样本方差。命令示例如下:select var_samp(items) from warehouse;返回结果如下:_c0 294.342355返回结果如下:与group by配合使用,对所有商品按照仓库(warehous - [median](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0264.md): median函数用于计算入参的中位数。返回DOUBLE或DECIMAL类型。列名不存在时,返回报错。假设列int_test中的元素为1、2、3、4,类型为INT类型。返回2.5。 - [cume_dist](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0266.md): cume_dist函数用于求累计分布,相当于求分区中大于等于或小于等于当前行的数据在分区中的占比。窗口函数的使用限制如下:窗口函数只能出现在select语句中。窗口函数中不能嵌套使用窗口函数和聚合函数。窗口函数不能和同级别的聚合函数一起使用。返回DOUBLE类型的值。为便于理解函数的使用方法,本文为您提供源数据,基于源数据提供函数相关示例 - [first_value](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0267.md): first_value函数用于取当前行所对应窗口的第一条数据的值。窗口函数的使用限制如下:窗口函数只能出现在select语句中。窗口函数中不能嵌套使用窗口函数和聚合函数。窗口函数不能和同级别的聚合函数一起使用。参数的数据类型。为便于理解函数的使用方法,本文为您提供源数据,基于源数据提供函数相关示例。创建表logs,并添加数据,命令示例如下 - [last_value](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0268.md): last_value函数用于取当前行所对应窗口的最后一条数据的值。窗口函数的使用限制如下:窗口函数只能出现在select语句中。窗口函数中不能嵌套使用窗口函数和聚合函数。窗口函数不能和同级别的聚合函数一起使用。参数的数据类型。为便于理解函数的使用方法,本文为您提供源数据,基于源数据提供函数相关示例。创建表logs,并添加数据,命令示例如下 - [lag](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0269.md): lag函数用于统计窗口内往上第n行值。窗口函数的使用限制如下:窗口函数只能出现在select语句中。窗口函数中不能嵌套使用窗口函数和聚合函数。窗口函数不能和同级别的聚合函数一起使用。参数的数据类型。示例数据为便于理解函数的使用方法,本文为您提供源数据,基于源数据提供函数相关示例。创建表logs,并添加数据,命令示例如下:添加数据如下:将所 - [lead](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0270.md): lead函数用于获取窗口内往下第n行值。窗口函数的使用限制如下:窗口函数只能出现在select语句中。窗口函数中不能嵌套使用窗口函数和聚合函数。窗口函数不能和同级别的聚合函数一起使用。参数的数据类型。示例数据为便于理解函数的使用方法,本文为您提供源数据,基于源数据提供函数相关示例。创建表logs,并添加数据,命令示例如下:添加数据如下:将 - [percent_rank](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0271.md): percent_rank函数为窗口的ORDER BY子句所指定列中值的返回值,但以介于0和1之间的小数形式表示,计算方法为 (分组内当前行的RANK值-1)/(分组内总行数-1)。窗口函数的使用限制如下:窗口函数只能出现在select语句中。窗口函数中不能嵌套使用窗口函数和聚合函数。窗口函数不能和同级别的聚合函数一起使用。返回DOUBLE - [rank](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0272.md): rank函数用于计算一个值在一组值中的排位。如果出现并列的情况,RANK函数会在排名序列中留出空位。窗口函数的使用限制如下:窗口函数只能出现在select语句中。窗口函数中不能嵌套使用窗口函数和聚合函数。窗口函数不能和同级别的聚合函数一起使用。返回INT类型的值。为便于理解函数的使用方法,本文为您提供源数据,基于源数据提供函数相关示例。创 - [row_number](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0273.md): row_number函数用于计算行号。从1开始递增。窗口函数的使用限制如下:窗口函数只能出现在select语句中。窗口函数中不能嵌套使用窗口函数和聚合函数。窗口函数不能和同级别的聚合函数一起使用。返回INT类型的值。为便于理解函数的使用方法,本文为您提供源数据,基于源数据提供函数相关示例。创建表logs,并添加数据,命令示例如下:添加数据 - [decode1](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0275.md): decode1函数实现if-then-else分支选择的功能。result 和 default 为返回值,支持返回所有的数据类型。如果匹配,返回result。如果没有匹配,返回default。如果没有指定default,返回NULL。如果search选项有重复且匹配时,会返回第一个值。为便于理解函数的使用方法,本文为您提供源数据,基于源数 - [ordinal](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0276.md): ordinal函数用于将输入变量按从小到大排序后,返回nth指定位置的值。DOUBLE或DECIMAL类型。排在第nth位的值,当不存在隐式转换时返回值同输入参数数据类型。当有类型转换时,DOUBLE、BIGINT、STRING之间的转换返回DOUBLE类型;STRING、DATETIME之间的转换返回DATETIME类型。不允许其他的隐 - [trans_array](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0277.md): trans_array函数用于将一行数据转为多行的UDTF,将列中存储的以固定分隔符格式分隔的数组转为多行。所有作为key的列必须位于在前面,而要转置的列必须放在后面。在一个select中只能有一个UDTF,不可以再出现其他的列。不可以与group by、cluster by、distribute by、sort by一起使用。参数的数据 - [aggregate_func](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0286.md): 无。聚合函数。aggregate_func通常在数据库查询中用于对一组值进行计算并返回单个结果。 - [alias](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0287.md): 无。别名,可给字段、表、视图、子查询起别名,仅支持字符串类型。 - [attr_expr](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0288.md): 属性表达式,用于SELECT列表、WHERE条件等场景。可包含:字段名(attr)、常量(const_value)、CASE表达式、函数调用(数学/日期/字符串/聚合/窗口/UDF)、二元/一元运算符、子表达式(括号包围)。 - [attr_expr_list](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0289.md): 属性表达式列表。attr_expr列表,多个属性表达式以逗号分隔。 - [attrs_value_set_expr](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0290.md): 属性值集合表达式,用于INSERT语句的VALUES子句。每组值用括号包围,多组之间用逗号分隔。 - [boolean_expression](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0291.md): 布尔表达式,返回TRUE、FALSE或NULL。可包含:比较运算符、逻辑运算符(AND/OR/NOT)、IN/EXISTS子查询、IS NULL等。返回boolean类型的表达式。 - [class_name](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0292.md): Java类的全限定类名,用于UDF或SerDe。例如org.apache.spark.sql.udf.MyUDF。函数所依赖的类名,注意类名需要包含类所在包的完整路径。 - [col](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0293.md): 表的字段,与col_name相同。无。函数调用时的形参,一般即为字段名称。 - [col_comment](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0294.md): 列注释,对列的描述信息。字符串常量,用单引号包围。对列(字段)的描述,仅支持字符串类型,描述长度不能超过256字节。 - [col_name](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0295.md): 无。列名,即字段名称,仅支持字符串类型,名称长度不能超过128个字节。 - [col_name_list](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0296.md): 字段列表,可由一个或多个col_name构成,多个col_name之间用逗号分隔。 - [condition](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0297.md): 条件表达式,用于WHERE、HAVING等子句。可包含:比较运算、逻辑运算、BETWEEN、IN、LIKE、IS NULL、EXISTS子查询等。 - [condition_list](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0298.md): 条件列表,多个条件以AND/OR连接。 - [cte_name](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0299.md): 无。公共表表达式的名字。 - [data_type](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0300.md): 数据类型,指定列或表达式的数据类型。如INT、BIGINT、DOUBLE、STRING、DATE、TIMESTAMP等。无。当前只支持原生数据类型。 - [db_comment](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0301.md): 无。对数据库的描述,仅支持字符串类型,描述长度不能超过256字节。 - [db_name](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0302.md): 无。数据库名称,仅支持字符串类型,名称长度不能超过128字节。 - [else_result_expression](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0303.md): 无。CASE WHEN语句中ELSE语句后的返回结果。 - [file_format](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0304.md): 数据文件格式。| AVRO| CSV| JSON| ORC| PARQUET目前包含以上5种格式。指定数据格式的方式有两种,一种是USING,可指定以上5种数据格式,另一种是STORED AS,只能指定ORC和PARQUET。ORC对RCFile做了优化,可以提供一种高效的方法来存储Hive数据。PARQUET是面向分析型业务的列式存储格 - [file_path](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0305.md): 无。文件路径,指数据文件的存储位置。该路径是OBS路径。 - [function_name](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0306.md): 无。函数名称,仅支持字符串类型。 - [groupby_expression](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0307.md): 无。包含GROUP BY的表达式。 - [having_condition](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0308.md): HAVING条件,对分组后的结果进行过滤。 - [hdfs_path](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0309.md): 无。HDFS的路径,如hdfs:///tmp。 - [input_expression](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0310.md): 无。CASE WHEN的输入表达式。 - [input_format_classname](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0311.md): 无。指定输入格式的类名,如org.apache.hadoop.mapred.TextInputFormat。 - [jar_path](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0312.md): 无。jar包路径,该路径可以是本地路径也可以是HDFS路径。 - [join_condition](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0313.md): JOIN连接条件,指定两表之间的关联规则。 - [non_equi_join_condition](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0314.md): 无。指非等值连接条件。包含<、>、<=、>=、<>等比较运算符的JOIN条件。 - [number](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0315.md): 无。LIMIT限制输出的行数,只支持INT类型。 - [num_buckets](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0316.md): 无。分桶的个数,仅支持INT类型。用于CLUSTERED BY ... INTO N BUCKETS。 - [output_format_classname](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0317.md): 无。指定输出格式的类名,如org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat。 - [partition_col_name](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0318.md): 无。分区列名,即分区字段名称,仅支持字符串类型。 - [partition_col_value](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0319.md): 无。分区列值,即分区字段的值。常量值,用单引号包围(字符串类型)或直接写(数值类型)。 - [partition_specs](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0320.md): 表的分区列表,以key=value的形式表现,key为partition_col_name ,value为partition_col_value ,若存在多个分区字段,每组key=value之间用逗号分隔。 - [property_name](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0321.md): 无。属性名称,用于TBLPROPERTIES或DBPROPERTIES。仅支持字符串类型。 - [property_value](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0322.md): 无。属性值,仅支持字符串类型。 - [regex_expression](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0323.md): 无。模式匹配字符串,支持正则表达式匹配。 - [result_expression](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0324.md): 无。CASE WHEN语句中THEN语句后的返回结果。 - [row_format](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0325.md): 行格式,指定Hive表的行序列化/反序列化方式。ROW FORMAT DELIMITED[FIELDS TERMINATED BY separator][COLLECTION ITEMS TERMINATED BY separator][MAP KEYS TERMINATED BY separator] [LINES TERMINATED - [select_statement](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0326.md): 无。SELECT基本语句,即查询语句。 - [separator](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0327.md): 无。分隔符,仅支持CHAR类型,支持用户自定义,如逗号、分号、冒号等。 - [serde_name](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0328.md): 无。SerDe类的全限定类名。指定SerDe的名称。如org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe。 - [sql_containing_cte_name](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0329.md): 包含了cte_name定义的公共表表达式的SQL语句。 - [sub_query](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0330.md): 子查询,嵌套在另一个查询中的SELECT语句。用括号包围的SELECT语句。子查询。 - [table_comment](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0331.md): 无。对表的描述,仅支持字符串类型,描述长度不能超过256字节。 - [table_name](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0332.md): 无。表名称,支持字符串类型和“$”符号,名称长度不能超过128字节。可使用db_name.table_name格式指定数据库。 - [table_properties](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0333.md): 表的属性列表,以key=value的形式表示,key为property_name,value为property_value,列表中每组key=value之间用逗号分隔。 - [table_reference](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0334.md): 无。表引用,FROM子句中引用的数据源。即表或视图的名称,仅支持字符串类型,也可为子查询,当为子查询时,必须加别名。 - [view_name](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0335.md): 无。视图名称,仅支持字符串类型,名称长度不能超过128个字节。 - [view_properties](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0336.md): 视图的属性列表,以key=value的形式表示,key为property_name,value为property_value,列表中每组key=value之间用逗号分隔。 - [when_expression](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0337.md): 无。CASE语句中WHEN后的条件或值。简单CASE:与input_expression比较的值;搜索CASE:布尔条件。 - [where_condition](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0338.md): WHERE条件,用于过滤行。 - [window_function](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0339.md): 无。窗口函数,在OVER窗口上执行计算。如row_number、rank、lag、lead等。 - [关系运算符](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0341.md): 所有数据类型都可用关系运算符进行比较,并返回一个BOOLEAN类型的值。关系运算符均为双目操作符,被比较的两个数据类型必须是相同的数据类型或者是可以进行隐式转换的类型。= 和 == 的区别:= 可用于赋值操作,== 不能用于赋值操作。<=> 是NULL安全的等值运算符,当两边都为NULL时返回TRUE。<> 是标准SQL的不等于运算符,! - [算术运算符](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0342.md): 算术运算符包括双目运算与单目运算,这些运算符都将返回数字类型。整数除法使用div函数,/ 运算符始终返回DOUBLE类型。ANSI模式下(Spark 4.0默认开启),整数除以零将抛出异常而非返回NULL。位运算符(&、|、^、~)仅适用于整数类型。% 取余运算符与 mod() 函数等效。 - [逻辑运算符](https://support.huaweicloud.com/sqlref-spark-aidatalake/aidatalake_063_0343.md): 常用的逻辑操作符有AND、OR和NOT,它们的运算结果有三个值,分别为TRUE、FALSE和NULL,其中NULL代表未知。优先级顺序为:NOT>AND>OR。运算规则请参见表1,表中的A和B代表逻辑表达式。 ## 常见问题 - [服务咨询类](https://support.huaweicloud.com/aidatalake_faq/aidatalake_03_0001.md): 智能数据湖(AI DataLake)是华为云构建的企业级多模态智能数据分析与管理平台,为您提供构建AI时代数据基础设施的完整能力。提供多模数据引擎Aura、AI计算引擎Ray、批处理引擎Spark和流处理引擎Flink四大核心计算引擎,聚焦多模数据处理、异构算力混合调度,开放湖仓处理,构建新一代多模湖仓架构,促进Data+AI协同创新。A - [工作空间类](https://support.huaweicloud.com/aidatalake_faq/aidatalake_03_0002.md): 使用AI DataLake进行数据分析场景,管理员首先需要考虑的就是项目隔离、权限隔离与管理、资源分配问题。AI DataLake的工作空间正是为解决这些问题而设计,从系统层面为管理者提供对使用AI DataLake的用户(成员)权限、资源、底层计算引擎配置的管理能力。它通过环境隔离、资源绑定的基本逻辑,为您提供一个独立的开发环境,并基于 - [计算资源池类](https://support.huaweicloud.com/aidatalake_faq/aidatalake_03_0003.md): AI DataLake提供的计算资源分为预留资源池和弹性资源,同时支持混合资源调配,以满足不同业务场景的算力需求。预留资源池:用户提前购买实例资源,资源类型覆盖CPU、NPU、GPU三种类型的算力,您可根据业务负载特点选择合适的计算资源组合。预留资源池为核心业务提供资源保障,确保资源归用户独享使用,性能稳定可预测,适用于长期稳定运行的批处 - [在DataArts Studio上执行Aura作业时报错,如何解决?](https://support.huaweicloud.com/aidatalake_faq/aidatalake_03_0005.md): 在DataArts Studio执行作业时,报错为 {"error_code":"common.01010003","error_msg":"No permissions for any one of the roles: [te_admin],or action DataArtsFabric.job.run"}。执行作业的用户未获得运行 - [Spark中Parquet的brotli压缩格式无法使用怎么办?](https://support.huaweicloud.com/aidatalake_faq/aidatalake_03_0006.md): 代码里显示支持brotli压缩格式,但实际使用Spark SQL类型的任务时,发现不支持。Parquet依赖声明中引用了org.apache.hadoop.io.compress.BrotliCodec,但该类在Hadoop中不存在。方案1:使用ORC格式时,其本身提供了BrotliCodec的支持。方案2:使用Spark Job任务,并 - [端点类](https://support.huaweicloud.com/aidatalake_faq/aidatalake_03_0007.md): 端点提供访问AI DataLake服务的入口,通过端点可以连接计算引擎与计算资源、进行数据开发与查询、配置端点使用资源的Min/Max控制资源的弹性范围。AI DataLake端点是计算引擎的唯一标准化入口,通过绑定引擎与资源,实现作业对引擎能力和计算资源的统一调用和访问。您可以把端点比喻为AI DataLake的“业务窗口”,您可以按需 - [作业开发类](https://support.huaweicloud.com/aidatalake_faq/aidatalake_03_0008.md): AI DataLake提供了多种作业开发方式,包括SQL编辑器、Notebook、DataArts Studio提交作业。SQL编辑器(公测期暂未开放):适用于SQL查询场景,执行结果可以在线预览,并支持下载至OBS。SQL编辑器适用于数据分析师日常查数据或简单的数据分析场景。Notebook(公测期暂未开放):基于JupyterLab,