文档首页/ 智能数据湖 AI DataLake/ Aura语法参考/ 使用Aura SQL开发的流程
更新时间:2026-10-16 GMT+08:00
分享

使用Aura SQL开发的流程

选择SQL开发方式后,可按照以下流程使用Aura开发作业。

步骤一:选择表存储格式

创建表前,需先确定表的存储格式。Aura支持ORC、PARQUET、ICEBERG、LANCE等存储格式,其中Iceberg与Lance是重点能力:

表类型

定位

关键能力

ORC

默认通用格式

列式存储、分区。

PARQUET

通用列式格式

列式存储、分区。

ICEBERG

开放表格式(湖仓一体)

海量数据(PB级)、ACID事务、快照、时间旅行、表达式分区、表级ALTER。

LANCE

面向AI的列式格式

高性能列式存储、向量索引、在线查询、AI/embedding场景。

TEXT / CSV

数据导入导出

仅基础导入导出,不支持分区、ANALYZE等高级功能,不建议作为存储介质。

Apache Iceberg是一种面向海量分析数据集的开放表格式。它通过高性能表格式为计算引擎添加表功能,使用方式与SQL表完全一致。

Iceberg专为超大规模表而构建,已在实际业务环境中得到应用,单个表可容纳数十PB数据,且即使如此庞大的表也无需分布式SQL引擎即可读取。

关于SQL on Iceberg的更多信息,请参见Iceberg功能介绍。

Lance是一种基于Apache Arrow生态构建的高性能列式数据存储格式,由LanceDB团队主导开发,旨在实现接近Arrow内存格式的数据访问性能,同时支持事务管理、索引和增量更新。

Lance不仅适用于离线批处理分析,还重点支持在线查询、向量检索和人工智能应用,是一种面向AI与数据湖融合场景的新型存储格式。

关于SQL on Lance的更多信息,请参见Lance功能介绍。

步骤二:设计数据库对象

创建对象前,建议先完成数据库对象的设计规划:

  • 了解Aura数据库对象:熟悉Aura支持的数据库对象类型及相互关系。
  • 规划Schema:Schema用于从逻辑上组织数据库中的对象和数据,允许多个用户使用同一数据库而不相互干扰。
  • 设计表结构:确定表的列、类型、约束。
  • 设计分区策略:针对大表规划分区方式,提升查询性能。

详细内容,请参考设计数据库对象。

步骤三:配置权限

在创建和访问对象前,需完成用户、角色与对象权限的配置,确保用户具有相应操作权限:

  • 了解Aura权限模型。
  • 创建和管理用户。
  • 对象授权、取消授权、角色管理

权限管理通常由管理员执行;开发人员可通过pg_show_* 系列函数查询权限状态。

详细内容,请参考用户及权限管理。

步骤四:创建数据库对象

完成设计与授权后,通过DDL语句创建所需的数据库对象:

详细内容,请参考DDL语法。

步骤五:操作数据

通过DML语句对表中的数据进行增、删、改、合并与优化:

详细内容,请参考DML语法。

步骤六:查询数据

通过DQL语句查询数据:

  • 单表查询:SELECT、WHERE筛选、ORDER BY排序、LIMIT限制、GROUP BY聚合。
  • 多表连接查询:内连接(INNER/CROSS/NATURAL)、外连接(LEFT/RIGHT/FULL)。
  • 复杂查询:WITH表达式。

详细内容,请参考DQL语法。

步骤七:使用函数与数据类型

开发中需要理解Aura的数据类型体系与可用的函数能力:

  • 了解数据类型及与 LakeFormation 的映射关系:请参考数据类型。
  • 类型之间的转换规则 :请参考类型转换。
  • 表达式编写:请参考表达式。
  • 各类函数与操作符(字符/数字/时间日期/JSON/聚集/窗口/Iceberg表服务/大模型推理等:请参考函数和操作符。
  • 命名时避开关键字:请参考关键字。

步骤八:性能调优

当查询性能不满足预期时,参考性能调优章节分析执行计划、定位瓶颈,并通过 GUC 参数调整引擎行为:

  • 调优流程、执行监控、执行计划分析、Plan Hint、调优案例:请参考性能调优。
  • 各参数的取值与作用:请参考GUC参数。

语法文本格式约定

为了方便对语法使用的理解,在文档中对语法文本按如下格式进行表述。

开发过程中,建议优先采用大小写不敏感的形式进行开发,推荐统一使用小写字母书写数据库对象名称(如表名、列名、函数名、字段名等),避免同一对象在不同位置出现大小写不一致的写法,以防因标识符大小写导致"对象不存在"等错误。

格式

意义

大写

语法关键字(语句中保持不变、必须照输的部分)采用大写表示。

小写

参数(语句中必须由实际值进行替代的部分)采用小写表示。

[ ]

表示用“[ ]”括起来的部分是可选的。

...

表示前面的元素可重复出现。

[ x | y | ... ]

表示从两个或多个选项中选取一个或者不选。

{ x | y | ... }

表示从两个或多个选项中选取一个。

[x | y | ... ] [ ... ]

表示可选多个参数或者不选,如果选择多个参数,则参数之间用空格分隔。

[ x | y | ... ] [ ,... ]

表示可选多个参数或者不选,如果选择多个参数,则参数之间用逗号分隔。

{ x | y | ... } [ ... ]

表示可选多个参数,至少选一个,如果选择多个参数,则参数之间以空格分隔。

{ x | y | ... } [ ,... ]

表示可选多个参数,至少选一个,如果选择多个参数,则参数之间用逗号分隔。

相关文档