帮你快速理解、总结文档立即下载

特征工程 SDK

最近更新时间:2026-09-11 18:24:34
我的收藏
本文介绍 DataBuddy 特征工程 SDK(wedata3-feature-engineering)的完整 API 用法,覆盖客户端初始化、特征数据库管理、特征表的创建、写入、读取、元数据维护、删除、离线特征消费(训练集构建、模型记录、批量推理)以及在线特征表操作。

前提条件

已开通 DataBuddy 服务并完成空间初始化。
当前账号在目标 Catalog / Schema 上拥有相应的数据读写权限。
已创建并启用一个可用的计算资源(创建方法详见 创建计算资源)。
运行特征工程代码的内核环境 Python 版本 ≥ 3.10
已在 Notebook / Python 内核中安装特征工程 SDK(要求 0.2.3 及以上 ):
%pip install "wedata3-feature-engineering[mlflow3]>=0.2.3"
注意
本文示例基于 0.2.3+ 版本验证。SDK 依赖 mlflow >= 3.10.0, < 3.11.0,若 import wedata 时提示 mlflow 版本不满足,请确认安装的是 [mlflow3] extra(即 wedata3-feature-engineering[mlflow3]),且不要在同一 Notebook 内混装 mlflow 2.x 与 3.x。
提示
在 DataBuddy Notebook 内核中运行时,鉴权所需环境变量会被自动注入,无需手动配置;若在本地 IDE 调试,则需自行 export 环境变量,否则初始化 FeatureEngineeringClient(...) 时会抛 EnvironmentError / KeyError

初始化客户端

在代码单元中导入并初始化特征工程客户端。DataBuddy Notebook 内核已预置 spark 会话,直接传入即可;本地调试时需自行创建 SparkSession 并传入。
%pip install "wedata3-feature-engineering[mlflow3]>=0.2.3"
%pip list | grep wedata3-feature-engineering
from wedata.feature_engineering.client import FeatureEngineeringClient
from wedata.common.constants.engine_types import EngineTypes

# DataBuddy Notebook 内核已预置 spark 会话;本地调试时需自行创建并传入
fe = FeatureEngineeringClient(spark)

特征数据库管理

特征表归属于某个 Schema(特征数据库)。若目标 Schema 尚未创建,可先通过 SDK 幂等准备;若已规划好 Schema,可跳过本节直接建表。
# 幂等创建特征数据库(已存在则跳过);支持单段名或二段式 catalog.schema
fe.create_database("<schema_name>", catalog_name="<catalog_name>", comment="<数据库描述>")

# 列出指定 Catalog 下的全部数据库
fe.list_databases(catalog_name="<catalog_name>")

# 判断数据库是否存在(任何内部异常都会被吞掉并返回 False)
fe.database_exists("<schema_name>", catalog_name="<catalog_name>")

