
# 快速开始：使用Aura端点运行DataFrame或SQL作业
#### 操作场景
AI DataLake支持提交DataFrame或SQL作业至Aura端点中运行，支持使用Python编辑器和DataArts Studio开发作业，DataArts Studio开发作业详细操作，请参见[快速上手使用AI DataLake查询数据](https://support.huaweicloud.com/qs-aidatalake/aidatalake_01_0030.html)。
本章节为您演示如何使用Python编辑器提交DataFrame作业，包括以下操作：
1.创建一张**data_frame_test_create_table** 表，表中包含**col_a** （int）和**col_b**（str）两列。
2. 向表中插入数据。
3. 查询表中插入的数据。
4. 删除表中的数据。
#### 前提条件
- 已创建工作空间，详细操作请参见[创建工作空间](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0001.html)。
- 已创建计算资源，详细操作请参见[购买预留资源池](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0040.html)。
- 已创建Aura端点，详细操作请参见[创建Aura引擎端点](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0049.html)。
- 已获取用户的AK、SK信息。
  1. 在管理控制台页面，鼠标移动至右上方的用户名，在下拉列表中选择"我的凭证"。
  
  2. 单击"访问密钥"页签，单击"新增访问密钥"，输入验证码或密码。
  
  3. 单击"确定"，生成并下载访问密钥。在.csv文件中获取用户的AK、SK信息。
   
 
#### 使用Python编辑器提交DataFrame作业至Aura端点运行
在Python环境下运行以下代码，即可实现DataFrame作业提交至Aura端点运行。相关端点信息通过**ai_lake.connect()**函数进行配置，同时建立与Aura端的连接。
**ai_lake.connect()** 相关参数说明请参见[表1]。
 表1ai_lake.connect()接口参数信息 
| 参数                 | 含义                                                                                                                                                                             |
|:---|:---|
| aura_endpoint      | 指定连接的Endpoint信息，请参见[地区和终端节点](https://console.huaweicloud.com/apiexplorer/#/endpoint/DataArtsFabric)获取。                                                                         |
| aura_endpoint_id   | 指定连接的Aura端点ID。 可登录AI DataLake控制台，在左侧导航栏选择"引擎管理 \> 多模数据引擎 Aura"，在Aura端点列表中的"名称/ID"列查看要运行作业的端点ID信息。                                       |
| aura_workspace_id  | 指定连接的工作空间ID。 可登录AI DataLake控制台，在左侧导航栏中，单击工作空间区域，在下拉列表中选择"工作空间管理"，在工作空间列表中的"空间名称/ID"列查看运行作业的Aura端点所在工作空间的ID信息。 |
| aura_endpoint_name | 指定连接的Aura端点名。                                                                                                                                                                  |
| lf_catalog_name    | 指定连接的LakeFormation Catalog目录。                                                                                                                                                  |
| lf_instance_id     | 指定LakeFormation实例的ID。                                                                                                                                                          |
| access_key         | 指定连接的访问密钥ID。                                                                                                                                                                   |
| secret_key         | 指定连接的访问密钥。                                                                                                                                                                     |
| security_token     | 指定连接的安全令牌（仅在上述访问密钥ID，访问密钥是临时的情况下需要）。                                                                                                                                           |
| logging_level      | 指定日志级别。                                                                                                                                                                        |
| verify             | 指定连接的认证。                                                                                                                                                                       |
| default_database   | 指定连接默认使用的数据库名称。                                                                                                                                                                |
| use_single_cn_mode | 指定是否使用单cn模式。                                                                                                                                                                   |
| api_version        | 指定使用的API版本，默认为v2。                                                                                                                                                              |
   
ai_lake.connect()有两种不同的API接口，根据api_version参数的取值分为两种建立连接的方式，该参数默认为v2。
api_version="v1"：需要传入aura_endpoint_id，lf_instance_id和lf_catalog_name。
```
from aura_frame.multimodal import ai_lake
con = ai_lake.connect(
    aura_endpoint="xxx",
    aura_endpoint_id="endpoint-id",
    aura_workspace_id="workspace-id",
    lf_catalog_name="lf-name",
    lf_instance_id="lf-id",
    access_key='ak-xxxx',
    secret_key='sk-xxxx',
    default_database="postgres",
    use_single_cn_mode=True,
    api_version="v1"
)
```
api_version="v2"：需要传入aura_endpoint_name和lf_catalog_name。
```
from aura_frame.multimodal import ai_lake
con = ai_lake.connect(
    aura_endpoint="xxx",
    aura_endpoint_name="endpoint_name",
    aura_workspace_id="workspace-id",
    lf_catalog_name="lf-name",
    access_key='ak-xxxx',
    secret_key='sk-xxxx',
    default_database="postgres",
    use_single_cn_mode=True,
    api_version="v2"
)
```
使用示例：
```
import ibis
from aura_frame.multimodal import ai_lake
def aura_connection():
    con = ai_lake.connect(
        aura_endpoint="xxx",
        aura_endpoint_name="endpoint_name",
        aura_workspace_id="workspace-id",
        lf_catalog_name="lf-name",
        access_key='ak-xxxx',
        secret_key='sk-xxxx',
        default_database="postgres",
        use_single_cn_mode=True,
        api_version="v2"
    )
    return con
if __name__ == "__main__":
    table_name = "data_frame_test_create_table"
    db = "dataframe_test"
    set_schema_sql = "set current_schema=dataframe_test"
    # get connection
    aura_con = aura_connection()
    aura_con.sql(set_schema_sql)
    aura_con.drop_table(table_name, database=db, force=True)
    
    # create table
    aura_con.create_table(table_name, schema={"col_a": ibis.dtype("int64"), "col_b": ibis.dtype("string")}, database=db)
    
    # insert rows
    aura_con.sql("INSERT INTO dataframe_test.data_frame_test_create_table VALUES(1, 's1'), (2, 's2'), (3, 's3')")
    # select rows
    ds = aura_con.load_dataset(table_name, database=db)
    ds.select_columns([ds.col_a, ds.col_b]).show(3)
    
    # drop table
    aura_con.drop_table(table_name, database=db)
    aura_con.close()
```
DataFrame作业示例运行成功后，回显结果如下，例如：
```
[INFO] [Aura Frame] 2026-04-21 11:52:09 Setting guc options: 'SET timezone = UTC; SET obs_result_format = 2;SET current_schema = ffff;SET fq_query_vdn = 1;'
[INFO] [Aura Frame] 2026-04-21 11:52:10 Created session 27b69c6c-0e69-4507-8e01-056517818006 successfully.
[INFO] [Aura Frame] 2026-04-21 11:52:11 Dropping table dataframe_test.data_frame_test_create_table
[INFO] [Aura Frame] 2026-04-21 11:52:11 Creating table dataframe_test.data_frame_test_create_table
[INFO] [Aura Frame] 2026-04-21 11:52:11 CREATE TABLE "dataframe_test"."data_frame_test_create_table" ("col_a" BIGINT, "col_b" TEXT)
[INFO] [Aura Frame] 2026-04-21 11:52:16 Loading dataset dataframe_test.data_frame_test_create_table
[INFO] [Aura Frame] 2026-04-21 11:52:21 SQL statement for executing:
SELECT *
FROM "dataframe_test"."data_frame_test_create_table" AS "t0"
LIMIT 3
[INFO] [Aura Frame] 2026-04-21 11:52:25 Running SQL statement, id is c8ec7709-7825-4c53-b3bc-cbbedae85bba
   col_a col_b
0      1    s1
1      2    s2
2      3    s3
[INFO] [Aura Frame] 2026-04-21 11:52:25 Dropping table dataframe_test.data_frame_test_create_table
```
