更新时间:2025-12-10 GMT+08:00
分享

快速开始

安装FabricData SDK

  • 在线安装:

    通过华为源使用pip进行安装:

    pip install huawei_fabric_data --trusted-host pypi.cloudartifact.dgg.dragon.tools.huawei.com -i https://pypi.cloudartifact.dgg.dragon.tools.huawei.com/artifactory/cbu-pypi-public/simple/ 
  • 离线安装:

    下载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()

表1 connect()接口参数信息

参数

含义

类型

默认值

备注

fabric_endpoint

指定连接的端点。

str | None

None

更多信息,请参见地区和终端节点

fabric_endpoint_id

指定连接的端点ID。

str | None

None

更多信息,请参见查询endpoint_id

fabric_workspace_id

指定连接的工作空间ID。

str | None

None

更多信息,请参见获取工作空间ID

lf_instance_id

指定连接的LakeFormation服务实例ID。

str | None

None

-

lf_catalog_name

指定连接的目录。

str | None

None

-

access_key

指定连接的访问密钥ID。

str | None

None

更多信息,请参见获取ak/sk

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

-

相关文档