# 删除数据库,默认非级联以避免误删;级联删除请慎用
fe.drop_database("<schema_name>", catalog_name="<catalog_name>")
接口
作用
关键参数
create_database
幂等创建特征数据库(CREATE DATABASE IF NOT EXISTS
database_name(必填,支持二段式 catalog.schema)、catalog_namecommentlocation
drop_database
删除特征数据库
database_namecatalog_namecascade(默认 False,是否级联删表)、if_exists(默认 True
list_databases
列出指定 Catalog 下的全部数据库
catalog_name(不传则为当前 Catalog)
database_exists
幂等检测数据库是否存在
database_namecatalog_name
注意
drop_database 在数据库非空且 cascade=False 时会由底层抛错;设置 cascade=True 会级联删除其下所有表,生产环境请谨慎使用。

创建特征表

调用 create_table 创建特征表。表结构可由传入的 df 自动推断,也可显式传入 schemaengine_type 为必填项,用于指定底层表引擎:

from wedata.common.constants.engine_types import EngineTypes

# 方式一:传入 df,自动推断 schema 并写入首批数据
fe.create_table(

name="<catalog>.<schema>.<table_name>", # 特征表全限定名
primary_keys=["<主键列表>"], # 单键传字符串,复合主键传列表
timestamp_key=["<时间戳列名>"], # 时间戳键列名(单数)
df=<Spark DataFrame>, # 传入 df 可自动推断 schema 并写入首批数据
engine_type=EngineTypes.ICEBERG_ENGINE, # 必填:ICEBERG_ENGINE 或 HIVE_ENGINE
description=["<表描述>"], # 可选
)

# 方式二:不传 df,显式提供 schema 建空表
fe.create_table(
name="<catalog>.<schema>.<table_name>",
primary_keys=["<主键列名>"],
timestamp_key="<时间戳列名>",
schema=<PySpark StructType>, # df为空时必填
engine_type=EngineTypes.ICEBERG_ENGINE,
)
提示
1. primary_keys 类型为 Union[str, List[str]],单主键可直接传字符串,复合主键传列表。
2. schemadf 二选一:当 df 已提供时 schema 可省略(由 df 推断);仅当 df=Noneschema 必填。
3. 其他可选参数:catalog_name / database_name(在 name 未使用全限定名时指定)、tags(表级标签字典)、partition_columns(分区列)。
提示
引擎选择(engine_type):EngineTypes 提供 ICEBERG_ENGINE(Iceberg 表,推荐)与 HIVE_ENGINE(Hive 表)两种取值。优先选用 Iceberg:它支持 schema evolution 与 time travel,在按时间点回溯特征查询时性能更优。
注意
写入前的数据类型治理 :特征工程 SDK 不识别 decimal(p, s) 类型——它会导致记录模型时无法推断模型签名(signature),进而引发在线、离线推理的类型不匹配。建议在写入特征表之前,把所有 decimal 列统一 cast("double"),并将该处理沉淀为可复用的工具函数。时间戳列应保留为时间类型,不要转为字符串,否则无法用作时间戳键。
执行成功后,新建的特征表将自动出现在特征管理列表中。
提示
主键与时间戳的选择建议 :主键用于唯一定位一条特征记录;时间戳键用于实现按时间点回溯特征值。建议将业务实体的唯一标识作为主键、特征生成时间作为时间戳键。

写入特征表

如需追加写入更多特征数据,调用 write_table
fe.write_table(
name="<catalog>.<schema>.<table_name>", # 目标特征表全限定名
df=<Spark DataFrame>, # 待写入的特征数据
mode="append", # 写入模式:append(默认)/ overwrite
)
流式写入时需额外提供 checkpoint 路径:
fe.write_table(
name="<catalog>.<schema>.<table_name>",
df=<Streaming DataFrame>,
mode="append",
checkpoint_location="<checkpoint 路径>", # 流式写入必填
trigger={"processingTime": "10 seconds"}, # 可选,流式触发器配置
)
写入模式说明
append :追加写入,新数据按主键合并入表(默认模式)。
overwrite :覆盖整张表的全部数据,慎用于生产场景。
提示
当前 SDK(0.2.4)write_table 不支持 merge 模式。增量写入请使用默认的 append

获取与读取特征表

调用 get_table 可以编程方式拿到特征表的完整元数据;调用 read_table 读取特征表数据(返回 Spark DataFrame):
# 获取元数据
table_info = fe.get_table(name="<catalog_name>.<schema_name>.<table_name>")
print(table_info.primary_keys)
print(table_info.timestamp_keys)
print(table_info.tags)

# 读取数据
df = fe.read_table(name="<catalog_name>.<schema_name>.<table_name>")
df.show(5)
提示
read_table 读取的是离线特征表中的全量数据。在线特征表(PostgreSQL)中的数据用于在线推理服务在收到请求时自动查找特征,无需调用方在 SDK 中显式读取;如需核对在线表数据,可在数据目录中查看对应的在线特征表。

维护特征表标签

特征表标签可用于版本号、所属业务线、特征类别等业务分类,可通过 SDK 管理:
# 设置或更新一个标签
fe.set_feature_table_tag(
name="<catalog_name>.<schema_name>.<table_name>",
key="<tag_key>", # 如 "business_line"、"version" 等
value="<tag_value>", # 如 "growth"、"v1.2.0" 等
)

# 删除一个标签
fe.delete_feature_table_tag(
name="<catalog_name>.<schema_name>.<table_name>",
key="<tag_key>",
)
设置或删除完成后,标签会同步显示在 Catalog 详情页与特征管理列表的 标签 列。推荐为每张特征表至少维护以下标签,便于检索与治理:
标签键
取值示例
用途
owner
ml-team
责任人 / 责任团队
purpose
test / prod
用途(实验 / 生产)
domain
user / order / product
业务域
sla
daily / hourly
数据更新频率
注意
primary_keystimestamp_keys 等是 SDK 的保留字段,不能 作为自定义标签的 key 使用。
提示
版本管理建议 :DataBuddy 当前未提供独立的特征表版本号对象,建议使用 version 标签(如 v1.0.0v1.1.0)配合 Catalog 表本身的数据变更历史来标识业务版本演进。如需在不同版本之间快速切换,可采用按版本建独立特征表、在训练代码中显式选择的方式。

删除特征表

当一张特征表不再被任何模型与下游使用时,可通过 SDK 删除:
fe.drop_table(name="<catalog_name>.<schema_name>.<table_name>")
警告
删除特征表会同时删除底层数据文件,该操作不可恢复。删除前请确认:
没有训练任务、推理任务、Workflow 仍在依赖该表。
没有已发布的在线特征表以该表为来源(需先 drop_online_table)。
没有模型工件中的 feature_spec.yaml 仍在引用该表。

构建训练数据集

以一组主键(如实体 ID、事件时间戳)作为 DataFrame,调用 create_training_set 拼接多张特征表生成训练数据:
from wedata.feature_engineering.client import FeatureEngineeringClient
from wedata.common.entities.feature_lookup import FeatureLookup

fe = FeatureEngineeringClient(spark)

# 1. 主键 DataFrame:包含训练标签 (label) + 主键 + 事件时间戳
labels_df = spark.table("<catalog_name>.<schema_name>.<label_table_name>")

# 2. 定义需要拼接的特征表与字段(强烈推荐使用三段式全限定名,避免依赖默认 catalog)
feature_lookups = [
FeatureLookup(
table_name="<catalog_name>.<schema_name>.<feature_table_name_1>",
feature_names=["<feature_column_1>", "<feature_column_2>"],
lookup_key=["<primary_key>"],
timestamp_lookup_key="<timestamp_key>",
),
FeatureLookup(
table_name="<catalog_name>.<schema_name>.<feature_table_name_2>",
feature_names=["<feature_column_3>"],
lookup_key=["<primary_key>"],
timestamp_lookup_key="<timestamp_key>",
),
]

# 3. 创建训练数据集
training_set = fe.create_training_set(
df=labels_df,
feature_lookups=feature_lookups,
label="<label_column>",
exclude_columns=[],
)

training_df = training_set.load_df()
提示
timestamp_lookup_key 用于按时间点回溯特征值(point-in-time correctness),即对每条样本拼接其事件时间点之前最近一次的特征值,避免特征穿越。如需限制回溯的时间范围,可在 FeatureLookup 中配合 lookback_windowdatetime.timedelta)使用,仅查找该时间窗内的特征值。
注意
数据类型治理 :写入与拼接前务必将 decimal(p,s) 转为 double。SDK 不识别 decimal(p,s) 类型,否则可能导致类型解析失败或在线、离线值不一致。

回溯窗口与多表 / On-Demand 特征组合

1. 回溯窗口lookback_window 必须与 timestamp_lookup_key 同时使用,且取值为非负datetime.timedelta0 表示精确匹配,不传表示不限制),否则会抛 ValueError
2. FeatureLookup + FeatureFunction 组合 :可同时声明多张特征表查找,并通过 FeatureFunction 引入按需计算(On-Demand)特征:
import datetime
from wedata.common.entities.feature_lookup import FeatureLookup
from wedata.common.entities.feature_function import FeatureFunction

