文本即数据,从任何地方到任何地方
**引言**
2024年3月,我们在旧金山非结构化数据聚会上听到了AJ Steers的演讲,他讲述了我们如何利用Airbyte和PyAirbyte将文本作为数据,从任何地方到任何地方。这意味着我们可以整合和利用来自不同平台的各种来源的结构化和非结构化数据。
AJ Steers演讲的YouTube回放链接:在YouTube上观看。
**谁是AJ Steers,为什么你应该关心统一数据集成?**
AJ Steers是一位经验丰富的架构师、数据工程师、软件开发者和数据运维专家。他在亚马逊设计了端到端解决方案,并为量化自我数据模型创造了愿景。目前,他是Airbyte的一名员工软件工程师。
统一数据集成将不同类型的数据和来源合并到一个单一、连贯的系统中,以便进行有效的分析和处理。这种能力对于充分发挥你的数据潜力至关重要,确保在各种平台和应用程序中无缝访问和利用。正如AJ所说,“我们比以往任何时候都更被可用数据所包围”,现在关键是机会成本。我们有多少时间可以从源头获取我们认为可能有价值的数据?
让我们深入AJ关于“文本即数据,从任何地方到任何地方”的演讲,了解Airbyte。
**Airbyte支持的源和目的地的扩展**
到目前为止,Airbyte的重点是提供可靠性、灵活的部署选项和强大的连接器库,以确保传统表格数据的无缝数据集成。但是非结构化数据呢?AJ谈到了过去六个月Airbyte团队的进展。
在过去的六个月里,从2024年3月开始,Airbyte已经扩展了其能力,除了传统的表格数据源,还涵盖了非结构化数据源。这是由于非结构化数据在当今数据生态系统中日益增长的重要性和普遍性。这种扩展使Airbyte不仅涵盖了SQL类型和文件类型目的地,还涵盖了像Milvus这样的向量数据库目的地,确保我们可以在各种应用程序中有效利用数据。让我们看看Airbyte支持的一些连接器,这些连接器适用于结构化和非结构化数据源。
Airbyte支持超过350个连接器,因此我们无法列出所有连接器。但是AJ分享的上述幻灯片显示了每个源和目的地类别的示例连接器。到目前为止,我们一直在讨论非结构化数据以及Airbyte如何扩展以支持它们。但是这些数据在现实世界中的例子是什么?
想想你正在阅读的这篇博客,它是以表格形式排列的吗?它是非结构化数据的典型例子,由不适合整齐排列在行和列中的文本组成。非结构化数据指的是不存储在传统行-列数据库中的信息。它包括文本、图像、视频和社交媒体帖子等数据。让我们看看AJ在下面的幻灯片中分享的一些非结构化数据。
有了这种数据和Airbyte在消费方面的帮助,不同的社区对Airbyte有不同的期望。
**通用开发人员**:希望与其他生态系统工具和范式进行简化集成。
**数据科学家**:希望在Jupyter笔记本中运行的库,与中央数据仓库解耦。
**数据工程师**:希望采用代码即流程的方法,能够运行CI测试流程,并实现无摩擦开发。
**开发人员**:希望先在本地构建和迭代,然后部署。
这表明我们都想要优秀的库、良好的互操作性和更多的控制。但它归结于你想要什么。我们中的一些人想要一些我们可以编码和控制的东西,而其他人则喜欢技术性较低并使用用户界面。传统上,这使我们走上了完全不同的道路。Airbyte正试图打破这些障碍,让任何能够运行和编写Python代码的人,或者任何可以使用PyAirbyte复制粘贴几行代码的人都能够使用。让我们看看PyAirbyte是什么以及它的优点。
**介绍PyAirbyte**
PyAirbyte是一个Python库,它提供了一个与Airbyte交互的接口。它允许我们使用Python控制和管理我们的Airbyte实例。把它想象成将Airbyte的力量带给每一个Python开发者。
**PyAirbyte的优点**
- **随处运行**:我们可以在Jupyter笔记本中运行PyAirbyte,与任何数据仓库解耦。这意味着我们可以在许多环境中使用它,不仅仅是那些与特定数据仓库绑定的环境,给我们提供了在最适合我们需求的环境中工作的灵活性。
- **减少价值实现时间**:有了PyAirbyte,我们可以在部署之前在本地构建和迭代数据流程。这使我们能够测试和完善我们的流程,确保它们按预期工作,这有助于减少从数据中获取有价值见解所需的时间。
- **快速原型设计**:PyAirbyte不需要用户界面或注册,所以我们可以立即开始用代码定义我们的数据流程。这加快了原型设计过程。
- **灵活性**:我们可以将PyAirbyte与我们生态系统中的工具和框架一起使用。这意味着我们可以将其与我们已经使用的其他工具集成,使其更容易融入我们现有的工作流程和流程中。
现在,让我们深入了解如何在几个步骤中开始使用Airbyte和PyAirbyte。
**UI和代码演示**
AJ深入演示了如何使用Airbyte的托管版本(无代码方法)和PyAirbyte(最小代码方法)将我们的数据源与数据目的地集成。
**UI方法演示**
对于那些更喜欢点击按钮而不是输入代码的人来说,UI方法是梦想成真。这就像是你最喜欢的电子游戏中的“简单模式”。由于我们已经详细介绍了如何使用Airbyte的托管版本连接数据源和目的地,这里我们将保持简洁。相关文章超越了集成部分,并向我们展示了如何使用建立的连接构建现实世界应用程序。
使用无代码方法连接数据源和数据目的地涉及四个主要步骤。
1. 注册或登录你的Airbyte账户。当你注册时,你将获得14天的试用期。
2. 配置数据源。
3. 配置数据目的地。
4. 在源和目的地之间创建连接。
当连接建立后,你就可以使用你的数据了。如果你像我一样是一个代码极客,更喜欢代码方法,PyAirbyte可以满足你的需求。
要查看Airbyte支持的所有连接器的可视化,请查看支持的连接器页面。但如果你的源连接器不受支持呢?那么你需要构建你自己的自定义连接器。别担心,这并不像听起来那么难。你只需要按照这个指南,因为Airbyte提供了一个无代码连接器构建器,让我们在不到10分钟内构建连接器。
**步骤2:**
使用set_config()配置我们的源。
**步骤3:**
使用read()函数读取数据。
互操作选项允许我们将获取的数据转换为最适合我们用例的不同数据结构。这完成了三步过程。然而,并不是必须独立遵循三个步骤来获取数据。Airbyte支持一步过程来实现相同的结果。
**使用PyAirbyte单步获取数据**
这是速通版本。它涉及将所有三个步骤合并为一个步骤。
这段代码在单个步骤中执行所有三个操作。它创建源,配置它,最后读取数据。现在你可以使用互操作选项将获取的数据转换为不同的数据结构,就像我们之前做的那样。但如果你想从表格数据生成LLM文档,下一节将向你展示如何操作。
**从表格数据生成LLM文档**
如果你想让你的数据与LangChain兼容,你需要将其转换为LLM文档。然后,你可以使用这些文档进行各种自然语言处理任务,例如问答、摘要或文本生成。
这段代码将获取GitHub问题并以文档形式呈现。然后,它将文档标题设置为问题的标题,
并将文档内容设置为问题正文。接着,它使用`rich`库将文档以Markdown格式打印到控制台。
**在Airbyte和PyAirbyte之间选择**
如果你想要一个无代码到向量存储的方法,可以选择托管版本。如果你想要最小代码控制,可以选择PyAirbyte。AJ断言,理论上任何由虚拟环境支持的Python运行环境,PyAirbyte都可以运行。我整理了一个表格来帮助你决定哪种方法适合你。
**标准**
标准 | Airbyte (UI/托管) | PyAirbyte |
方法 | 无代码 | 代码/Python |
安装 | 简单的注册流程 | 需要Python编码技能 |
用户界面 | 提供用户友好的界面 | 没有用户界面,基于代码 |
数据集成 | 适合传统和现代数据集成任务(非结构化数据、向量数据库等) | 适合传统和现代数据集成任务(非结构化数据、向量数据库等) |
灵活性 | 仅限于UI中提供的选项 | 高度灵活,可以与其他Python工具和框架集成 |
环境 | 托管环境 | 可以在任何Python环境中运行(例如,Jupyter Notebook,本地机器) |
部署 | 将数据管道部署到Airbyte的托管环境 | 基于代码的部署可以与CI/CD管道集成 |
原型设计 | 适合非技术用户或快速原型设计 | 适合技术用户和快速原型设计 |
比较之后,你可以选择自己的冒险之旅。
**PyAirbyte的即将推出功能**
PyAirbyte仍在测试阶段。因此,目前它不支持完整的目的地,也就是说它没有将向量存储作为目的地,但我们可以将它们传递给LangChain。AJ分享了我们今年应该从PyAirbyte团队期待的一些内容:PyAirbyte的下一步是什么?
**2024年第二季度计划:**
- 改进对Python 3.9和3.11的支持
- 增加Windows支持
- 改进配置源的API
- 启用与Airbyte Cloud、OSS和企业版本的互操作性
**2024年下半年计划:**
- 增加对逆向ETL的支持
- 增加对向量存储目的地的支持
- 增加对发布类型目的地的支持
如果你想提供反馈和报告错误,可以考虑在PyAirbyte的GitHub页面上打开一个问题。
**结论**
无论你偏好无代码还是最小代码方法,Airbyte和PyAirbyte都为整合结构化和非结构化数据提供了强大的解决方案。AJ Steers很好地描绘了这些工具在革新数据工作流程中的潜力。想要了解更多信息,请查看下面的资源,并开始你的旅程,利用文本作为数据,从任何地方到任何地方。
**更多资源**
- [使用Milvus和Airbyte进行所有数据的相似性搜索](https://zilliz.com/blog/use-milvus-and-airbyte-for-similarity-search-on-all-your-data)
- [Zilliz介绍UPSERT Kafka连接器和Airbyte集成](https://zilliz.com/blog/zilliz-introduces-upsert-kafka-connector-and-airbyte-integration)
- [PyAirbyte快速入门笔记本](https://github.com/airbytehq/quickstarts/tree/main/pyairbyte_notebooks)
- [AJ Steers演讲的YouTube回放链接](https://www.youtube.com/watch?v=)