
# 快速开始
#### 前提条件
- 已创建工作空间，详细操作请参见[创建工作空间](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信息。
   
 
#### 安装Aura DataFrame SDK
获取SDK，使用以下命令安装SDK包：
```
pip install huawei_aura_frame-3.3.0-py3-none-any.whl
```
如果您需要了解SDK的隐私数据处理策略，请参见[华为云SDK隐私声明](https://github.com/huaweicloud/huaweicloud-sdk-java-v3/blob/master/README_CN.md#隐私声明)。
注意：
- Python版本推荐使用3.11。
- 公测期间，SDK安装包请联系运维人员获取。
 
#### 使用Aura DataFrame
1. 创建会话，入参请参考[表1]。
   
   ```
   from aura_frame.multimodal import ai_lake
   import logging
   import os
   con = ai_lake.connect(
       aura_endpoint=os.getenv("aura_endpoint"), 
       aura_endpoint_name=os.getenv("aura_endpoint_name"),
       aura_workspace_id=os.getenv("aura_workspace_id"), 
       lf_catalog_name=os.getenv("lf_catalog_name"), 
       access_key=os.getenv("access_key"),
       secret_key=os.getenv("secret_key"), 
       use_single_cn_mode=True,  # 表示是否开启单CN模式
       logging_level=logging.INFO # 设置日志级别
   )
   con.set_function_staging_workspace(
       obs_directory_base=os.getenv("obs_directory_base"),
       obs_bucket_name=os.getenv("obs_bucket_name"),
       obs_server=os.getenv("obs_server"),
       access_key=os.getenv("access_key"),
       secret_key=os.getenv("secret_key"),
   )
   ```
   
   
2. 加载数据集。 
   ```
   import pandas as pd
   target_database = "test"
   df = pd.DataFrame({
       'a': [1],
       'b': [3],
       'c': [1]
   })
   ds = con.from_pandas(df)
   ds.show()
      a  b  c
   0  1  3  1
   ```
   
   
3. 数据加工。 
   ```
   import ibis.expr.datatypes as dt
   import aura_frame as aura
   func_signature = aura.Signature(
       parameters=[
           aura.Parameter(name="start", annotation=int),
           aura.Parameter(name="endnum", annotation=int),
           aura.Parameter(name="step", annotation=int)
       ],
       return_annotation=dt.Struct({"col1": int}),
   )
   def py_generate_series(start, endnum, step):
       current = start
       while current <= endnum:
           yield {'col1': current}
           current += step
   con.delete_function("py_generate_series", database=target_database, if_it_exists=True)
   fn = con.create_table_function(
       py_generate_series,
       name="py_generate_series",
       database=target_database,
       signature=func_signature,
   )
   ds = ds.flat_map(fn=fn, on=[ds.a, ds.b, ds.c], as_col='new_col')
   ds.show()
      a  b  c  new_col
   0  1  3  1   1
   1  1  3  1   2
   2  1  3  1   3
   ```
   
   
4. 关闭会话。 
   ```
   con.close()
   ```
   
   
 表1connect()接口参数信息 
| 参数                 | 含义                                                                                                                                                 | 类型          | 默认值          |
|:---|:---|:---|:---|
| aura_endpoint      | 指定连接的Endpoint信息。                                                                                                                                   | str \| None | None         |
| aura_endpoint_id   | 指定连接的Aura端点ID。 登录AI DataLake控制台，在左侧导航栏选择"引擎管理 \> 多模数据引擎 Aura"，在Aura端点列表中的"名称/ID"列查看要运行作业的端点ID信息。              | str \| None | None         |
| aura_endpoint_name | 指定连接的Aura端点名称。                                                                                                                                     | str \| None | None         |
| aura_workspace_id  | 指定连接的工作空间ID。 可登录AI DataLake控制台，在左侧导航栏中，单击工作空间区域，在下拉列表中选择"工作空间管理"，在工作空间列表中的"空间名称/ID"列查看运行作业的Aura端点所在工作空间的ID信息。 | str \| None | None         |
| lf_instance_id     | 指定连接的LakeFormation服务实例ID。                                                                                                                          | str \| None | None         |
| lf_catalog_name    | 指定连接的目录。                                                                                                                                           | str \| None | None         |
| access_key         | 指定连接的访问密钥ID，即获取的用户AK信息。                                                                                                                            | str \| None | None         |
| secret_key         | 指定连接的访问密钥，即获取的用户SK信息。                                                                                                                              | str \| None | None         |
| security_token     | 指定连接的安全令牌（仅在上述访问密钥ID，访问密钥是临时的情况下需要）。                                                                                                               | str \| None | None         |
| token              | 指定连接的用户令牌。                                                                                                                                         | str \| None | None         |
| logging_level      | 日志级别。                                                                                                                                              | int         | logging.INFO |
| use_single_cn_mode | 表示是否开启单CN模式。                                                                                                                                       | bool        | False        |
| verify             | 指定连接的认证。                                                                                                                                           | bool        | False        |
| default_database   | 指定连接的数据库名称。                                                                                                                                        | str \| None | None         |
| api_version        | 指定使用的API版本。                                                                                                                                        | str         | v2           |
| session_id         | 已有会话的标识符。                                                                                                                                          | str         | None         |
   