feature_lookups = [
FeatureLookup(
table_name="<catalog_name>.<schema_name>.<feature_table_a>",
lookup_key=["<primary_key_a>"],
feature_names=["<feature_col_1>", "<feature_col_2>"],
rename_outputs={"<feature_col_1>": "<renamed_col_1>"}, # 输出列重命名,避免同名冲突
),
FeatureLookup(
table_name="<catalog_name>.<schema_name>.<feature_table_b>",
lookup_key=["<primary_key_b>"],
timestamp_lookup_key="<timestamp_key>",
lookback_window=datetime.timedelta(days=30), # 仅取近 30 天内的特征值
),
FeatureFunction(
# 按需计算特征(On-Demand UDF)
udf_name="<catalog_name>.<schema_name>.<udf_name>",
input_bindings={"<udf_input_param>": "<renamed_col_1>"},
output_name="<udf_output_col>",
),
]

训练并记录模型

使用拼接好的训练 DataFrame 训练模型,并通过 log_model 把模型连同特征来源信息一起记录到 MLflow:
import mlflow
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.compose import ColumnTransformer
from sklearn.ensemble import GradientBoostingClassifier

with mlflow.start_run() as run:
pdf = training_df.toPandas()
X = pdf.drop(columns=["<label_column>"])
y = pdf["<label_column>"]

