
# 使用前必读
在使用Aura进行数据开发前，需先了解Aura的核心理念以及提供的两种交互方式。
- 什么是Aura Aura是一款高性能、分布式的面向多模态数据处理的计算引擎。在AI时代，数据不再局限于传统的结构化表格，图像、音频、视频、文本等非结构化数据扮演着越来越重要的角色。Aura的核心设计目标就是简化多模态数据的处理流程，让开发者能够使用熟悉的SQL或Python DataFrame API完成复杂的数据分析任务，无论开发SQL还是DataFrame，最终都会转换为Aura优化后的执行计划。
  
- SQL开发：标准与高效 SQL（Structured Query Language）是数据处理领域的通用语言。在Aura中，SQL开发主要面向习惯于数据仓库操作的用户。
  - **特点**：声明式编程，即只需要告诉 Aura "你要什么"（What），而不需要关心"怎么实现"（How）。
  
  - **适用场景**：快速取数、复杂的多表关联分析、现成BI工具的对接。
  
  - **Aura** **优势**：默认支持SQL:2016的大部分特性，学习成本极低，天然适合报表开发。
   
- DataFrame开发：灵活与编程语义 DataFrame是编程式接口，将数据看作一张带标签的二维表，但提供了更强的逻辑表达力。Aura DataFrame包括类似IBIS的通用结构化数据处理的DataFrame，也包括多模态数据处理的DataFrame。您可以直接在DataFrame中对图像列进行缩放、提取音频特征、或对文本进行嵌入计算。
  - **特点**：命令式与函数式结合进行编程开发。支持链式调用，可以利用Python的循环、条件判断和丰富的库（例如机器学习、可视化）进行深度集成。
  
  - **适用场景**：特征工程、自动化流水线、需要逻辑复用的复杂数据清洗。
   
- 如何选择使用SQL还是DataFrame 在Aura中，SQL与DataFrame并非对立，而是互补：
  - **选择SQL的场景**
    - 需要处理复杂的查询逻辑，涉及多表连接、嵌套子查询。
    
    - 希望编写可读性高、易于分享的分析脚本。
    
    - 团队已有SQL技能储备。
    
    - 需要将查询嵌入到其他应用程序或BI工具中。
     
  
  - **选择DataFrame的场景**
    - 需要进行探索性数据分析，需要频繁查看中间结果。
    
    - 习惯Python编程风格，需要更灵活的控制流。
    
    - 需要在数据处理中使用自定义函数或复杂逻辑。
    
    - 需要与机器学习库（例如PyTorch、TensorFlow）进行集成。
     
  
  
  Aura允许您在SQL和DataFrame之间无缝切换。例如，可以用DataFrame加载和处理数据，然后用SQL进行最终查询；或者在SQL中调用自定义的Python函数。
  
#### 语法文本格式约定
为了方便对语法使用的理解，在文档中对语法文本按如下格式进行表述。
| 格式                             | 意义                                  |
|:---|:---|
| 大写                             | 语法关键字（语句中保持不变、必须照输的部分）采用大写表示。       |
| 小写                             | 参数（语句中必须由实际值进行替代的部分）采用小写表示。         |
| \[ \]                          | 表示用"\[ \]"括起来的部分是可选的。               |
| ...                            | 表示前面的元素可重复出现。                       |
| \[ x \| y \| ... \]            | 表示从两个或多个选项中选取一个或者不选。                |
| { x \| y \| ... }              | 表示从两个或多个选项中选取一个。                    |
| \[x \| y \| ... \] \[ ... \]   | 表示可选多个参数或者不选，如果选择多个参数，则参数之间用空格分隔。   |
| \[ x \| y \| ... \] \[ ,... \] | 表示可选多个参数或者不选，如果选择多个参数，则参数之间用逗号分隔。   |
| { x \| y \| ... } \[ ... \]    | 表示可选多个参数，至少选一个，如果选择多个参数，则参数之间以空格分隔。 |
| { x \| y \| ... } \[ ,... \]   | 表示可选多个参数，至少选一个，如果选择多个参数，则参数之间用逗号分隔。 |
   
