大数据智能体工作台 DataBuddy 特征工程 SDK

DataBuddy 特征工程 SDK(wedata3-feature-engineering)的完整 API 用法,覆盖客户端初始化、特征数据库管理、特征表的创建、写入、读取、元数据维护、删除、离线特征消费(训练集构建、模型记录、批量推理)以及在线特征表操作。

相关产品
大数据智能体工作台 DataBuddy 产品页,含版本规格、价格与购买入口。

一、前提条件

·已开通 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 FeatureEngineeringClientfrom wedata.common.constants.engine_types import EngineTypes# DataBuddy Notebook 内核已预置 spark 会话;本地调试时需自行创建并传入fe = FeatureEngineeringClient(spark)

三、特征数据库管理

特征表归属于某个 Schema(特征数据库)。若目标 Schema 尚未创建,可先通过 SDK 幂等准备;若已规划好 Schema,可跳过本节直接建表。

# 幂等创建特征数据库(已存在则跳过);支持单段名或二段式 catalog.schemafe.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_name、comment、location
drop_database 删除特征数据库 database_name、catalog_name、cascade(默认 False,是否级联删表)、if_exists(默认 True)
list_databases 列出指定 Catalog 下的全部数据库 catalog_name(不传则为当前 Catalog)
database_exists 幂等检测数据库是否存在 database_name、catalog_name

注意:drop_database 在数据库非空且 cascade=False 时会由底层抛错;设置 cascade=True 会级联删除其下所有表,生产环境请谨慎使用。

四、创建特征表

调用 create_table 创建特征表。表结构可由传入的 df 自动推断,也可显式传入 schema;engine_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. schema 与 df 二选一:当 df 已提供时 schema 可省略(由 df 推断);仅当 df=None 时 schema 必填。

注意: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_keys、timestamp_keys 等是 SDK 的保留字段,不能 作为自定义标签的 key 使用。

注意:版本管理建议 :DataBuddy 当前未提供独立的特征表版本号对象,建议使用 version 标签(如 v1.0.0、v1.1.0)配合 Catalog 表本身的数据变更历史来标识业务版本演进。如需在不同版本之间快速切换,可采用按版本建独立特征表、在训练代码中显式选择的方式。

八、删除特征表

当一张特征表不再被任何模型与下游使用时,可通过 SDK 删除:

fe.drop_table(name="<catalog_name>.<schema_name>.<table_name>")

注意:警告

注意:删除特征表会同时删除底层数据文件,该操作不可恢复。删除前请确认:

九、构建训练数据集

以一组主键(如实体 ID、事件时间戳)作为 DataFrame,调用 create_training_set 拼接多张特征表生成训练数据:

from wedata.feature_engineering.client import FeatureEngineeringClientfrom wedata.common.entities.feature_lookup import FeatureLookupfe = 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_window(datetime.timedelta)使用,仅查找该时间窗内的特征值。

注意:数据类型治理 :写入与拼接前务必将 decimal(p,s) 转为 double。SDK 不识别 decimal(p,s) 类型,否则可能导致类型解析失败或在线、离线值不一致。

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

1. 回溯窗口 :lookback_window 必须与 timestamp_lookup_key 同时使用,且取值为非负 的 datetime.timedelta(0 表示精确匹配,不传表示不限制),否则会抛 ValueError。

2. 多 FeatureLookup + FeatureFunction 组合 :可同时声明多张特征表查找,并通过 FeatureFunction 引入按需计算(On-Demand)特征:

import datetimefrom wedata.common.entities.feature_lookup import FeatureLookupfrom wedata.common.entities.feature_function import FeatureFunctionfeature_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 mlflowfrom sklearn.pipeline import Pipelinefrom sklearn.preprocessing import OneHotEncoder, StandardScalerfrom sklearn.compose import ColumnTransformerfrom sklearn.ensemble import GradientBoostingClassifierwith 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_ENGINE 或 EngineTypes.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

20、get_table / read_table 参数

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

get_table 与 create_table 返回的均为 FeatureTable 实体(wedata.common.entities.feature_table.FeatureTable),由接口构造返回,不应由调用方直接实例化 。字段包括:name、table_id、description、primary_keys、partition_columns、features、timestamp_keys、creation_timestamp、online_stores、tags。

注意:tags 字段为惰性加载,未加载时直接访问会抛 ValueError。建议先确认表已正确返回后再读取标签。

21、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) 是 ""

22、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_name、output_name,请改用 feature_names、rename_outputs)。

23、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

24、log_model 关键参数

参数 类型 说明 是否必填 默认值
model Any 训练好的模型对象(必须使用 training_set.load_df() 返回的 DataFrame 训练) 是 —
artifact_path str MLflow artifact 路径(如 "model") 是 —
flavor ModuleType MLflow flavor 模块,如 mlflow.sklearn、mlflow.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 否 —

注意:模型 signature 与 input_example 由 training_set.feature_spec 自动生成,无法通过参数覆盖 ,以保证 score_batch 时 lookup 列契约一致。请勿再手动 infer_signature(…) 或手动传 input_example=…。

25、score_batch 关键参数

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

26、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。

完整的调度参数详见 调度与触发器。

27、drop_table / drop_online_table 参数

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

28、相关文档

·界面操作

·最佳实践与异常排查

·模型列表

·部署在线推理服务

·全局数据源配置

·创建计算资源

赞 (0)
上一篇 4天前
下一篇 4天前