# 预处理(OHE / Scaler 等)必须封装进 Pipeline,禁止在 Pipeline 外部用pd.get_dummies 等手工预处理,
# 否则在线推理时无法复现训练期的特征变换,导致线上线下不一致。
preprocessor = ColumnTransformer(
transformers=[
("cat", OneHotEncoder(handle_unknown="ignore"), ["<categorical_feature>"]),
("num", StandardScaler(), ["<numeric_feature_1>", "<numeric_feature_2>"]),
]
)
model = Pipeline(steps=[
("preprocessor", preprocessor),
("clf", GradientBoostingClassifier()),
])
model.fit(X, y)

fe.log_model(
model=model,
artifact_path="<model_artifact_path>",
flavor=mlflow.sklearn,
training_set=training_set,
registered_model_name="<catalog_name>.<schema_name>.<model_name>",
infer_input_example=True,
# 自动根据训练数据生成 input_example 与模型签名
)
注意
关于 log_model 需遵守:
1. 必须用 fe.log_model,不能用 mlflow.sklearn.log_model:只有前者会把 FeatureSpec 打包进 MLmodel,后者会导致 score_batch 找不到特征来源。
2. 必须传 training_set:模型签名与 input_example 由 SDK 根据 training_set.feature_spec 自动推断,对齐的是特征表中的原始列。
3. infer_input_example=True 自动从训练数据生成 input_example 与签名,是部署在线推理服务的前置条件,务必开启;不要再手动 infer_signature(...) 或手动传 input_example=...,否则会与 feature_spec 的原始列错位、污染契约。
4. 所有预处理(OneHotEncoder、StandardScaler、自定义函数等)必须封装进 sklearn.Pipeline,传入的 model 是整条 Pipeline。不能在 Pipeline 外部用 pd.get_dummies / 手动 StandardScaler.fit_transform 后再 model.fit(...)——外部预处理步骤不会被序列化进 MLmodel,推理时 SDK 从特征表 lookup 出来的是原始 string 列,喂给只认 OHE 后列名的裸模型,轻则报 Feature names unseen at fit time,重则所有样本静默输出训练集均值。
5. registered_model_name 建议使用三段式 catalog.schema.model_name,便于 Model Registry 治理。
fe.log_model 会在模型工件中写入一份 feature_spec.yaml,记录该模型在推理时所依赖的特征表、字段、主键与时间戳关系。这份文件将在后续的 score_batch 与在线推理中被自动读取。

离线批量推理

完成训练后,调用 score_batch 进行离线批量推理。此时只需提供主键 DataFrame,特征列由 SDK 根据模型工件中的 feature_spec.yaml 自动从特征表中查找并补齐:
# 主键 DataFrame:仅包含主键 + 事件时间戳,不需要特征列
# 注意:时间戳列需与特征表 schema 类型一致(如需 cast 为 timestamp)
keys_df = spark.table("<catalog_name>.<schema_name>.<scoring_table_name>")

result_df = fe.score_batch(
model_uri="models:/<catalog_name>.<schema_name>.<model_name>/<version>", # 版本号对齐训练产出的最新版本
df=keys_df,
result_type="double", # 可选,预测结果列的数据类型,默认 "double"
timestamp_key="<timestamp_key>", # 训练含 timestamp_lookup_key 时强烈建议显式指定,保证 point-in-time 一致性
)

result_df.show()
注意
score_batch 的输入 df 有以下硬性约束:
1. 不能包含 prediction 列,也不能是流式 DataFrame;
2. 必须包含 feature_spec.yaml 中声明的所有 lookup_key
3. 训练时声明了 timestamp_lookup_key 的场景下,强烈建议在 df 中显式带上同名时间戳列以保证 point-in-time 一致性。若不带,SDK 会自动注入 current_timestamp() 取「当前最新可见」的特征,等同于「用今天的特征预测历史样本」,语义不严谨。
执行流程
1. SDK 根据 model_uri 加载模型与 feature_spec.yaml
2. 根据模型签名识别需要的特征列;对未在 keys_df 中提供的列,自动通过 Feature Lookup 从特征表中查找。
3. 拼装完整的输入 DataFrame 进入模型推理,输出预测结果。

