[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-feathr-ai--feathr":3,"similar-feathr-ai--feathr":218},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":9,"readme_en":10,"readme_zh":11,"quickstart_zh":12,"use_case_zh":13,"hero_image_url":14,"owner_login":15,"owner_name":16,"owner_avatar_url":17,"owner_bio":18,"owner_company":19,"owner_location":19,"owner_email":20,"owner_twitter":19,"owner_website":19,"owner_url":21,"languages":22,"stars":59,"forks":60,"last_commit_at":61,"license":62,"difficulty_score":63,"env_os":64,"env_gpu":65,"env_ram":66,"env_deps":67,"category_tags":81,"github_topics":85,"view_count":101,"oss_zip_url":19,"oss_zip_packed_at":19,"status":102,"created_at":103,"updated_at":104,"faqs":105,"releases":143},3854,"feathr-ai\u002Ffeathr","feathr","Feathr – A scalable, unified data and AI engineering platform for enterprise","Feathr 是一个可扩展的企业级数据与 AI 工程平台，源自 LinkedIn 内部使用六年的成熟项目，现由 LF AI & Data 基金会托管。它主要解决人工智能开发中特征工程复杂、数据一致性难保障以及团队协作效率低等痛点。\n\n通过 Feathr，数据科学家和工程师可以使用直观的 Python API 定义原始数据的转换逻辑，无论是批量处理还是实时流数据均可统一支持。其核心优势在于自动计算特征并关联训练数据，严格采用“时间点正确”（point-in-time-correct）语义，有效防止模型训练中的数据泄露问题。此外，Feathr 内置了注册中心功能，让团队成员能够轻松命名、共享和复用特征，打破数据孤岛。\n\n该平台特别适合需要构建大规模机器学习系统的开发者、数据科学家及 AI 工程师。技术亮点包括原生云集成、支持数十亿行数据的高效处理能力（内置布隆过滤器等优化），以及兼容 PySpark 和 Spark SQL 的高度自定义函数。Feathr 不仅降低了特征工程的学习门槛，还实现了从离线批处理到在线生产环境的全链路统一，帮助用户在几分钟内通过沙箱环境快速上手，高效落地 AI 应","Feathr 是一个可扩展的企业级数据与 AI 工程平台，源自 LinkedIn 内部使用六年的成熟项目，现由 LF AI & Data 基金会托管。它主要解决人工智能开发中特征工程复杂、数据一致性难保障以及团队协作效率低等痛点。\n\n通过 Feathr，数据科学家和工程师可以使用直观的 Python API 定义原始数据的转换逻辑，无论是批量处理还是实时流数据均可统一支持。其核心优势在于自动计算特征并关联训练数据，严格采用“时间点正确”（point-in-time-correct）语义，有效防止模型训练中的数据泄露问题。此外，Feathr 内置了注册中心功能，让团队成员能够轻松命名、共享和复用特征，打破数据孤岛。\n\n该平台特别适合需要构建大规模机器学习系统的开发者、数据科学家及 AI 工程师。技术亮点包括原生云集成、支持数十亿行数据的高效处理能力（内置布隆过滤器等优化），以及兼容 PySpark 和 Spark SQL 的高度自定义函数。Feathr 不仅降低了特征工程的学习门槛，还实现了从离线批处理到在线生产环境的全链路统一，帮助用户在几分钟内通过沙箱环境快速上手，高效落地 AI 应用。","\u003Chtml>\n    \u003Ch1 align=\"center\">\n      \u003Cimg src=\".\u002Fimages\u002Ffeathr_logo.png\" width=\"256\"\u002F>\n    \u003C\u002Fh1>\n    \u003Ch3 align=\"center\">\n      A scalable, unified data and AI engineering platform for enterprise\n    \u003C\u002Fh3>\n    \u003Ch3 align=\"center\">\n      Important Links:\n      \u003Ca href=\"https:\u002F\u002Fjoin.slack.com\u002Ft\u002Ffeathrai\u002Fshared_invite\u002Fzt-1ffva5u6v-voq0Us7bbKAw873cEzHOSg\">Slack\u003C\u002Fa> &\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fdiscussions\">Discussions\u003C\u002Fa>.\n      \u003Ca href=\"https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002F\">Docs\u003C\u002Fa>.\n    \u003C\u002Fh3>\n\u003C\u002Fhtml>\n\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue)](https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fblob\u002Fmain\u002FLICENSE)\n[![GitHub Release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Ffeathr-ai\u002Ffeathr.svg?style=flat&sort=semver&color=blue)](https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Freleases)\n[![Docs Latest](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-latest-blue.svg)](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002F)\n[![Python API](https:\u002F\u002Fimg.shields.io\u002Freadthedocs\u002Ffeathr?label=Python%20API)](https:\u002F\u002Ffeathr.readthedocs.io\u002Fen\u002Flatest\u002F)\n[![CII Best Practices](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffeathr-ai_feathr_readme_50ccde67b228.png)](https:\u002F\u002Fbestpractices.coreinfrastructure.org\u002Fprojects\u002F6457)\n\n## What is Feathr?\n\nFeathr is a data and AI engineering platform that is widely used in production at LinkedIn for many years and was open sourced in 2022. It is currently a project under [LF AI & Data Foundation](https:\u002F\u002Flfaidata.foundation\u002Fblog\u002F2022\u002F09\u002F12\u002Ffeathr-joins-lf-ai-data-as-new-sandbox-project\u002F).\n \nRead our announcement on [Open Sourcing Feathr](https:\u002F\u002Fengineering.linkedin.com\u002Fblog\u002F2022\u002Fopen-sourcing-feathr---linkedin-s-feature-store-for-productive-m) and [Feathr on Azure](https:\u002F\u002Fazure.microsoft.com\u002Fen-us\u002Fblog\u002Ffeathr-linkedin-s-feature-store-is-now-available-on-azure\u002F), as well as the [announcement from LF AI & Data Foundation](https:\u002F\u002Flfaidata.foundation\u002Fblog\u002F2022\u002F09\u002F12\u002Ffeathr-joins-lf-ai-data-as-new-sandbox-project\u002F).\n \nFeathr lets you:\n- **Define**  data and feature transformations based on raw data sources (batch and streaming) using Pythonic APIs.\n- **Register**  transformations by names and get transformed data(features) for various use cases including AI modeling, compliance, go-to-market and more.\n- **Share**  transformations and data(features) across team and company.\n\nFeathr is particularly useful in AI modeling where it automatically computes your feature transformations and joins them to your training data, using point-in-time-correct semantics to avoid data leakage, and supports materializing and deploying your features for use online in production.\n\n## 🌟 Feathr Highlights\n\n- Native cloud integration with simplified and scalable architecture.\n- Battle tested in production for more than 6 years: LinkedIn has been using Feathr in production for over 6 years and backed by a dedicated team.\n- Scalable with built-in optimizations: Feathr can process billions of rows and PB scale data with built-in optimizations such as bloom filters and salted joins.\n- Rich transformation APIs including time-based aggregations, sliding window joins, look-up features, all with point-in-time correctness for AI.\n- Pythonic APIs and highly customizable user-defined functions (UDFs) with native PySpark and Spark SQL support to lower the learning curve for all data scientists.\n- Unified data transformation API works in offline batch, streaming, and online environments.\n- Feathr’s built-in registry makes named transformations and data\u002Ffeature reuse a breeze.\n\n## 🏃 Getting Started with Feathr - Feathr Sandbox\n\nThe easiest way to try out Feathr is to use the [Feathr Sandbox](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002Fquickstart_local_sandbox.html) which is a self-contained container with most of Feathr's capabilities and you should be productive in 5 minutes. To use it, simply run this command:\n\n```bash\n# 80: Feathr UI, 8888: Jupyter, 7080: Interpret\ndocker run -it --rm -p 8888:8888 -p 8081:80 -p 7080:7080 -e GRANT_SUDO=yes feathrfeaturestore\u002Ffeathr-sandbox:releases-v1.0.0\n```\n\nAnd you can view Feathr quickstart jupyter notebook:\n```bash\nhttp:\u002F\u002Flocalhost:8888\u002Flab\u002Fworkspaces\u002Fauto-w\u002Ftree\u002Flocal_quickstart_notebook.ipynb\n```\n\nAfter running the notebook, all the features will be registered in the UI, and you can visit the Feathr UI at:\n\n```bash\nhttp:\u002F\u002Flocalhost:8081\n```\n\n## 🛠️ Install Feathr Client Locally\n\nIf you want to install Feathr client in a python environment, use this:\n\n```bash\npip install feathr\n```\n\nOr use the latest code from GitHub:\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr.git#subdirectory=feathr_project\n```\n\n## ☁️ Running Feathr on Cloud for Production\n\nFeathr has native integrations with Databricks and Azure Synapse:\n\nFollow the [Feathr ARM deployment guide](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002Fhow-to-guides\u002Fazure-deployment-arm.html) to run Feathr on Azure. This allows you to quickly get started with automated deployment using Azure Resource Manager template.\n\nIf you want to set up everything manually, you can checkout the [Feathr CLI deployment guide](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002Fhow-to-guides\u002Fazure-deployment-cli.html) to run Feathr on Azure. This allows you to understand what is going on and set up one resource at a time.\n\n- Please read the [Quick Start Guide for Feathr on Databricks](.\u002Fquickstart_databricks.md) to run Feathr with Databricks.\n- Please read the [Quick Start Guide for Feathr on Azure Synapse](.\u002Fquickstart_synapse.md) to run Feathr with Azure Synapse.\n\n## 📓 Documentation\n\n- For more details on Feathr, read our [documentation](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002F).\n- For Python API references, read the [Python API Reference](https:\u002F\u002Ffeathr.readthedocs.io\u002F).\n- For technical talks on Feathr, see the [slides here](.\u002Ftalks\u002FFeathr%20Feature%20Store%20Talk.pdf) and [here](.\u002Ftalks\u002FFeathr%20Community%20Talk%20%E2%80%93%20An%20Enterprise-Grade%20High%20Performance%20Feature%20Store.pdf). The recording is [here](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gZg01UKQMTY).\n\n## 🧪 Samples\n\n| Name                                                                                | Description                                                                                                                           | Platform                               |\n| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- |\n| [NYC Taxi Demo](.\u002Fsamples\u002Fnyc_taxi_demo.ipynb)                                      | Quickstart notebook that showcases how to define, materialize, and register features with NYC taxi-fare prediction sample data.       | Azure Synapse, Databricks, Local Spark |\n| [Databricks Quickstart NYC Taxi Demo](.\u002Fsamples\u002Fnyc_taxi_demo.ipynb)                | Quickstart Databricks notebook with NYC taxi-fare prediction sample data.                                                             | Databricks                             |\n| [Feature Embedding](.\u002Fsamples\u002Ffeature_embedding.ipynb)                              | Feathr UDF example showing how to define and use feature embedding with a pre-trained Transformer model and hotel review sample data. | Databricks                             |\n| [Fraud Detection Demo](.\u002Fsamples\u002Ffraud_detection_demo.ipynb)                        | An example to demonstrate Feature Store using multiple data sources such as user account and transaction data.                        | Azure Synapse, Databricks, Local Spark |\n| [Product Recommendation Demo](.\u002Fsamples\u002Fproduct_recommendation_demo_advanced.ipynb) | Feathr Feature Store example notebook with a product recommendation scenario                                                          | Azure Synapse, Databricks, Local Spark |\n\n\n## 🔡 Feathr Highlighted Capabilities\n\nPlease read [Feathr Full Capabilities](.\u002Fconcepts\u002Ffeathr-capabilities.md) for more examples. Below are a few selected ones:\n\n### Feathr UI\n\nFeathr provides an intuitive UI so you can search and explore all the available features and their corresponding lineages.\n\nYou can use Feathr UI to search features, identify data sources, track feature lineages and manage access controls. Check out the latest live demo [here](https:\u002F\u002Faka.ms\u002Ffeathrdemo) to see what Feathr UI can do for you. Use one of following accounts when you are prompted to login:\n\n- A work or school organization account, includes Office 365 subscribers.\n- Microsoft personal account, this means an account can access to Skype, Outlook.com, OneDrive, and Xbox LIVE.\n\n![Feathr UI](.\u002Fimages\u002Ffeathr-ui.png)\n\nFor more information on the Feathr UI and the registry behind it, please refer to [Feathr Feature Registry](.\u002Fconcepts\u002Ffeature-registry.md)\n\n### Rich UDF Support\n\nFeathr has highly customizable UDFs with native PySpark and Spark SQL integration to lower learning curve for data scientists:\n\n```python\ndef add_new_dropoff_and_fare_amount_column(df: DataFrame):\n    df = df.withColumn(\"f_day_of_week\", dayofweek(\"lpep_dropoff_datetime\"))\n    df = df.withColumn(\"fare_amount_cents\", df.fare_amount.cast('double') * 100)\n    return df\n\nbatch_source = HdfsSource(name=\"nycTaxiBatchSource\",\n                        path=\"abfss:\u002F\u002Ffeathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net\u002Fdemo_data\u002Fgreen_tripdata_2020-04.csv\",\n                        preprocessing=add_new_dropoff_and_fare_amount_column,\n                        event_timestamp_column=\"new_lpep_dropoff_datetime\",\n                        timestamp_format=\"yyyy-MM-dd HH:mm:ss\")\n```\n\n### Defining Window Aggregation Features with Point-in-time correctness\n\n```python\nagg_features = [Feature(name=\"f_location_avg_fare\",\n                        key=location_id,                          # Query\u002Fjoin key of the feature(group)\n                        feature_type=FLOAT,\n                        transform=WindowAggTransformation(        # Window Aggregation transformation\n                            agg_expr=\"cast_float(fare_amount)\",\n                            agg_func=\"AVG\",                       # Apply average aggregation over the window\n                            window=\"90d\")),                       # Over a 90-day window\n                ]\n\nagg_anchor = FeatureAnchor(name=\"aggregationFeatures\",\n                           source=batch_source,\n                           features=agg_features)\n```\n\n### Define Features on Top of Other Features - Derived Features\n\n```python\n# Compute a new feature(a.k.a. derived feature) on top of an existing feature\nderived_feature = DerivedFeature(name=\"f_trip_time_distance\",\n                                 feature_type=FLOAT,\n                                 key=trip_key,\n                                 input_features=[f_trip_distance, f_trip_time_duration],\n                                 transform=\"f_trip_distance * f_trip_time_duration\")\n\n# Another example to compute embedding similarity\nuser_embedding = Feature(name=\"user_embedding\", feature_type=DENSE_VECTOR, key=user_key)\nitem_embedding = Feature(name=\"item_embedding\", feature_type=DENSE_VECTOR, key=item_key)\n\nuser_item_similarity = DerivedFeature(name=\"user_item_similarity\",\n                                      feature_type=FLOAT,\n                                      key=[user_key, item_key],\n                                      input_features=[user_embedding, item_embedding],\n                                      transform=\"cosine_similarity(user_embedding, item_embedding)\")\n```\n\n### Define Streaming Features\n\nRead the [Streaming Source Ingestion Guide](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002Fhow-to-guides\u002Fstreaming-source-ingestion.html) for more details.\n\n### Point in Time Joins\n\nRead [Point-in-time Correctness and Point-in-time Join in Feathr](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002Fconcepts\u002Fpoint-in-time-join.html) for more details.\n\n### Running Feathr Examples\n\nFollow the [quick start Jupyter Notebook](https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fblob\u002Fmain\u002Fdocs\u002Fsamples\u002Fazure_synapse\u002Fproduct_recommendation_demo.ipynb) to try it out. There is also a companion [quick start guide](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002Fquickstart_synapse.html) containing a bit more explanation on the notebook.\n\n## 🗣️ Tech Talks on Feathr\n\n- [Introduction to Feathr - Beginner's guide](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gZg01UKQMTY)\n- [Document Intelligence using Azure Feature Store (Feathr) and SynapseML](https:\u002F\u002Fmybuild.microsoft.com\u002Fen-US\u002Fsessions\u002F5bdff7d5-23e6-4f0d-9175-da8325d05c2a?source=sessions)\n- [Notebook tutorial: Build a Product Recommendation Machine Learning Model with Feathr Feature Store](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=2KSM-NLfvY0)\n- [Feathr talk in Feature Store Summit](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=u8nLY9Savxk)\n\n## ⚙️ Cloud Integrations and Architecture\n\n![Architecture Diagram](.\u002Fimages\u002Farchitecture.png)\n\n| Feathr component                | Cloud Integrations                                                                                                                   |\n| ------------------------------- |--------------------------------------------------------------------------------------------------------------------------------------|\n| Offline store – Object Store    | Azure Blob Storage, Azure ADLS Gen2, AWS S3                                                                                          |\n| Offline store – SQL             | Azure SQL DB, Azure Synapse Dedicated SQL Pools, Azure SQL in VM, Snowflake                                                          |\n| Streaming Source                | Kafka, EventHub                                                                                                                      |\n| Online store                    | Redis, [Azure Cosmos DB](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002Fhow-to-guides\u002Fjdbc-cosmos-notes.html#using-cosmosdb-as-the-online-store) |\n| Feature Registry and Governance | Azure Purview, ANSI SQL such as Azure SQL Server                                                                                     |\n| Compute Engine                  | Azure Synapse Spark Pools, Databricks                                                                                                |\n| Machine Learning Platform       | Azure Machine Learning, Jupyter Notebook, Databricks Notebook                                                                        |\n| File Format                     | Parquet, ORC, Avro, JSON, Delta Lake, CSV                                                                                            |\n| Credentials                     | Azure Key Vault                                                                                                                      |\n\n## 🚀 Roadmap\n\n- [ ] More Feathr online client libraries such as Java\n- [ ] Support feature versioning\n- [ ] Support feature monitoring\n\n## 👨‍👨‍👦‍👦 Community Guidelines\n\nBuild for the community and build by the community. Check out [Community Guidelines](..\u002FCONTRIBUTING.md).\n\n## 📢 Slack Channel\n\nJoin our [Slack channel](https:\u002F\u002Ffeathrai.slack.com) for questions and discussions (or click the [invitation link](https:\u002F\u002Fjoin.slack.com\u002Ft\u002Ffeathrai\u002Fshared_invite\u002Fzt-1ffva5u6v-voq0Us7bbKAw873cEzHOSg)).\n","\u003Chtml>\n    \u003Ch1 align=\"center\">\n      \u003Cimg src=\".\u002Fimages\u002Ffeathr_logo.png\" width=\"256\"\u002F>\n    \u003C\u002Fh1>\n    \u003Ch3 align=\"center\">\n      一款面向企业的可扩展、统一的数据与AI工程平台\n    \u003C\u002Fh3>\n    \u003Ch3 align=\"center\">\n      重要链接：\n      \u003Ca href=\"https:\u002F\u002Fjoin.slack.com\u002Ft\u002Ffeathrai\u002Fshared_invite\u002Fzt-1ffva5u6v-voq0Us7bbKAw873cEzHOSg\">Slack\u003C\u002Fa> &\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fdiscussions\">讨论区\u003C\u002Fa>。\n      \u003Ca href=\"https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002F\">文档\u003C\u002Fa>。\n    \u003C\u002Fh3>\n\u003C\u002Fhtml>\n\n[![许可证](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue)](https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fblob\u002Fmain\u002FLICENSE)\n[![GitHub发布](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Ffeathr-ai\u002Ffeathr.svg?style=flat&sort=semver&color=blue)](https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Freleases)\n[![文档最新版](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-latest-blue.svg)](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002F)\n[![Python API](https:\u002F\u002Fimg.shields.io\u002Freadthedocs\u002Ffeathr?label=Python%20API)](https:\u002F\u002Ffeathr.readthedocs.io\u002Fen\u002Flatest\u002F)\n[![CII最佳实践](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffeathr-ai_feathr_readme_50ccde67b228.png)](https:\u002F\u002Fbestpractices.coreinfrastructure.org\u002Fprojects\u002F6457)\n\n## 什么是Feathr？\n\nFeathr是一个数据与AI工程平台，在LinkedIn已广泛应用于生产环境多年，并于2022年开源。目前，它已成为[LF AI & Data基金会](https:\u002F\u002Flfaidata.foundation\u002Fblog\u002F2022\u002F09\u002F12\u002Ffeathr-joins-lf-ai-data-as-new-sandbox-project\u002F)下的一个项目。\n\n请阅读我们的相关公告：[开源Feathr](https:\u002F\u002Fengineering.linkedin.com\u002Fblog\u002F2022\u002Fopen-sourcing-feathr---linkedin-s-feature-store-for-productive-m)和[Feathr在Azure上](https:\u002F\u002Fazure.microsoft.com\u002Fen-us\u002Fblog\u002Ffeathr-linkedin-s-feature-store-is-now-available-on-azure\u002F)，以及[LF AI & Data基金会的公告](https:\u002F\u002Flfaidata.foundation\u002Fblog\u002F2022\u002F09\u002F12\u002Ffeathr-joins-lf-ai-data-as-new-sandbox-project\u002F)。\n\nFeathr可以帮助您：\n- **定义** 基于原始数据源（批处理和流式）的数据及特征转换，使用类Python的API。\n- **注册** 转换规则并为其命名，从而为各种用例获取转换后的数据（特征），包括AI建模、合规性、市场推广等。\n- **共享** 转换规则及数据（特征）给团队或公司内的其他部门。\n\nFeathr在AI建模中尤为有用，它能够自动计算您的特征转换，并以“时间点正确”的语义将其与训练数据进行关联，避免数据泄露问题；同时支持将特征物化并部署到线上生产环境中使用。\n\n## 🌟 Feathr亮点\n\n- 原生云集成，架构简化且可扩展。\n- 经过6年以上生产环境的严格考验：LinkedIn已持续使用Feathr超过6年，并拥有专门的支持团队。\n- 内置优化功能，具备强大的可扩展性：Feathr可处理数十亿行数据及PB级别的海量数据，内置布隆过滤器和加盐连接等优化技术。\n- 丰富的转换API，包括基于时间的聚合、滑动窗口连接、查找特征等，所有操作均符合AI所需的“时间点正确”原则。\n- 类Python的API和高度可定制的用户自定义函数（UDF），原生支持PySpark和Spark SQL，降低数据科学家的学习曲线。\n- 统一的数据转换API适用于离线批处理、流式处理和在线环境。\n- Feathr内置的注册中心使命名转换和数据\u002F特征的复用变得轻而易举。\n\n## 🏃 快速入门Feathr - Feathr沙盒\n\n尝试Feathr最简单的方式是使用[Feathr沙盒](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002Fquickstart_local_sandbox.html)，这是一个自包含的容器，集成了Feathr的大部分功能，您只需5分钟即可开始高效工作。只需运行以下命令：\n\n```bash\n# 80: Feathr UI, 8888: Jupyter, 7080: Interpret\ndocker run -it --rm -p 8888:8888 -p 8081:80 -p 7080:7080 -e GRANT_SUDO=yes feathrfeaturestore\u002Ffeathr-sandbox:releases-v1.0.0\n```\n\n然后您可以查看Feathr快速入门Jupyter笔记本：\n```bash\nhttp:\u002F\u002Flocalhost:8888\u002Flab\u002Fworkspaces\u002Fauto-w\u002Ftree\u002Flocal_quickstart_notebook.ipynb\n```\n\n运行完笔记本后，所有特征都会在UI中注册，您可以通过以下地址访问Feathr UI：\n```bash\nhttp:\u002F\u002Flocalhost:8081\n```\n\n## 🛠️ 在本地安装Feathr客户端\n\n如果您想在Python环境中安装Feathr客户端，请使用以下命令：\n\n```bash\npip install feathr\n```\n\n或者直接从GitHub获取最新代码：\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr.git#subdirectory=feathr_project\n```\n\n## ☁️ 在云端运行Feathr用于生产环境\n\nFeathr与Databricks和Azure Synapse实现了原生集成：\n\n请按照[Feathr ARM部署指南](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002Fhow-to-guides\u002Fazure-deployment-arm.html)在Azure上运行Feathr。该指南提供了使用Azure资源管理器模板进行自动化部署的快速入门方法。\n\n如果您希望手动搭建所有组件，可以参考[Feathr CLI部署指南](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002Fhow-to-guides\u002Fazure-deployment-cli.html)，逐步设置每个资源。\n\n- 请阅读[Feathr在Databricks上的快速入门指南](.\u002Fquickstart_databricks.md)，了解如何在Databricks上运行Feathr。\n- 请阅读[Feathr在Azure Synapse上的快速入门指南](.\u002Fquickstart_synapse.md)，了解如何在Azure Synapse上运行Feathr。\n\n## 📓 文档\n\n- 欲了解更多关于Feathr的信息，请参阅我们的[文档](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002F)。\n- 如需Python API参考，请查阅[Python API参考](https:\u002F\u002Ffeathr.readthedocs.io\u002F)。\n- 关于Feathr的技术分享，请参阅[此处的幻灯片](.\u002Ftalks\u002FFeathr%20Feature%20Store%20Talk.pdf)和[此处的幻灯片](.\u002Ftalks\u002FFeathr%20Community%20Talk%20%E2%80%93%20An%20Enterprise-Grade%20High%20Performance%20Feature%20Store.pdf)。相关录像可在[这里](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gZg01UKQMTY)观看。\n\n## 🧪 样例\n\n| 名称                                                                                | 描述                                                                                                                           | 平台                               |\n| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- |\n| [NYC Taxi 演示](.\u002Fsamples\u002Fnyc_taxi_demo.ipynb)                                      | 快速入门笔记本，展示了如何使用 NYC 出租车费预测样本数据定义、物化和注册特征。       | Azure Synapse、Databricks、本地 Spark |\n| [Databricks 快速入门 NYC Taxi 演示](.\u002Fsamples\u002Fnyc_taxi_demo.ipynb)                | 包含 NYC 出租车费预测样本数据的 Databricks 快速入门笔记本。                                                             | Databricks                             |\n| [特征嵌入](.\u002Fsamples\u002Ffeature_embedding.ipynb)                              | Feathr UDF 示例，展示如何使用预训练的 Transformer 模型和酒店评论样本数据定义并使用特征嵌入。 | Databricks                             |\n| [欺诈检测演示](.\u002Fsamples\u002Ffraud_detection_demo.ipynb)                        | 一个示例，演示如何使用用户账户和交易数据等多种数据源来操作 Feature Store。                        | Azure Synapse、Databricks、本地 Spark |\n| [产品推荐演示](.\u002Fsamples\u002Fproduct_recommendation_demo_advanced.ipynb) | 带有产品推荐场景的 Feathr Feature Store 示例笔记本                                                          | Azure Synapse、Databricks、本地 Spark |\n\n\n## 🔡 Feathr 主要功能\n\n请阅读 [Feathr 全部功能](.\u002Fconcepts\u002Ffeathr-capabilities.md)，以获取更多示例。以下是其中几个精选功能：\n\n### Feathr UI\n\nFeathr 提供了一个直观的用户界面，使您可以搜索和探索所有可用的特征及其相应的血缘关系。\n\n您可以通过 Feathr UI 搜索特征、识别数据源、跟踪特征血缘关系以及管理访问控制。请查看最新的实时演示 [这里](https:\u002F\u002Faka.ms\u002Ffeathrdemo)，了解 Feathr UI 能为您做些什么。在提示登录时，请使用以下任一账号：\n\n- 工作或学校组织账号，包括 Office 365 订阅用户。\n- Microsoft 个人账号，即可以访问 Skype、Outlook.com、OneDrive 和 Xbox LIVE 的账号。\n\n![Feathr UI](.\u002Fimages\u002Ffeathr-ui.png)\n\n有关 Feathr UI 及其背后注册表的更多信息，请参阅 [Feathr 特征注册表](.\u002Fconcepts\u002Ffeature-registry.md)。\n\n### 丰富的 UDF 支持\n\nFeathr 具有高度可定制的 UDF，并与原生 PySpark 和 Spark SQL 集成，从而降低数据科学家的学习曲线：\n\n```python\ndef add_new_dropoff_and_fare_amount_column(df: DataFrame):\n    df = df.withColumn(\"f_day_of_week\", dayofweek(\"lpep_dropoff_datetime\"))\n    df = df.withColumn(\"fare_amount_cents\", df.fare_amount.cast('double') * 100)\n    return df\n\nbatch_source = HdfsSource(name=\"nycTaxiBatchSource\",\n                        path=\"abfss:\u002F\u002Ffeathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net\u002Fdemo_data\u002Fgreen_tripdata_2020-04.csv\",\n                        preprocessing=add_new_dropoff_and_fare_amount_column,\n                        event_timestamp_column=\"new_lpep_dropoff_datetime\",\n                        timestamp_format=\"yyyy-MM-dd HH:mm:ss\")\n```\n\n### 定义具有时间点正确性的窗口聚合特征\n\n```python\nagg_features = [Feature(name=\"f_location_avg_fare\",\n                        key=location_id,                          # 特征（组）的查询\u002F连接键\n                        feature_type=FLOAT,\n                        transform=WindowAggTransformation(        # 窗口聚合变换\n                            agg_expr=\"cast_float(fare_amount)\",\n                            agg_func=\"AVG\",                       # 在窗口上应用平均聚合\n                            window=\"90d\")),                       # 在 90 天窗口内\n                ]\n\nagg_anchor = FeatureAnchor(name=\"aggregationFeatures\",\n                           source=batch_source,\n                           features=agg_features)\n```\n\n### 在其他特征之上定义派生特征\n\n```python\n# 在现有特征之上计算一个新的特征（即派生特征）\nderived_feature = DerivedFeature(name=\"f_trip_time_distance\",\n                                 feature_type=FLOAT,\n                                 key=trip_key,\n                                 input_features=[f_trip_distance, f_trip_time_duration],\n                                 transform=\"f_trip_distance * f_trip_time_duration\")\n\n# 另一个计算嵌入相似度的例子\nuser_embedding = Feature(name=\"user_embedding\", feature_type=DENSE_VECTOR, key=user_key)\nitem_embedding = Feature(name=\"item_embedding\", feature_type=DENSE_VECTOR, key=item_key)\n\nuser_item_similarity = DerivedFeature(name=\"user_item_similarity\",\n                                      feature_type=FLOAT,\n                                      key=[user_key, item_key],\n                                      input_features=[user_embedding, item_embedding],\n                                      transform=\"cosine_similarity(user_embedding, item_embedding)\")\n```\n\n### 定义流式特征\n\n有关详细信息，请参阅 [流式源摄取指南](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002Fhow-to-guides\u002Fstreaming-source-ingestion.html)。\n\n### 时间点连接\n\n有关详细信息，请参阅 [Feathr 中的时间点正确性和时间点连接](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002Fconcepts\u002Fpoint-in-time-join.html)。\n\n### 运行 Feathr 示例\n\n按照 [快速入门 Jupyter 笔记本](https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fblob\u002Fmain\u002Fdocs\u002Fsamples\u002Fazure_synapse\u002Fproduct_recommendation_demo.ipynb) 进行尝试。此外，还有一个配套的 [快速入门指南](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002Fquickstart_synapse.html)，其中对笔记本进行了更详细的解释。\n\n## 🗣️ 关于 Feathr 的技术分享\n\n- [Feathr 简介 - 初学者指南](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gZg01UKQMTY)\n- [使用 Azure Feature Store (Feathr) 和 SynapseML 进行文档智能](https:\u002F\u002Fmybuild.microsoft.com\u002Fen-US\u002Fsessions\u002F5bdff7d5-23e6-4f0d-9175-da8325d05c2a?source=sessions)\n- [笔记本教程：使用 Feathr Feature Store 构建产品推荐机器学习模型](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=2KSM-NLfvY0)\n- [Feathr 在 Feature Store Summit 上的演讲](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=u8nLY9Savxk)\n\n## ⚙️ 云集成与架构\n\n![架构图](.\u002Fimages\u002Farchitecture.png)\n\n| Feathr 组件                | 云集成                                                                                                                   |\n| --------------------------- |--------------------------------------------------------------------------------------------------------------------------------------|\n| 离线存储 – 对象存储    | Azure Blob Storage、Azure ADLS Gen2、AWS S3                                                                                          |\n| 离线存储 – SQL             | Azure SQL DB、Azure Synapse 专用 SQL 池、VM 中的 Azure SQL、Snowflake                                                          |\n| 流式数据源                | Kafka、EventHub                                                                                                                      |\n| 在线存储                    | Redis、[Azure Cosmos DB](https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002Fhow-to-guides\u002Fjdbc-cosmos-notes.html#using-cosmosdb-as-the-online-store) |\n| 特征注册与治理           | Azure Purview、ANSI SQL（如 Azure SQL Server）                                                                                     |\n| 计算引擎                  | Azure Synapse Spark 池、Databricks                                                                                                |\n| 机器学习平台       | Azure 机器学习、Jupyter Notebook、Databricks Notebook                                                                        |\n| 文件格式                     | Parquet、ORC、Avro、JSON、Delta Lake、CSV                                                                                            |\n| 凭证管理                     | Azure Key Vault                                                                                                                      |\n\n## 🚀 路线图\n\n- [ ] 更多 Feathr 在线客户端库，例如 Java\n- [ ] 支持特征版本控制\n- [ ] 支持特征监控\n\n## 👨‍👨‍👦‍👦 社区准则\n\n为社区而建，由社区共建。请查看[社区准则](..\u002FCONTRIBUTING.md)。\n\n## 📢 Slack 社区频道\n\n加入我们的[Slack 社区频道](https:\u002F\u002Ffeathrai.slack.com)，进行问题交流和讨论（或点击[邀请链接](https:\u002F\u002Fjoin.slack.com\u002Ft\u002Ffeathrai\u002Fshared_invite\u002Fzt-1ffva5u6v-voq0Us7bbKAw873cEzHOSg)）。","# Feathr 快速上手指南\n\nFeathr 是一个可扩展、统一的企业级数据与 AI 工程平台（特征存储），源自 LinkedIn 生产环境，现由 LF AI & Data 基金会托管。它支持使用 Pythonic API 定义特征转换、注册特征，并自动处理离线批处理、流式计算及在线服务中的时间点正确性（Point-in-time Correctness），有效防止数据泄露。\n\n## 1. 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows (推荐 WSL2)。\n*   **Python 版本**：Python 3.8 - 3.10。\n*   **前置依赖**：\n    *   `pip` (Python 包管理工具)\n    *   `Docker` (如果使用 Sandbox 模式快速体验，必须安装)\n    *   `Java` (若本地运行 Spark 相关功能可能需要，Sandbox 中已内置)\n\n## 2. 安装步骤\n\n您可以根据需求选择以下两种方式进行安装：\n\n### 方式一：使用 Feathr Sandbox（推荐新手快速体验）\n这是最快捷的方式，通过 Docker 容器运行一个包含 Feathr UI、Jupyter Notebook 和后端服务的完整环境，无需配置任何云资源。\n\n**启动命令：**\n```bash\ndocker run -it --rm -p 8888:8888 -p 8081:80 -p 7080:7080 -e GRANT_SUDO=yes feathrfeaturestore\u002Ffeathr-sandbox:releases-v1.0.0\n```\n\n启动成功后：\n1.  **编写代码**：访问 `http:\u002F\u002Flocalhost:8888\u002Flab\u002Fworkspaces\u002Fauto-w\u002Ftree\u002Flocal_quickstart_notebook.ipynb` 打开预置的 Jupyter Notebook。\n2.  **查看界面**：访问 `http:\u002F\u002Flocalhost:8081` 查看 Feathr UI，用于浏览和搜索已注册的特征。\n\n### 方式二：本地安装 Python 客户端\n如果您希望在现有 Python 环境中集成 Feathr 客户端以连接云端（如 Azure Synapse, Databricks）或本地 Spark 集群：\n\n**使用 PyPI 安装（稳定版）：**\n```bash\npip install feathr\n```\n\n**使用 GitHub 源码安装（最新版）：**\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr.git#subdirectory=feathr_project\n```\n\n> **提示**：国内用户若下载缓慢，可尝试配置清华源或阿里源：\n> `pip install feathr -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n## 3. 基本使用\n\n以下示例展示如何使用 Feathr 定义数据源、创建基于时间窗口的聚合特征以及派生特征。\n\n### 步骤 1：定义数据源与预处理 (UDF)\nFeathr 支持原生 PySpark 和 Spark SQL 进行数据预处理。\n\n```python\nfrom pyspark.sql.functions import dayofweek\nfrom feathr import HdfsSource, FeatureAnchor, Feature, WindowAggTransformation, DerivedFeature\nfrom feathr.dtype import FLOAT, DENSE_VECTOR\n\n# 定义预处理函数 (UDF)\ndef add_new_dropoff_and_fare_amount_column(df):\n    df = df.withColumn(\"f_day_of_week\", dayofweek(\"lpep_dropoff_datetime\"))\n    df = df.withColumn(\"fare_amount_cents\", df.fare_amount.cast('double') * 100)\n    return df\n\n# 定义批量数据源\nbatch_source = HdfsSource(name=\"nycTaxiBatchSource\",\n                          path=\"abfss:\u002F\u002Ffeathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net\u002Fdemo_data\u002Fgreen_tripdata_2020-04.csv\",\n                          preprocessing=add_new_dropoff_and_fare_amount_column,\n                          event_timestamp_column=\"new_lpep_dropoff_datetime\",\n                          timestamp_format=\"yyyy-MM-dd HH:mm:ss\")\n```\n\n### 步骤 2：定义窗口聚合特征\n定义具有时间点正确性的窗口聚合特征（例如：过去 90 天的平均车费）。\n\n```python\n# 假设 location_id 已在前文定义为 key\nagg_features = [Feature(name=\"f_location_avg_fare\",\n                        key=location_id,\n                        feature_type=FLOAT,\n                        transform=WindowAggTransformation(\n                            agg_expr=\"cast_float(fare_amount)\",\n                            agg_func=\"AVG\",\n                            window=\"90d\"))]\n\nagg_anchor = FeatureAnchor(name=\"aggregationFeatures\",\n                           source=batch_source,\n                           features=agg_features)\n```\n\n### 步骤 3：定义派生特征\n基于现有特征计算新特征（例如：结合距离和时间计算相似度或衍生值）。\n\n```python\n# 假设 f_trip_distance 和 f_trip_time_duration 是已定义的特征\nderived_feature = DerivedFeature(name=\"f_trip_time_distance\",\n                                 feature_type=FLOAT,\n                                 key=trip_key,\n                                 input_features=[f_trip_distance, f_trip_time_duration],\n                                 transform=\"f_trip_distance * f_trip_time_duration\")\n```\n\n### 后续步骤\n定义好特征后，您可以在本地 Sandbox 或云端环境中执行以下操作：\n1.  **注册特征**：将特征元数据注册到 Feathr Registry。\n2.  **材料化 (Materialize)**：将特征计算结果写入离线存储或在线数据库。\n3.  **获取特征**：在模型训练或在线推理时，通过 Point-in-time Join 获取准确的特征数据。\n\n详细的生产环境部署（Azure\u002FDatabricks）请参考官方文档中的 Deployment Guide。","某大型电商公司的数据科学团队正在构建实时个性化推荐系统，需要处理海量用户行为日志并生成数千个动态特征用于模型训练和在线预测。\n\n### 没有 feathr 时\n- **特征计算逻辑分散**：离线训练代码与在线服务代码由不同团队维护，导致特征定义不一致，经常出现“训练 - 服务偏差”，模型上线后效果大幅缩水。\n- **时间穿越难以避免**：在处理历史数据进行回溯测试时，缺乏原生的时间点正确性（Point-in-Time Correctness）机制，容易误用未来数据造成数据泄露，误导模型评估。\n- **协作效率低下**：特征工程脚本以孤立的 Notebook 形式存在，无法统一注册和复用，新成员加入时需重复造轮子，跨团队共享特征几乎不可能。\n- **扩展性瓶颈**：面对 PB 级用户行为流，自定义的 Spark 任务缺乏内置优化（如布隆过滤器、加盐连接），计算耗时极长且资源成本高昂。\n\n### 使用 feathr 后\n- **统一特征定义**：通过 Pythonic API 一次性定义特征转换逻辑，feathr 自动将其应用于离线批量训练和在线实时推理，彻底消除了训练与服务的环境差异。\n- **自动防止数据泄露**：利用 feathr 内置的时间点正确语义，自动在_join_训练数据时对齐时间戳，确保回溯测试中绝不使用未来信息，保障模型评估真实可靠。\n- **特征注册与共享**：将清洗后的特征注册到统一目录，团队成员可按名称直接调用现有特征，不仅加速了新模型迭代，还促进了全公司范围内的资产复用。\n- **高性能弹性计算**：依托 feathr 内置的分布式优化引擎，轻松处理数十亿行数据流，显著缩短特征 материализация（物化）时间，同时降低了云资源消耗。\n\nfeathr 通过统一离线与在线的特征工程链路，让企业能够以低成本、高一致性快速交付生产级 AI 应用。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffeathr-ai_feathr_4ba78722.png","feathr-ai","Feathr ","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Ffeathr-ai_1bb438b3.png","Feathr is an open source enterprise-grade, high performance feature store, hosted in incubation in the LF AI & Data Foundation.",null,"info@lfaidata.foundation","https:\u002F\u002Fgithub.com\u002Ffeathr-ai",[23,27,31,35,39,43,46,49,52,56],{"name":24,"color":25,"percentage":26},"Scala","#c22d40",47.3,{"name":28,"color":29,"percentage":30},"Java","#b07219",30.2,{"name":32,"color":33,"percentage":34},"Python","#3572A5",19.3,{"name":36,"color":37,"percentage":38},"TypeScript","#3178c6",2.8,{"name":40,"color":41,"percentage":42},"Shell","#89e051",0.1,{"name":44,"color":45,"percentage":42},"Dockerfile","#384d54",{"name":47,"color":48,"percentage":42},"Less","#1d365d",{"name":50,"color":51,"percentage":42},"JavaScript","#f1e05a",{"name":53,"color":54,"percentage":55},"CSS","#663399",0,{"name":57,"color":58,"percentage":55},"Batchfile","#C1F12E",1927,242,"2026-03-13T01:04:12","Apache-2.0",3,"Linux, macOS, Windows","未说明","未说明（Sandbox 模式需支持 Docker 容器运行）",{"notes":68,"python":69,"dependencies":70},"该工具主要依赖 Apache Spark 进行数据处理。推荐使用 Docker 运行 Feathr Sandbox 以快速体验（需安装 Docker 并开放端口 8888, 8081, 7080）。生产环境支持 Azure Synapse、Databricks 及本地 Spark 集群。客户端可通过 pip 直接安装。无强制 GPU 要求，计算性能取决于底层 Spark 集群配置。","3.8+",[71,72,73,74,75,76,77,78,79,80],"pyspark","azure-identity","azure-storage-blob","pandas","redis","confluent-kafka","pyhocon","jinja2","fastapi","uvicorn",[82,83,84],"开发框架","其他","数据工具",[86,87,88,89,90,91,92,93,94,95,96,97,98,99,100],"feature-engineering","feature-store","artificial-intelligence","mlops","data-engineering","data-quality","machine-learning","apache-spark","azure","data-science","feature-management","feature-marketplace","feature-governance","feature-metadata","feature-platform",2,"ready","2026-03-27T02:49:30.150509","2026-04-06T07:14:22.891468",[106,111,115,120,125,129,133,138],{"id":107,"question_zh":108,"answer_zh":109,"source_url":110},17639,"在 Azure Databricks 上运行 Feathr Spark 任务时遇到 commons-logging 下载失败或 DRIVER_LIBRARY_INSTALLATION_FAILURE 错误，如何解决？","这是由于 Databricks 运行时预构建包与 Elasticsearch 依赖项存在冲突。解决方法是在 Databricks 配置中排除以下冲突包：commons-logging:commons-logging, org.slf4j:slf4j-api, com.google.protobuf:protobuf-java, javax.xml.bind:jaxb-api。此外，也可以在 YAML 配置文件中添加 `feathr_runtime_location` 行，使 Spark 集群使用 Azure Storage 中的运行时 JAR 包。该问题已在 0.9.0 版本中修复。","https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fissues\u002F705",{"id":112,"question_zh":113,"answer_zh":114,"source_url":110},17640,"导入 Feathr 包时遇到 azure-core 版本冲突错误（例如当前版本 1.26.0 报错，降级到 1.22.1 也报错），该如何解决？","azure-core 依赖项在某些环境（如 AML 或 Ubuntu VM）中存在已知问题。维护者已提交单独的 PR（如 #763）以提高不同平台上的鲁棒性。建议检查项目依赖树，尝试更新 Feathr 到最新版本以获取兼容性修复，或者在特定环境中暂时调整 azure-core 版本直到官方发布更稳定的补丁。",{"id":116,"question_zh":117,"answer_zh":118,"source_url":119},17641,"是否有支持本地 Spark 执行的示例 Notebook 或环境？","目前项目已增加基于容器的沙盒功能（Sandbox）。该沙盒在一个 Docker 镜像中集成了本地 Spark、本地 Redis、本地 Jupyter Server 和本地 Feathr Registry。用户可以参考官方文档 https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002Fquickstart_local_sandbox.html 来试用该沙盒环境，无需单独配置本地 Spark 集群。","https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fissues\u002F770",{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},17642,"Feathr 读取 CSV 文件时如何自定义分隔符（delimiter）？","用户可以通过传递 Spark 配置选项来自定义 CSV 分隔符。具体做法是设置 `spark.feathr.inputFormat.csvOptions.sep` 参数。例如，在代码中通过 `sqlContext.getConf(\"spark.feathr.inputFormat.csvOptions.sep\", \",\")` 读取配置，默认值为逗号。用户需在执行配置（execution_configurations）中传入该 Spark 选项以指定其他分隔符。","https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fissues\u002F241",{"id":126,"question_zh":127,"answer_zh":128,"source_url":124},17643,"如何对 Feathr 中的 Scala 代码进行单元测试？","Feathr 项目使用 sbt 进行 Scala 代码的构建和测试。运行单元测试的命令是 `build\u002Fsbt test`。",{"id":130,"question_zh":131,"answer_zh":132,"source_url":124},17644,"如何更新 Feathr 的官方网站文档？","网站文档直接在此仓库中维护。只需更新对应的 Markdown 文件即可，无需额外的构建步骤来生成文档内容（具体发布流程可能由 CI\u002FCD 自动处理，但内容修改直接在 repo 中进行）。",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},17645,"使用 get_features_from_registry 无法获取所有已注册的特征，原因是什么？","根本原因不在 `get_features_from_registry` 方法，而在 `register_features()` 方法中。当对同一个特征锚点（feature anchor）进行第二次注册时，会覆盖原始的锚点数据，导致部分特征丢失。该问题已被确认为 Bug 并计划修复。","https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fissues\u002F263",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},17646,"Feathr 对特征名称（Feature Name）有什么命名规范或限制吗？","是的，特征名称必须遵循特定的命名约定和规则，否则会导致底层引擎（如 Spark 或存储系统）出错。项目已增加了对特征名称的验证逻辑（参见 PR #258），建议在定义特征时遵守这些规范，API 端也会返回相应的异常信息提示。","https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fissues\u002F227",[144,149,154,159,163,168,173,178,183,188,193,198,203,208,213],{"id":145,"version":146,"summary_zh":147,"released_at":148},107954,"v1.0.0","我们很高兴地宣布 Feathr 1.0.0 版本已发布，详情请参阅：https:\u002F\u002Ffeathr-ai.github.io\u002Ffeathr\u002Frelease-announcements\u002Fv1.0.0.html\n\n## 变更内容\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F872 中清理了一些指向 LinkedIn 的链接。\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F862 中将 Python 客户端的测试覆盖率检查集成到 GitHub 流水线中。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F818 中创建了关于如何更新 Feathr 客户端和注册表、以及如何传递凭据的文档。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F786 中向 pyproject.toml 添加了一个自定义的 pytest 标记配置。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F874 中修复了一个损坏的链接。\n* @aabbasi-hbo 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F836 中将 Snowflake 数据源单独拆分出来。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F838 中解耦了构建功能代码。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F794 中优化了示例、添加了实用工具，并修复了 xdist 测试错误。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F885 中为 get_result_df 方法添加了 'format' 参数。\n* @jaymo001 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F904 中修复了测试失败问题。\n* @Fendoe 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F909 中为 UI 添加了删除项目、特征和数据源的功能。\n* @jainr 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F908 中修复了 oncall 期间报告的 bug。\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F907 中将 'registry_utils' 从测试覆盖率中排除。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F912 中更新了 azure_resource_provision.json 文件。\n* @rakeshkashyap123 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F913 中排除了 Pegasus JAR 文件及发布版本。\n* @rakeshkashyap123 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F916 中显式排除了 Pegasus 数据文件。\n* @bozhonghu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F905 中修复了自动时区转换的 bug。\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F886 中支持在从注册表获取特征时打印特征并返回键值。\n* @jainr 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F927 中为 Web 应用设置添加了“持续部署”开关。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F923 中为客户端添加了 use_env_var 标志。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F931 中格式化了文档并添加了技术分享内容。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F929 中添加了 is_synapse() 方法。\n* @Yuqing-cat 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F935 中通过 Maven 更新操作发布了 Fat JAR。\n* @Yuqing-cat 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F928 中添加了“Spark 配置未生效”的相关内容。\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F919 中支持通过复合键获取在线特征。\n* @blrchen 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F938 中对 UI 代码实施了 React 最佳实践。\n* 修复了 NumPy 版本冲突。","2023-02-28T10:04:15",{"id":150,"version":151,"summary_zh":152,"released_at":153},107955,"v1.0.0-rc4","## 变更内容\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F872 中清理了一些指向 LinkedIn 的链接。\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F862 中将 Python 客户端的测试覆盖率检查集成到 GitHub 流水线中。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F818 中创建了关于如何更新 Feathr 客户端和注册表、以及如何传递凭据的文档。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F786 中向 pyproject.toml 添加了一个自定义的 pytest 标记配置。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F874 中修复了一个损坏的链接。\n* @aabbasi-hbo 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F836 中将 Snowflake 数据源分离出来。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F838 中解耦了构建功能代码。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F794 中优化了示例、添加了实用工具，并修复了 xdist 测试错误。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F885 中为 get_result_df 方法添加了 'format' 参数。\n* @jaymo001 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F904 中修复了测试失败问题。\n* @Fendoe 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F909 中为 UI 添加了删除项目、特征和数据源的功能。\n* @jainr 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F908 中修复了 oncall 期间报告的 bug。\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F907 中将 'registry_utils' 从测试覆盖率中排除。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F912 中更新了 azure_resource_provision.json 文件。\n* @rakeshkashyap123 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F913 中排除了 Pegasus JAR 文件和发布版本。\n* @rakeshkashyap123 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F916 中显式地排除了 Pegasus 数据文件。\n* @bozhonghu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F905 中修复了自动时区转换的 bug。\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F886 中支持在从注册表获取特征时打印特征并返回键值。\n* @jainr 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F927 中为 Web 应用程序设置添加了“持续部署”开关。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F923 中为客户端添加了 use_env_var 标志。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F931 中格式化了文档并添加了技术分享内容。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F929 中添加了 is_synapse() 方法。\n* @Yuqing-cat 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F935 中通过 Maven 更新操作发布了 Fat JAR。\n* @Yuqing-cat 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F928 中添加了“Spark 配置未生效”的相关内容。\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F919 中支持通过复合键获取在线特征。\n* @blrchen 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F938 中对 UI 代码进行了 React 最佳实践的实现。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F940 中修复了 numpy 版本与 PySpark 的冲突。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub 中添加了 Feathr 社区演讲的演示文稿。","2023-02-28T03:55:13",{"id":155,"version":156,"summary_zh":157,"released_at":158},107956,"v0.10.4-rc3","## 变更内容\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F872 中清理了一些指向 LinkedIn 的链接。\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F862 中将 Python 客户端的测试覆盖率检查集成到 GitHub 流水线中。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F818 中创建了关于如何更新 Feathr 客户端和注册表、以及如何传递凭据的文档。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F786 中向 pyproject.toml 添加了一个自定义的 pytest 标记配置。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F874 中修复了一个损坏的链接。\n* @aabbasi-hbo 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F836 中将 Snowflake 数据源分离出来。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F838 中解耦了构建功能代码。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F794 中优化了示例、添加了实用工具，并修复了 xdist 测试错误。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F885 中为 get_result_df 方法添加了 'format' 参数。\n* @jaymo001 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F904 中修复了测试失败问题。\n* @Fendoe 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F909 中为 UI 添加了删除项目、特征和数据源的功能。\n* @jainr 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F908 中修复了 oncall 期间报告的 bug。\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F907 中将 'registry_utils' 从测试覆盖率中排除。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F912 中更新了 azure_resource_provision.json 文件。\n* @rakeshkashyap123 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F913 中排除了 Pegasus JAR 文件和发布版本。\n* @rakeshkashyap123 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F916 中显式排除了 Pegasus 数据文件。\n* @bozhonghu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F905 中修复了自动时区转换的 bug。\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F886 中实现了从注册表获取特征时支持打印特征并返回键值的功能。\n* @jainr 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F927 中为 Web 应用程序设置添加了“持续部署”开关。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F923 中为客户端添加了 use_env_var 标志。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F931 中格式化了文档并添加了技术分享内容。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F929 中添加了 is_synapse() 方法。\n* @Yuqing-cat 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F935 中通过 Maven 更新操作发布了 Fat JAR。\n* @Yuqing-cat 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F928 中添加了“Spark 配置未生效”的相关内容。\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F919 中实现了通过复合键获取在线特征的功能。\n* @blrchen 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F938 中在 UI 代码中实施了 React 最佳实践。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F940 中修复了 numpy 版本与 PySpark 的冲突。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub","2023-01-17T08:52:15",{"id":160,"version":161,"summary_zh":152,"released_at":162},107957,"v0.10.4-rc2","2023-01-17T08:08:51",{"id":164,"version":165,"summary_zh":166,"released_at":167},107958,"v0.10.4-rc1","## 变更内容\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F872 中清理了一些指向 LinkedIn 的链接。\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F862 中将 Python 客户端的测试覆盖率检查集成到 GitHub 流水线中。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F818 中创建了关于如何更新 Feathr 客户端和注册表、以及如何传递凭据的文档。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F786 中向 pyproject.toml 添加了一个自定义的 pytest 标记配置。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F874 中修复了一个损坏的链接。\n* @aabbasi-hbo 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F836 中将 Snowflake 数据源分离出来。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F838 中解耦了构建功能代码。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F794 中优化了示例、添加了实用工具，并修复了 xdist 测试错误。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F885 中为 get_result_df 方法添加了 'format' 参数。\n* @jaymo001 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F904 中修复了测试失败问题。\n* @Fendoe 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F909 中为 UI 添加了删除项目、特征和数据源的功能。\n* @jainr 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F908 中修复了 oncall 期间报告的 bug。\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F907 中将 'registry_utils' 从测试覆盖率中排除。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F912 中更新了 azure_resource_provision.json 文件。\n* @rakeshkashyap123 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F913 中排除了 Pegasus JAR 文件和发布版本。\n* @rakeshkashyap123 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F916 中显式地排除了 Pegasus 数据文件。\n* @bozhonghu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F905 中修复了自动时区转换的 bug。\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F886 中支持在从注册表获取特征时打印特征并返回键值。\n* @jainr 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F927 中为 Web 应用程序设置添加了“持续部署”开关。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F923 中为客户端添加了 use_env_var 标志。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F931 中格式化了文档并添加了技术分享内容。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F929 中添加了 is_synapse() 方法。\n* @Yuqing-cat 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F935 中通过 Maven 更新操作发布了 Fat JAR。\n* @Yuqing-cat 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F928 中添加了“Spark 配置未生效”的内容。\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F919 中支持通过复合键获取在线特征。\n* @blrchen 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F938 中对 UI 代码实施了 React 最佳实践。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F940 中修复了 numpy 版本与 PySpark 的冲突。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub 中添加了 Feathr 社区分享的演示文稿。","2023-01-17T07:18:37",{"id":169,"version":170,"summary_zh":171,"released_at":172},107959,"v0.10.0-rc1","## 概述\n\n自 v0.10.0 版本起，Feathr 团队很高兴地推出在线转换功能（Alpha 版）。您可能希望在以下场景中尝试使用在线转换：\n\n- 用于转换的特征化源仅在推理时可用。\n- 使用离线转换预先计算特征可能会浪费存储和计算资源。\n- 将特征化工作从上游在线系统中解耦出来。\n- 编写 Python 程序以使用在线转换函数。\n\n**注意：** 请仅将 Alpha 版用于评估。Alpha 版旨在提供早期访问和反馈，其稳定性可能不如正式发布版，并且在正式发布之前可能会随时更改，恕不另行通知。请自行承担使用 Alpha 版的风险。\n\n## 在本地运行 Feathr 的在线转换\n\nFeathr 的在线转换可以通过 Docker 在本地运行。详细信息请参阅 [README](https:\u002F\u002Fgithub.com\u002Fwindoze\u002Fpiper\u002Fblob\u002Fmain\u002FREADME.md)。\n\n## 在 Azure 上运行 Feathr 的在线转换\n\n要将 Feathr 的在线转换部署到 Azure，您需要先在 Azure 上设置一个 AKS 集群。然后按照 [README](https:\u002F\u002Fgithub.com\u002Fblrchen\u002Ffeathr-helm-charts\u002Fblob\u002Fmain\u002FREADME.md) 中的说明，将 Helm Chart 部署到 AKS 集群。\n\n## 使用 Python 库\n\nFeathr 的在线转换还提供了一个 Python 库，供进一步开发使用。详细信息请参阅 [项目主页](https:\u002F\u002Fpypi.org\u002Fproject\u002Ffeathrpiper\u002F)。\n\n## 路线图\n\n- 定义一次转换逻辑，供在线和离线同时使用。\n- 注册表集成。\n- Java 库。\n\n## 补充说明\n\n在线转换（Alpha 版）的源代码目前托管在个人账户下。Feathr 团队正在努力将这些源代码迁移到官方仓库，但这可能需要一些时间。","2022-12-15T15:16:44",{"id":174,"version":175,"summary_zh":176,"released_at":177},107960,"v0.9.0","## 重大变更\n我们已将派生特征的执行引擎更改为 Spark SQL，这可能会对未运行最新示例笔记本的用户带来一些不兼容的变更。具体来说，他们可能会遇到如下错误：\n\n```python\nPreprocessed DataFrames are: \n{'feature_user_age,feature_user_gift_card_balance,feature_user_has_valid_credit_card,feature_user_tax_rate': JavaObject id=o243}\nTraceback (most recent call last):\n  File \"feathr_pyspark_driver.py\", line 107, in \u003Cmodule>\n    submit_spark_job(feature_names_funcs)\n  File \"feathr_pyspark_driver.py\", line 85, in submit_spark_job\n    py4j_feature_job.mainWithPreprocessedDataFrame(job_param_java_array, new_preprocessed_df_map)\n  File \"\u002Fhome\u002Ftrusted-service-user\u002Fcluster-env\u002Fenv\u002Flib\u002Fpython3.8\u002Fsite-packages\u002Fpy4j\u002Fjava_gateway.py\", line 1304, in __call__\n    return_value = get_return_value(\n  File \"\u002Fopt\u002Fspark\u002Fpython\u002Flib\u002Fpyspark.zip\u002Fpyspark\u002Fsql\u002Futils.py\", line 117, in deco\npyspark.sql.utils.AnalysisException: 未定义函数: 'toBoolean'。该函数既不是已注册的临时函数，也不是在数据库 'default' 中注册的永久函数；第 1 行，第 84 列\n)\n```\n\n用户应将以下代码：\n```python\nfeature_user_purchasing_power = DerivedFeature(name=\"feature_user_purchasing_power\",\n                                      key=user_id,\n                                      feature_type=FLOAT,\n                                      input_features=[\n                                          feature_user_gift_card_balance, feature_user_has_valid_credit_card],\n                                      transform=\"feature_user_gift_card_balance + if_else(toBoolean(feature_user_has_valid_credit_card), 100, 0)\")\n```\n修改为：\n```python\nfeature_user_purchasing_power = DerivedFeature(name=\"feature_user_purchasing_power\",\n                                      key=user_id,\n                                      feature_type=FLOAT,\n                                      input_features=[\n                                          feature_user_gift_card_balance, feature_user_has_valid_credit_card],\n                                      transform=\"feature_user_gift_card_balance + if(boolean(feature_user_has_valid_credit_card), 100, 0)\")\n```\n\n## 变更内容\n* @jaymo001 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F701 中修复了一个特征类型相关的 bug。\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F702 中修复了 Windows 环境下构建 wheel 包的问题。\n* @Yuqing-cat 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F700 中修复了 Purview+RBAC 注册表 Web 应用程序的相关问题。\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F696 中移除了文档中的硬编码资源。\n* @blrchen 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F689 中新增了针对 Purview 注册表和 RBAC 注册表的端到端测试。\n* @blrchen 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F706 中更新了测试，使用 Maven 构建的运行时 JAR 文件进行 Spark 提交，以覆盖 Databricks 环境。\n* @enya-yx 增强了 Databricks 提交的错误提示信息。","2022-11-01T12:42:12",{"id":179,"version":180,"summary_zh":181,"released_at":182},107961,"v0.8.0","### 亮点功能\n* UI：由 [@ahlag](https:\u002F\u002Fgithub.com\u002Fahlag) 在 [#620](https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F620) 中添加了数据源详情页\n* 添加 Aerospike Sink：由 [@YihuiGuo](https:\u002F\u002Fgithub.com\u002FYihuiGuo) 在 [#632](https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F632) 中实现\n* 本地 Spark 提供程序，用于在本地环境中提交特征关联作业：由 [@Yuqing-cat](https:\u002F\u002Fgithub.com\u002FYuqing-cat) 在 [#644](https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F644) 中实现\n\n### 改进\n* GitHub PR\u002FIssue 模板更新：由 @blrchen 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F642 中完成\n* 添加 Maven 发布自动化文档：由 @jainr 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F646 中完成\n* 在 README 中添加开源项目徽章：由 @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F649 中完成\n* 修复损坏的文档链接：由 @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F658 中完成\n* 添加 macOS 必需的 _scproxy：由 @ahlag 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F651 中完成\n* 添加在线环境消费特征的文档：由 @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F609 中完成\n* 迁入 LFAI 后的清理工作：由 @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F665 中完成\n* 更新 ARM 模板中的 Docker 版本，使用最新发布的标签镜像：由 @jainr 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F668 中完成\n* 添加更美观的文档：由 @ahlag 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F672 中完成\n* 移除 SBT 中对 Aerospike JAR 的引用：由 @YihuiGuo 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F680 中完成\n* 扩展 RBAC 以支持项目 ID 作为输入：由 @Yuqing-cat 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F673 中完成\n* 修复演示应用中 Docker 镜像未更新的问题：由 @jainr 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F686 中完成\n* 锁定 Python 依赖版本：由 @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F690 中完成\n* 将 'aggregation_features' 参数应用于合并 DataFrame：由 @enya-yx 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F667 中完成\n* 修复 RBAC 注册表中的数据源详情页：由 @Yuqing-cat 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F698 中完成\n* 修复锚点（直接权限）中的多键特征：由 @YihuiGuo 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F676 中完成\n* 修复带有 #LATEST 的路径：由 @jaymo001 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F684 中完成\n* 修复 Spark Executor 上的特征值适配器和 UDF 适配器：由 @jaymo001 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F660 中完成\n* 增强 SQL 注册表错误信息：由 @windoze 在 https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fpull\u002F674 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Ffeathr-ai\u002Ffeathr\u002Fcompare\u002Fv0.7.2...v0.8.0","2022-09-23T02:05:10",{"id":184,"version":185,"summary_zh":186,"released_at":187},107962,"v0.7.2","# 亮点功能\n* @windoze 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F475 中实现的 DataFrame 泛用输入输出功能，[了解更多](https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fblob\u002Fmain\u002Fdocs\u002Fhow-to-guides\u002Fjdbc-cosmos-notes.md)\n* @d4ve 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F507 中引入的 UDF 插件 API\n* UI：@blrchen 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F595 中新增的首页和项目列表页\n\n# 改进内容\n* @Yuqing-cat 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F535 中将访问控制管理 API 扩展至项目管理员\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F522 中处理 HTTP 响应中的 403 禁止错误\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F477 中修复了多处文档问题\n* @blee1234 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F542 中更新了发布到 Maven 的说明\n* @blee1234 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F531 中修复了 DataPathHandler 的 Bug\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F528 中添加了管理菜单栏\n* @hangfei 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F532 中改进了产品推荐笔记本\n* @Yuqing-cat 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F551 中扩展了访问控制注册表 API，以保护 `post` 类接口\n* @blrchen 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F550 中将 Feathr UI 实时演示部分移至根目录的 README.md\n* @blrchen 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F541 中更新了与注册表端点相关的文档\n* @esadler-hbo 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F555 中从 Databricks 配置模板中读取现有自定义标签\n* @blrchen 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F553 中修复了 FeatureJoinJob 参数未正确打印到 Spark 作业日志的问题\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F557 中清理了工作目录中的 Feathr UDF 状态和配置模板\n* @Yuqing-cat 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F563 中快速更新了 RBAC 文档及输入提示\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F534 中更新了 Feathr UI、注册表及架构的相关文档\n* @YihuiGuo 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F572 中增加了搭建 Aerospike 本地环境的指导\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F568 中澄清了 BackfillTime 的使用方法\n* UI：@blrchen 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F569 中在特征表中显示特征键列\n* @enya-yx 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F564 中优化了 Purview 搜索逻辑\n* @jainr 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F579 中修复了托管标识问题，从而允许 App Service 与 Azure Purview 之间的连接\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F574 中创建了与 Azure 机器学习相关的文档\n* @Yuqing-cat 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F571 中添加了 RBAC 概念文档\n* @xiaoyongzhu 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F573 中创建了代码结构\n* @YihuiGuu","2022-08-29T13:58:03",{"id":189,"version":190,"summary_zh":191,"released_at":192},107963,"v0.6.0","## 重点功能：\n\n- @blrchen 在 #379 中实现了基于 Docker 镜像的 UI 和注册表后端的容器化部署\n- @windoze 在 #311 中实现了 SQL 后端的功能注册表服务\n- @YihuiGuo 在 #404 中实现了 Purview 后端的功能注册表服务\n- @blrchen 在 #303 中开发了带有注册表 API 后端的 Feathr UI\n- @jainr 在 #398 和 #443 中修复了多个 bug，并改进了文档，使部署更加简便\n- @Yuqing-cat 在 #409 中为注册表 API 添加了项目级别的访问控制\n- @t-curiekim 在 #515 中新增了一个欺诈检测示例\n\n## 改进：\n- @windoze 在 #211 中实现了从 Maven 提交 Feathr JAR 的功能\n- @blrchen 和 @t-curiekim 在 #427、#440、#491 和 #455 中对 UI 样式进行了优化\n- @xiaoyongzhu 和 @Yuqing-cat 在 #447、#403、#454 和 #383 中更新了文档并去除了重复内容\n- @donegjookim 和 @blrchen 在 #483 和 #502 中配置了 ESLint 和 Prettier，并将其检查集成到 GitHub Actions 流程中\n\n## 新贡献者\n* @iemejia 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F346 中完成了首次贡献\n* @shivamsanju 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F400 中完成了首次贡献\n* @t-curiekim 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F455 中完成了首次贡献\n* @donegjookim 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F479 中完成了首次贡献\n* @enya0405 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F501 中完成了首次贡献\n* @SangamSwadiK 在 https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F510 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fcompare\u002Fv0.5.1...v0.6.0","2022-07-29T19:05:49",{"id":194,"version":195,"summary_zh":196,"released_at":197},107964,"v0.5.1","## Highlighted Features:\r\n\r\nThis release contains a lot of important bug fixes and new features.\r\n\r\n## Features\r\n\r\n* Feathr Web UI MVP by @blrchen in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F216\r\n* Enable get features from registry by @YihuiGuo in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F187\r\n* Add API to materialize features to offline store by @hangfei in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F294\r\n* Enable key vault as secret source by @Yuqing-cat in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F141\r\n* Added feature validation by @lhayhurst in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F258\r\n\r\n\r\n## Improvements:\r\n* Improve error message when path is not supported by @xiaoyongzhu in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F257\r\n* Yihui\u002Fmoderate registration conflict by @YihuiGuo in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F304\r\n* Add extensible extractor APIs by @jaymo001 in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F302\r\n* Setting up Maven by @blee1234 in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F205\r\n\r\n\r\n## Full Changelog\r\n* Update README.md by @hangfei in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F213\r\n* Fix Redis suffix problem for snowflake by @Yuqing-cat in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F159\r\n* [Ready to Merge] Enable key vault as secret source by @Yuqing-cat in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F141\r\n* [Urgent] Fix previous key vault PR typo by @Yuqing-cat in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F223\r\n* Update README to reflect doc changes by @xiaoyongzhu in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F212\r\n* Feathr Web UI MVP by @blrchen in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F216\r\n* Setting up Maven by @blee1234 in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F205\r\n* Fix ui workflow deployment fails with error: The content server has unexpectedly rejected the request with: LengthRequired by @blrchen in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F228\r\n* Enable get features from registry by @YihuiGuo in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F187\r\n* Remove ui ci\u002Fcd workflow by @blrchen in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F229\r\n* Missing required options by @windoze in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F113\r\n* Improve Feature Registry Usability by @xiaoyongzhu in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F230\r\n* Changing illegal key vault secret name by @adityakaul in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F233\r\n* #236 Missing brackets by @windoze in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F237\r\n* Yihui\u002Fapi demo by @YihuiGuo in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F142\r\n* Dockerize feathr web ui app by @blrchen in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F245\r\n* Fix test_feathr_register_features_e2e by @YihuiGuo in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F249\r\n* Added installing librdkafka section by @lhayhurst in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F244\r\n* Fix another CI test by @YihuiGuo in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F252\r\n* #51 Show error log on job failure by @windoze in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F218\r\n* moved azure ad config to a .env file for better overriding by @chinmaytredence in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F259\r\n* Feathr UI: redesign site header by @blrchen in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F260\r\n* Pretty-print the features produced by buildFeatures  by @ahlag in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F214\r\n* Reduce feathr web api docker image build time by @blrchen in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F261\r\n* Feathr UI: enable multiple tenant auth by @blrchen in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F266\r\n* Feathr UI: Display feature key and transform expression in feature detail pages by @blrchen in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F262\r\n* Added feature validation by @lhayhurst in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F258\r\n* Fix test failure by @xiaoyongzhu in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F276\r\n* Fixing a broken link in README.md by @d4ve in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F277\r\n* [BUG] Fixed dependecy problem of pretty print utils by @ahlag in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F273\r\n* Consolidating CI pipelines by @jainr in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F280\r\n* Fix millisecond timestamp handling by @jaymo001 in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F288\r\n* Add milestone link by @xiaoyongzhu in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F286\r\n* Add tech talk slides for Feathr by @xiaoyongzhu in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F296\r\n* Improve error message when path is not supported by @xiaoyongzhu in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F257\r\n* [feathr] Add API to materialize features to offline store by @hangfei in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F294\r\n* Add extensible extractor APIs by @jaymo001 in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F302\r\n* Update homepage by @xiaoyongzhu in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F310\r\n* Yihui\u002Fmoderate registration conflict by @YihuiGuo in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F304\r\n* [Feathr] Add a example for product recommendation by @hangfei in https:\u002F","2022-07-29T18:39:01",{"id":199,"version":200,"summary_zh":201,"released_at":202},107965,"v0.4.0","In this release, we have accomplished:\r\n1. Feature streaming. Now you can transform your raw data from a streaming source and ingest the features into your online store in a much faster way compared with offline ingestion.\r\n2. A lot of improvements on our documentation, including [Feathr Concepts for Beginners](https:\u002F\u002Flinkedin.github.io\u002Ffeathr\u002Fconcepts\u002Ffeathr-concepts-for-beginners.html) and [Python API documentation](https:\u002F\u002Ffeathr.readthedocs.io\u002Fen\u002Flatest\u002F).\r\n3. Improved new user installation and onboarding experiences.\r\n\r\n## Highlighted Changes\r\n* Add streaming support by @jaymo001  in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F137\r\n* Python API documentation is available now at https:\u002F\u002Ffeathr.readthedocs.io\u002Fen\u002Flatest\u002F by @hangfei  in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F194 and https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F198\r\n* Add Customer360 view notebook sample for easier user onboarding in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F132\r\n* Lay foundation for FeatureRegistry APIs by @jainr  https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F99\r\n* Use Databrics CLI to replace the Rest API for easier installation @xiaoyongzhu  https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F180\r\n\r\n## New Community Contributors\r\n* @Dongbumlee made their first contribution in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F130\r\n* @chinmaytredence  made their first contribution in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F132\r\n* @blee1234 made their first contribution in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F148\r\n* @ahlag made their first contribution in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F188\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fcompare\u002Fv0.3.0...v0.4.0","2022-05-03T02:53:39",{"id":204,"version":205,"summary_zh":206,"released_at":207},107966,"v0.3.0","In this release, we have added:\r\n1. PySpark UDF preprocessing. Now users can define UDFs with all the capabilities that PySpark has. \r\n2. Enhanced Feature Registry experience. Note: users might need to manually update the feature definitions in the purview service. This is a one-time work and future updates will be backward compatible.\r\n3. Added one-click Azure resource provision and deployment. Users can deploy resources with Azure template.\r\n4. Supported Delta Lake and more formats as input\u002Foutput format.\r\n5. Bug fixes and documentation improvement. \r\n\r\n## Highlighted Changes\r\n* Fix register features by @tarockey in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F87\r\n* Add support for Delta Lake by @xiaoyongzhu in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F95\r\n* Adding Pyspark UDF support by @hangfei in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F107\r\n* One click deployment for Feathr on Azure by @xiaoyongzhu in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F116\r\n* Rewrite feature registry with new Pythonic APIs and add tagging support by @xiaoyongzhu in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F105\r\n\r\n## New Contributors\r\n* @tarockey made their first contribution in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F87\r\n* @windoze made their first contribution in https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fpull\u002F101\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Flinkedin\u002Ffeathr\u002Fcompare\u002Fv0.2.1...v0.3.0","2022-04-12T06:03:15",{"id":209,"version":210,"summary_zh":211,"released_at":212},107967,"v0.2.1","Based on popular demand, we are\r\n\r\n- Adding Python API to define features, join features and deploy features\r\n- Further enhance notebook experiences\r\n- Bug fixes.","2022-03-23T06:26:44",{"id":214,"version":215,"summary_zh":216,"released_at":217},107968,"v0.1.0","Hello world!\r\nWe are excited to announce Feathr public preview release v0.1.0.\r\nPlease try it out and join our community. We are looking forward to hearing feedback from you!","2022-03-07T07:43:40",[219,229,238,246,254,265],{"id":220,"name":221,"github_repo":222,"description_zh":223,"stars":224,"difficulty_score":63,"last_commit_at":225,"category_tags":226,"status":102},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[82,227,228],"图像","Agent",{"id":230,"name":231,"github_repo":232,"description_zh":233,"stars":234,"difficulty_score":101,"last_commit_at":235,"category_tags":236,"status":102},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,"2026-04-05T11:33:21",[82,228,237],"语言模型",{"id":239,"name":240,"github_repo":241,"description_zh":242,"stars":243,"difficulty_score":101,"last_commit_at":244,"category_tags":245,"status":102},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[82,227,228],{"id":247,"name":248,"github_repo":249,"description_zh":250,"stars":251,"difficulty_score":101,"last_commit_at":252,"category_tags":253,"status":102},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[82,237],{"id":255,"name":256,"github_repo":257,"description_zh":258,"stars":259,"difficulty_score":101,"last_commit_at":260,"category_tags":261,"status":102},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[227,84,262,263,228,83,237,82,264],"视频","插件","音频",{"id":266,"name":267,"github_repo":268,"description_zh":269,"stars":270,"difficulty_score":63,"last_commit_at":271,"category_tags":272,"status":102},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[228,227,82,237,83]]