Skip to content

Commit

Permalink
docs: refactor project name to featinsight (#3710)
Browse files Browse the repository at this point in the history
* Add faq and use cases for feature platform

* Refine faq and use case docs

* Remove deprecated file

* Rename feature-platform to FeatInsight

* Fix index

* Fix index
  • Loading branch information
tobegit3hub authored Jan 18, 2024
1 parent dfea73f commit dfd860e
Show file tree
Hide file tree
Showing 102 changed files with 344 additions and 73 deletions.
38 changes: 38 additions & 0 deletions docs/zh/app_ecosystem/feat_insight/faq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# 常见问题

## FeatInsight 和主流 Feature Store 有什么区别?

主流 Feature Store 包括 Feast、Tecton、Feathr 等提供了特征管理和计算能力,在线存储主要使用 Redis 等预聚合 Key-value 存储。FeatInsight 提供的是实时计算特征的能力,特征抽取方案无论怎样修改都可以直接一键上线而不需要重新上线和同步在线数据。主要的功能对比如下。

| 特征存储系统 | Feast | Tecton | Feathr | FeatInsight |
| ----------------- | ------------------ | ----------------- | ----------------- | ----------------- |
| 数据源支持 | 多种数据源 | 多种数据源 | 多种数据源 | 多种数据源 |
| 可扩展性 ||| 中到高 ||
| 实时特征服务 | 支持 | 支持 | 支持 | 支持 |
| 批处理特征服务 | 支持 | 支持 | 支持 | 支持 |
| 特征转换 | 支持基本转换 | 支持复杂转换和 SQL | 支持复杂转换 | 支持复杂转换和 SQL |
| 数据存储 | 支持多种存储选项 | 主要支持云存储 | 支持多种存储选项 | 内置高性能时序数据库,支持多种存储选项 |
| 社区和支持 | 开源社区 | 商业支持 | 开源社区 | 开源社区 |
| 实时特征计算 | 不支持 | 不支持 | 不支持 | 支持 |

## 部署 FeatInsight 是否需要 OpenMLDB ?

需要,因为 FeatInsight 的元数据存储以及特征计算依赖 OpenMLDB 集群,因此部署 FeatInsight 需要提前部署 OpenMLDB 集群,也可以使用整合两者的 [Docker 镜像](./install/docker.md)一键部署。

使用 FeatInsight 后用户可以不依赖 OpenMLDB CLI 或 SDK 来实现特征的开发和上线,通过 Web 界面就可以完成特征工程的所有上线需求。

## 如何基于 FeatInsight 实现 MLOps 工作流?

使用 FeatInsight 可以在 Web 前端完成数据库、数据表的创建,然后提交在线数据和离线数据的导入工作。使用 OpenMLDB SQL 语法进行数据的探索以及特征的创建,然后就可以离线特征的导出以及在线特征的一键上线,从 MLOps 对离线到在线流程不需要任何额外的开发工作,具体流程可参考[快速入门](./quickstart.md)

## FeatInsight 的生态集成支持如何?

FeatInsight 依托于 OpenMLDB 生态,支持与 OpenMLDB 生态中的其他组件进行集成。

例如与 OpenMLDB 生态中的数据集成组件进行集成,支持 [Kafka](../../integration/online_datasources/kafka_connector_demo.md)[Pulsar](../../integration/online_datasources/pulsar_connector_demo.md)[RocketMQ](../../integration/online_datasources/rocketmq_connector.md)[Hive](../../integration/offline_data_sources/hive.md)[Amazon S3](../../integration/offline_data_sources/s3.md),调度系统支持 [Airflow](../../integration/deploy_integration/airflow_provider_demo.md)[DolphinScheduler](../../integration/deploy_integration/dolphinscheduler_task_demo.md)[Byzer](../../integration/deploy_integration/OpenMLDB_Byzer_taxi.md) 等,对于 Spark Connector 支持的 HDFS、Iceberg 等和云计算相关的 Kubernetes、阿里云 MaxCompute 等也有一定程度的支持。

## FeatInsight 有什么业务价值和技术含量?

相比于使用 HDFS 存储离线数据、Redis 存储在线数据的简易版 Feature Store,FeatInsight 的价值在于使用了 OpenMLDB SQL 这种在线离线一致性的特征抽取语言。对于特征开发的科学家,只需要编写 SQL 逻辑就可以完成特征定义,在离线场景下这个 SQL 会被翻译成分布式 Spark 应用来执行,在在线场景下同样的 SQL 会被翻译成在线时序数据库的查询语句来执行,实现特征的在线和离线一致性。

目前 SQL 编译器、在线存储引擎、离线计算引擎都是基于 C++ 和 Scala 等编程语言实现的,对于非技术背景的科学家来说,使用 SQL 语言来定义特征开发流程,可以降低学习成本,提高开发效率。所有代码都是开源可用,OpenMLDB 项目地址 https://github.com/4paradigm/openmldb ,FeatInsight 项目地址 https://github.com/4paradigm/FeatInsight
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

## 介绍

OpenMLDB 特征平台在前端支持数据导入相关功能,功能如下:
FeatInsight 在前端支持数据导入相关功能,功能如下:

* 数据库管理
* 创建数据库
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## 介绍

OpenMLDB 特征平台提供了对于数据表,特征,任务以及服务的管理功能,用户可以在管理中心查看和管理相关资源。
FeatInsight 提供了对于数据表,特征,任务以及服务的管理功能,用户可以在管理中心查看和管理相关资源。

目前支持查看和管理的资源如下:

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
=============================
OpenMLDB 特征平台
FeatInsight
=============================

.. toctree::
Expand All @@ -9,8 +9,5 @@ OpenMLDB 特征平台
quickstart
install/index
functions/index





use_cases/index
faq
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# 特征平台配置文件
# FeatInsight 配置文件

## 介绍

OpenMLDB 特征平台基于 Spring Boot 开发,使用 `application.yml` 规范作为配置文件。
FeatInsight 基于 Spring Boot 开发,使用 `application.yml` 规范作为配置文件。

## 配置示例

Expand Down
46 changes: 46 additions & 0 deletions docs/zh/app_ecosystem/feat_insight/install/docker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Docker

## 介绍

使用官方构建好的 Docker 镜像, 可以快速部署 OpenMLDB 特征服务.

## 内置 OpenMLDB 镜像

使用内置 OpenMLDB 的镜像,可以一键启动 OpenMLDB 集群和 OpenMLDB 特征服务,无需额外部署即可使用特征服务。

```
docker run -d -p 8888:8888 registry.cn-shenzhen.aliyuncs.com/tobe43/portable-openmldb
```

启动 OpenMLDB 和 FeatInsight 需要约一分钟,可通过 `docker logs` 查看日志,启动成功后在本地浏览器打开 `http://127.0.0.1:8888` 即可访问 FeatInsight 服务。


## 不包含 OpenMLDB 镜像

使用不包含 OpenMLDB 的镜像,需要提前部署 OpenMLDB 集群,然后启动 OpenMLDB 特征服务容器,部署步骤较繁琐但灵活性高。

首先参考 [OpenMLDB 部署文档](../../../deploy/index.rst) 提前部署 OpenMLDB 集群。

然后参考 [FeatInsight 配置文件](./config_file.md),创建 `application.yml` 配置文件。

```
server:
port: 8888
openmldb:
zk_cluster: 127.0.0.1:2181
zk_path: /openmldb
apiserver: 127.0.0.1:9080
```

对于 Linux 操作系统可以使用下面命令启动 FeatInsight 容器.

```
docker run -d -p 8888:8888 --net=host -v `pwd`/application.yml:/app/application.yml registry.cn-shenzhen.aliyuncs.com/tobe43/featinsight
```

由于 MacOS 通过虚拟机启动 Docker 容器,使用 `--net=host` 参数无法正常工作,需要提前修改配置文件指向正确的 OpenMLDB 服务。

```
docker run -d -p 8888:8888 -v `pwd`/application.yml:/app/application.yml registry.cn-shenzhen.aliyuncs.com/tobe43/featinsight
```
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
.. toctree::
:maxdepth: 1

package
docker
package
source
config_file
upgrade
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## 介绍

使用官方预编译的安装包,只需要本地有 Java 环境就可以快速部署 OpenMLDB 特征平台
使用官方预编译的安装包,只需要本地有 Java 环境就可以快速部署 FeatInsight 服务

注意,需参考 [OpenMLDB 部署文档](../../../deploy/index.rst) 提前部署 OpenMLDB 集群。

Expand All @@ -11,12 +11,12 @@
下载 Jar 文件。

```
wget https://openmldb.ai/download/feature-platform/openmldb-feature-platform-0.1-SNAPSHOT.jar
wget https://openmldb.ai/download/featinsight/featinsight-0.1.0-SNAPSHOT.jar
```

## 配置

参考[特征平台配置文件](./config_file.md),创建 `application.yml` 配置文件。
参考 [FeatInsight 配置文件](./config_file.md),创建 `application.yml` 配置文件。

```
server:
Expand All @@ -30,9 +30,9 @@ openmldb:

## 启动

启动特征平台服务
启动 FeatInsight 服务

```
java -jar ./openmldb-feature-platform-0.1-SNAPSHOT.jar
java -jar ./featinsight-0.1.0-SNAPSHOT.jar
```

Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@

## 介绍

通过源码编译 OpenMLDB 特征平台,可以按需使用特定源码功能,本文档提供源码编译的完整流程。
通过源码编译 FeatInsight 项目,可以按需使用特定源码功能,本文档提供源码编译的完整流程。

## 下载源码

下载项目源码。

```
git clone https://github.com/4paradigm/feature-platform
git clone https://github.com/4paradigm/FeatInsight
```

## 编译源码

进入项目根目录,执行以下命令编译前端和后端代码。

```
cd ./feature-platform/frontend/
cd ./FeatInsight/frontend/
npm run build
cd ../
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## 介绍

OpenMLDB 特征平台对外提供 HTTP 接口,底层依赖 OpenMLDB 数据库存储元数据,因此可以通过多实例和 Rolling update 等方法进行版本升级。
FeatInsight 对外提供 HTTP 接口,底层依赖 OpenMLDB 数据库存储元数据,因此可以通过多实例和 Rolling update 等方法进行版本升级。

## 单实例升级步骤

Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,25 @@
# 简介

OpenMLDB 特征平台是一个先进的特征存储(Feature Store)服务,基于 [OpenMLDB](https://github.com/4paradigm/OpenMLDB) 数据库实现高效的特征管理和编排功能。
FeatInsight 是一个先进的特征存储(Feature Store)服务,基于 [OpenMLDB](https://github.com/4paradigm/OpenMLDB) 数据库实现高效的特征管理和编排功能。

特征平台提供简便易用的 UI 界面,用户可以进行机器学习特征开发的全流程,包括数据的导入、查看、编辑,特征的生成、存储、上线等功能。 针对离线场景中,用户可以选择特征生成离线样本用于后续的机器学习开发;针对在线场景中,用户可以选择特征创建特征服务,实现实时特征计算。
FeatInsight 提供简便易用的 UI 界面,用户可以进行机器学习特征开发的全流程,包括数据的导入、查看、编辑,特征的生成、存储、上线等功能。 针对离线场景中,用户可以选择特征生成离线样本用于后续的机器学习开发;针对在线场景中,用户可以选择特征创建特征服务,实现实时特征计算。

![](./images/bigscreen.png)

## 主要功能

OpenMLDB 特征平台包括以下几个主要功能
FeatInsight 包括以下几个主要功能

- [数据管理](./functions/import_data.md):用于导入和管理特征工程需要的原始数据和在线数据。
- [特征管理](./functions/manage_feature.md):用于存储原始特征数据和派生特征数据的存储系统。
- [在线场景](./functions/online_scenario.md):上线特征服务,使用在线数据提供硬实时的在线特征抽取接口。
- [离线场景](./functions/offline_scenario.md):对离线数据进行特征计算并导出样本文件,提供离线样本、任务管理功能。

- [SQL实验室](./functions/sql_playground.md):可调试和执行任意的 OpenMLDB SQL 语句,使用在线模式或离线模型完成特征计算任务。
- [预计算特征](./functions/computed_features.md):用户可以通过预计算把特征值直接存入 OpenMLDB 在线表中,然后访问在线表数据进行读写特征。

## 核心特性

OpenMLDB 特征平台的主要目的是解决在机器学习项目中常见的问题,包括简便快捷地进行特征提取、转换、组合、选择以及血缘管理,特征的重用和共享,特征服务版本控制,以及确保在训练和推理过程中使用的特征数据的一致和可靠。一些特征平台的范例应用场景包括
FeatInsight 的主要目的是解决在机器学习项目中常见的问题,包括简便快捷地进行特征提取、转换、组合、选择以及血缘管理,特征的重用和共享,特征服务版本控制,以及确保在训练和推理过程中使用的特征数据的一致和可靠。一些 FeatInsight 的范例应用场景包括

* 上线在线特征服务:提供本地化部署的高性能特征存储和在线特征计算功能。
* 搭建 MLOps 平台:基于 OpenMLDB 在线离线一致性快速实现完成的 MLOps 工作流。
Expand All @@ -28,7 +29,7 @@ OpenMLDB 特征平台的主要目的是解决在机器学习项目中常见的

## 核心概念

以下是特征平台所使用到的一些术语及其定义,以方便理解:
以下是 FeatInsight 所使用到的一些术语及其定义,以方便理解:

* 特征:通过对原始数据进行特征抽取得到的可直接用于模型训练和推理的数据。
* 预计算特征:通过外部批计算或流式处理后存储的特征值,可直接上线使用。
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# 快速入门

本文将介绍如何快速入门 OpenMLDB 特征平台,基于一个 SQL 示例来演示如何使用特征平台
本文将介绍如何快速入门 FeatInsight,基于一个 SQL 示例来演示如何使用

安装部署可参考 [OpenMLDB 部署文档](../../../deploy/index.rst)[OpenMLDB 特征平台部署文档](./install/index.rst)
安装部署可参考 [OpenMLDB 部署文档](../../../deploy/index.rst)[FeatInsight 部署文档](./install/index.rst)

## 使用流程

特征平台的基本使用流程包括以下几个步骤
FeatInsight 的基本使用流程包括以下几个步骤

1. 导入数据:使用SQL命令或前端表单进行创建数据库、创建数据表、导入在线数据和导入离线数据等操作。
2. 创建特征:使用SQL语句来定义特征视图,特征平台使用SQL编译器进行特征分析并创建对应的特征
2. 创建特征:使用SQL语句来定义特征视图,FeatInsight 使用SQL编译器进行特征分析并创建对应的特征
3. 离线场景:选择想要导入的特征,可以同时选择不同特征视图的特征,并使用分布式计算把样本文件导入到本地或分布式存储。
4. 在线场景:选择想要上线的特征,一键发布成在线特征抽取服务,然后可使用HTTP客户端进行请求和返回在线特征抽取结果。

Expand All @@ -23,11 +23,11 @@ CREATE DATABASE test_db;
CREATE TABLE test_db.test_table (id STRING, trx_time DATE);
```

也可以在特征平台的“数据导入”前端页面直接创建。
也可以在 FeatInsight 的“数据导入”前端页面直接创建。

![](./images/create_test_table.png)

为了测试方便,我们准备一个 CSV 文件并保存到 `/tmp/test_table.csv`。注意,这里本地是 OpenMLDB TaskManager 服务器的本地路径,一般也是 OpenMLDB 特征平台的服务器路径,需要提前登陆编辑。
为了测试方便,我们准备一个 CSV 文件并保存到 `/tmp/test_table.csv`。注意,这里本地是 OpenMLDB TaskManager 服务器的本地路径,一般也是 FeatInsight 的服务器路径,需要提前登陆编辑。

```
id,trx_time
Expand Down Expand Up @@ -86,7 +86,7 @@ SELECT id, dayofweek(trx_time) as trx_day FROM test_table

![](./images/test_offline_sample_detail.png)

在本地即可查看导出的样本文件内容。为了验证 OpenMLDB 特征平台提供的在线离线一致性,可记录离线特征结果,并于后面的在线特征计算做比较。
在本地即可查看导出的样本文件内容。为了验证 FeatInsight 提供的在线离线一致性,可记录离线特征结果,并于后面的在线特征计算做比较。

![](./images/local_test_offline_samples.png)

Expand All @@ -106,11 +106,11 @@ SELECT id, dayofweek(trx_time) as trx_day FROM test_table

## 总结

本示例演示了使用 OpenMLDB 特征平台的完整流程,通过编写简单的 SQL 即可实现在线和离线的特征定义,通过选择不同的特征,甚至是组合不同特征组的特征,即可实现快速的特征复用和上线,并且对比离线和在线的计算结果验证了特征计算的一致性。
本示例演示了使用 FeatInsight 的完整流程,通过编写简单的 SQL 即可实现在线和离线的特征定义,通过选择不同的特征,甚至是组合不同特征组的特征,即可实现快速的特征复用和上线,并且对比离线和在线的计算结果验证了特征计算的一致性。

## 附录:高级功能

除了特征工程的基本功能之外,特征平台还提供了高级功能以方便用户进行特征工程的开发
除了特征工程的基本功能之外,FeatInsight 还提供了高级功能以方便用户进行特征工程的开发

* SQL 实验室:提供了 OpenMLDB SQL 语句的调试和执行功能,方便用户执行任意 SQL 操作并调试特征抽取的 SQL 语句。详情请见[这里](./functions/sql_playground)
* 预计算特征:可以将通过外部批计算或流式处理后得到的特征值直接存入OpenMLDB在线表中,然后访问在线表数据进行读写特征。详情请见[这里](./functions/computed_features)
9 changes: 9 additions & 0 deletions docs/zh/app_ecosystem/feat_insight/use_cases/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
=============================
应用案例
=============================

.. toctree::
:maxdepth: 1

taxi_tour_duration_prediction
recommend_system
Loading

0 comments on commit dfd860e

Please sign in to comment.