在线特征表操作

发布在线特征表

除页面操作外,也可在 Notebook 中通过 SDK 的 publish_table 一键发布:
fe.publish_table(
catalog_name="<offline_catalog_name>", # 离线特征表所在 Catalog
schema_name="<offline_schema_name>", # 离线特征表所在 Schema
table_name="<offline_table_name>", # 离线特征表名
online_db_name="<online_schema_name>", # 在线表所在的库
online_table_name="<online_table_name>", # 在线表名
# trigger 不传则默认每天 0 点(Asia/Shanghai)全量同步一次
)
注意
1. 调用 publish_table 要求工作空间下至少有:① 一个运行中的数据计算资源组;② 一个 PostgreSQL 类型连接。否则会抛 RuntimeError(错误信息中带 request_id 便于定位)。
2. 如需更精细的调度(如每小时整点),可通过 trigger 参数自定义同步周期。
补充说明(特定版本、环境) :部分 SDK 版本或工作空间配置下,服务端会要求显式指定在线表所属的 Catalog(对应服务端 TargetPath.CatalogName)。若调用时报错 TargetPath.CatalogName 不能为空,可在上述参数基础上补传 online_catalog_name="<online_catalog_name>"(具体名称参考所在工作空间已配置的在线 Catalog)。

删除在线特征表

当在线特征表不再需要时,可通过 SDK 删除:
fe.drop_online_table(name="<catalog_name>.<schema_name>.<table_name>")
注意
删除在线特征表会同时删除 PostgreSQL 中的在线表数据及对应的同步工作流,该操作不可恢复。删除前请确认没有在线推理服务正在依赖该在线表,否则服务会在下次请求时报特征查找失败。离线特征表不受影响。

命名与组织规范

统一的命名与组织规范有助于团队协作、特征复用与权限治理。建议遵循以下约定:
层级
命名规则
示例
Catalog
<业务域>
showcase / risk / recommend
Schema(特征数据库)
<团队>_<场景>_db
growth_database / risk_churn_db
特征表
<实体>_<用途>_<版本>
orders_purchase_delivery_feature_v2
此外建议:
引用特征表统一使用三段式全限定名 catalog.schema.table,避免依赖默认 Catalog 带来的副作用,迁移到不同工作空间时也无需改代码。
标签列建议用动词短语命名(如 order_purchase_delivery_time),避免与特征列重名。

参数说明

create_table 关键参数

参数
说明
是否必填
默认值
name
特征表的全限定名,格式 catalog.schema.table
primary_keys
主键列名,类型 Union[str, List[str]],单键传字符串、复合主键传列表
timestamp_key
时间戳键列名(单数)
None
engine_type
底层表引擎,EngineTypes.ICEBERG_ENGINEEngineTypes.HIVE_ENGINE
df
初始数据 Spark DataFrame,传入后可自动推断 schema 并写入首批数据
None
schema
表结构(PySpark StructType)。当 df=None 时必填
None
catalog_name
Catalog 名称(name 未使用全限定名时指定)
None
database_name
Schema / 数据库名称(name 未使用全限定名时指定)
None
partition_columns
分区列名列表
None
tags
表级标签字典
None
description
表描述,会显示在特征管理列表与 Catalog 详情页

write_table 关键参数

参数
说明
是否必填
默认值
name
目标特征表的全限定名
df
写入数据,Spark DataFrame(支持批 / 流式 DataFrame)
mode
写入模式,append / overwrite
append
checkpoint_location
流式写入时的 checkpoint 路径
流式写入必填
None
trigger
流式写入触发器配置
None

get_table / read_table 参数

参数
说明
是否必填
默认值
name
特征表名(可为全限定名,或配合 catalog_name / database_name 使用)
database_name
Schema / 数据库名称
None
catalog_name
Catalog 名称
None
get_tablecreate_table 返回的均为 FeatureTable 实体(wedata.common.entities.feature_table.FeatureTable),由接口构造返回,不应由调用方直接实例化 。字段包括:nametable_iddescriptionprimary_keyspartition_columnsfeaturestimestamp_keyscreation_timestamponline_storestags
注意
tags 字段为惰性加载,未加载时直接访问会抛 ValueError。建议先确认表已正确返回后再读取标签。

