
# 快速开始
#### 安装FabricData SDK
- 下载SDK，使用以下命令安装SDK包。
  ```
  pip install huawei_fabric_data-0.1.0-py3-none-any.whl
  ```
  python版本推荐使用3.11。
  
 
#### 使用Fabric Data
1. 创建会话，入参请参考[表1]。
   
   ```
   import ibis  # 导入ibis依赖
   from fabric_data.multimodal import ai_lake
   import logging
   import os
   con = ai_lake.connect(
       fabric_endpoint=os.getenv("fabric_endpoint"), 
       fabric_endpoint_id=os.getenv("fabric_endpoint_id"), 
       fabric_workspace_id=os.getenv("fabric_workspace_id"), 
       lf_catalog_name=os.getenv("lf_catalog_name"), 
       lf_instance_id=os.getenv("lf_instance_id"),
       access_key=os.getenv("access_key"),
       secret_key=os.getenv("secret_key"), 
       use_single_cn_mode=True,  # 表示是否开启单CN模式
       logging_level=logging.INFO, # 设置日志级别
   )
   ```
   
   
2. 加载数据集。 
   ```
   target_database = "test"
   dataset_name = "test_data"
   ds = con.load_dataset(dataset_name, database=target_database)
   ds.show()
   ```
   ```
   a  b  c
   0  1  3  1
   ```
   
   
3. 数据加工。 
   ```
   import ibis.expr.datatypes as dt
   import fabric_data as fabric
   func_signature=fabric.Signature(
        parameters=[
            fabric.Parameter(name="start", annotation=int),
            fabric.Parameter(name="endnum", annotation=int),
            fabric.Parameter(name="step", annotation=int)
        ],
        return_annotation=dt.Struct({"col1": int}),
   )
   @fabric.udf.python(database=target_database, signature=func_signature)
   def py_generate_series(start, endnum, step):
       current = start
       while current <= endnum:
           yield {'col1':current}
           current += step
   ds = ds.flat_map(
      fn=py_generate_series,
      on=[ds.a, ds.b, ds.c],
      as_col='new_col',
      dpu=0.33
   )
   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()接口参数信息 
| 参数                  | 含义                                   | 类型          | 默认值          | 备注                                                                                               |
|:---|:---|:---|:---|:---|
| fabric_endpoint     | 指定连接的端点。                             | str \| None | None         | 更多信息，请参见[地区和终端节点](https://console.huaweicloud.com/apiexplorer/#/endpoint)。                       |
| fabric_endpoint_id  | 指定连接的端点ID。                           | str \| None | None         | 更多信息，请参见[查询endpoint_id](https://support.huaweicloud.com/api-fabric/dataartsfabric_03_0023.html)。 |
| fabric_workspace_id | 指定连接的工作空间ID。                         | str \| None | None         | 更多信息，请参见[获取工作空间ID](https://support.huaweicloud.com/api-fabric/dataartsfabric_03_0022.html)。      |
| lf_instance_id      | 指定连接的LakeFormation服务实例ID。            | str \| None | None         | -                                                                                                |
| lf_catalog_name     | 指定连接的目录。                             | str \| None | None         | -                                                                                                |
| access_key          | 指定连接的访问密钥ID。                         | str \| None | None         | 更多信息，请参见[获取ak/sk](https://support.huaweicloud.com/devg-apisign/api-sign-provide-aksk.html)。      |
| secret_key          | 指定连接的访问密钥。                           | str \| None | None         | -                                                                                                |
| security_token      | 指定连接的安全令牌（仅在上述访问密钥ID，访问密钥是临时的情况下需要）。 | str \| None | None         | -                                                                                                |
| logging_level       | 日志级别。                                | int         | logging.INFO | -                                                                                                |
| use_single_cn_mode  | 表示是否开启单CN模式。                         | bool        | False        | -                                                                                                |
| verify              | 指定连接的认证。                             | bool        | False        | -                                                                                                |
| default_database    | 指定连接的数据库名称。                          | str \| None | None         | -                                                                                                |
   