set_feature_table_tag / delete_feature_table_tag 参数

参数
说明
是否必填
默认值
name
特征表名(可为全限定名,或配合 catalog_name / database_name 使用)
database_name
Schema / 数据库名称
None
catalog_name
Catalog 名称
None
key
标签键
""
value
标签值(仅 set_feature_table_tag
""

FeatureLookup 关键参数

参数
说明
是否必填
默认值
table_name
特征表名,强烈推荐使用三段式全限定名 catalog.schema.table
lookup_key
用于匹配的主键列名(可复合主键)
feature_names
需要查找的特征列名列表;不传则查找全部非主键列
全部非主键列
timestamp_lookup_key
用于按时间点回溯的时间戳列名
None
lookback_window
时间点回溯的时间窗,类型 Optional[datetime.timedelta],配合 timestamp_lookup_key 使用
None
rename_outputs
输出字段重命名映射,避免多个特征表同名列冲突
None
is_online
是否为在线查找场景
None
online_config
在线查找的相关配置
None
提示
FeatureLookup 共 9 个参数,其中包含 2 个已弃用参数(feature_nameoutput_name,请改用 feature_namesrename_outputs)。

create_training_set 关键参数

参数
说明
是否必填
默认值
df
主键 DataFrame,包含主键、时间戳、训练标签
feature_lookups
FeatureLookup 列表(与 feature_spec 互斥)
feature_spec
已有的特征配置(与 feature_lookups 互斥,二者择一)
label
训练标签列名
exclude_columns
不参与训练的列名列表
[]
database_name
Schema / 数据库名称
None
catalog_name
Catalog 名称
None

log_model 关键参数

参数
类型
说明
是否必填
默认值
model
Any
训练好的模型对象(必须使用 training_set.load_df() 返回的 DataFrame 训练)
artifact_path
str
MLflow artifact 路径(如 "model"
flavor
ModuleType
MLflow flavor 模块,如 mlflow.sklearnmlflow.xgboost
training_set
Optional[TrainingSet]
训练集对象;不传则不携带 FeatureSpec(推理时不会自动 lookup)
None
registered_model_name
Optional[str]
模型注册名;建议用三段式 catalog.schema.model_name
None
model_registry_uri
Optional[str]
Model Registry URI
None
await_registration_for
int
等待注册完成的秒数
300
infer_input_example
bool
是否自动从 training_set.load_df() 生成 input_example
False
**kwargs
透传给对应 flavor 的 log_model
注意
模型 signatureinput_exampletraining_set.feature_spec 自动生成,无法通过参数覆盖 ,以保证 score_batch 时 lookup 列契约一致。请勿再手动 infer_signature(...) 或手动传 input_example=...

score_batch 关键参数

参数
说明
是否必填
默认值
model_uri
MLflow 模型 URI,如 runs:/<run_id>/modelmodels:/<name>/<version>models:/<name>/<stage>
df
主键 DataFrame,须包含 feature_spec.yaml 中所有 lookup_key;不能含 prediction 列,不能是流式 DataFrame
result_type
预测结果列的数据类型,取值同 mlflow.pyfunc.spark_udfresult_type
"double"
timestamp_key
推理 DataFrame 中的时间戳列名;不传时若模型训练含 timestamp_lookup_key,SDK 会注入 current_timestamp() 取最新特征
None

publish_table 参数

参数
说明
是否必填
默认值
catalog_name
离线特征表所在 Catalog
schema_name
离线特征表所在 Schema / 数据库
table_name
离线特征表名
online_db_name
在线表所在的库
online_table_name
在线表名
trigger
同步调度配置;不传则默认每天 0 点(Asia/Shanghai)全量同步一次
None
提示
部分 SDK 版本、工作空间配置下,服务端会额外要求 online_catalog_name(在线表所属的 Catalog,对应服务端 TargetPath.CatalogName)。仅在报错 TargetPath.CatalogName 不能为空 时按需补传,取值参考所在工作空间已配置的在线 Catalog。
完整的调度参数详见 调度与触发器。

drop_table / drop_online_table 参数

参数
说明
是否必填
默认值
name
特征表名(可为全限定名,或配合 catalog_name / database_name 使用)
database_name
Schema / 数据库名称
None
catalog_name
Catalog 名称
None

相关文档

部署在线推理服务