Doris4.x中的AI功能-相关实战介绍

📅 2026/6/27 6:11:59
Doris4.x中的AI功能-相关实战介绍
AI 概述Apache Doris 是一款高性能、实时分析型数据库深度融合文本搜索、向量搜索、AI 函数与 MCP 智能交互能力构建从数据存储、检索到分析的完整 AI 数据栈为 AI 应用提供一体化的数据基础设施。下表列出常见 AI 场景与 Doris 提供的对应能力帮助快速定位适合的方案。Agent Facing Analytics随着 AI Agent 技术兴起越来越多的分析决策由 AI 自动完成这要求数据平台具备极致的实时性与高并发能力。与传统人工分析不同Agent Facing Analytics 需要在毫秒级完成数据查询和决策支持海量 Agent 的并发访问。典型场景包括实时反欺诈检测、智能广告投放、个性化推荐等。Doris MCP Server 类似于给 Agent 提供工具的。Agent 只需要告诉 doris 你需要做什么它就会选择性的执行某个工具。Hybrid混合 Search and Analytics Processing结构化查询非结构化查询以及文本查询 多种组合均支持。结构化数据 有行有列的数据非结构化数据数据不是按照行列这种存储 json(半结构化)Lakehouse湖仓一体 for AIAI 模型与应用开发需要从海量数据中准备训练集、进行特征工程、评估数据质量传统架构往往需要在数据湖和分析引擎间频繁迁移数据。Lakehouse 架构将数据湖的开放存储与实时分析引擎深度融合在统一平台上支撑数据准备、特征工程与模型评估的全流程消除数据孤岛加速 AI 开发迭代。只用一份原始数据存在数据湖上不用复制迁移分析引擎Doris 这类仓库引擎直接读取湖上的数据做高速查询一套存储兼顾 “海量存储”“极速分析”。数据仓库存储各种文本数据只是数据来源比较多比如 mysql oracle redis 日志 将多个项目中的数据全部导入进来进行数据分析数仓湖 结构化库表、半结构化JSON/CSV/Parquet、非结构化图片、音视频、日志、文档全部兼容 这个概念比数据仓库大做数据湖比较有名的技术有Iceberg、Paimon火架构特性湖仓一体基于开放湖表格式如 Iceberg、Paimon 等和 Catalog 构建开放湖仓统一管理分析数据与 AI 数据极速 SQL 引擎Doris 作为实时分析引擎支持交互式查询与轻量级 ETL为数据准备和特征工程提供高效的 SQL 计算能力无缝数据流转直接读写数据湖无需数据搬迁存储层统一管理计算层灵活加速RAGRetrieval-Augmented GenerationRAG 大模型 外部数据库dorisRAG 通过从外部知识库检索相关信息为大模型提供上下文有效解决模型幻觉与知识时效性问题。向量引擎是 RAG 系统的核心组件需要在海量知识库中快速召回最相关的文档片段同时支持高并发的用户查询请求确保应用响应体验。典型应用企业知识库基于内部文档、手册构建智能问答系统员工通过自然语言快速获取准确答案智能客服助手结合产品知识库与历史案例为客服人员或聊天机器人提供精准的回复建议智能文档助手在大规模文档集合中快速定位相关内容辅助研究、写作与决策过程Doris 构建 RAG 的优势高并发性能分布式架构支持高并发向量检索轻松应对大规模用户并发访问混合检索能力在单条 SQL 中同时执行向量相似度搜索与关键词过滤兼顾语义召回和精确匹配弹性扩展随集群扩容线性提升检索性能从百万到百亿级向量无缝平滑过渡一体化方案统一管理向量数据、原始文档与业务数据简化 RAG 应用的数据架构AI Observability(可观察性) 【之前这个功能是 ELK 干的】将 AI 运行或者训练中产生的大量日志存储到 doris 中便于后期观察或者排错定位问题AI 模型训练迭代与应用运行过程中会产生海量日志、指标和追踪数据。为精准定位问题、持续优化性能可观测性系统成为 AI 基础设施的关键一环。随着业务规模扩张可观测平台面临 PB 级数据的高吞吐写入、毫秒级检索响应和成本控制的多重挑战。典型用例模型训练监控实时追踪训练指标、资源消耗快速定位训练异常与性能瓶颈推理服务追踪记录每次推理请求的完整链路分析延迟来源与错误模式AI 应用日志分析海量应用日志的全文检索与聚合分析支持故障排查和行为洞察Semantic语义 Search语义搜索通过向量化技术捕捉文本深层含义即使查询词与文档用词不同也能召回语义相关的内容。这对跨语言检索、同义词识别、意图理解等场景至关重要可显著提升搜索的召回率和用户体验。语义搜索的意思是使用自然语言搜索相关的数据之前这个事情是问的大模型的产品比如 deepseek,豆包数据库现在是 doris 集成了大模型典型用例企业文档检索员工用自然语言描述问题系统理解意图后从海量文档中召回语义相关的政策、流程与知识电商商品搜索用户输入适合夏天穿的透气鞋子系统理解需求并召回相关产品而非仅匹配关键词内容推荐平台基于文章、视频的语义相似度进行智能推荐发现用户可能感兴趣但用词不同的内容Doris 构建语义搜索的优势高性能向量检索支持 HNSW 与 IVF 算法亿级向量亚秒级响应轻松应对大规模语义搜索需求混合检索增强单条 SQL 融合语义搜索与关键词过滤在召回语义相关内容的同时确保必要词汇命中多模态扩展不仅支持文本语义搜索还可扩展至图片、音频等多模态内容的语义检索灵活量化优化通过 SQ/PQ 量化技术在保证检索精度的前提下大幅降低存储和计算成本AI 函数Apache Doris AI 函数是一组在 SQL 中直接调用外部大语言模型LLM完成文本智能分析的内置函数。无需将数据导出到外部应用分析师即可在数据库内部完成文本分类、信息提取、情感分析、语法纠错、内容生成、敏感信息脱敏、相似度计算、摘要、翻译以及跨行聚合等任务。步骤 1创建 AI 资源DeepSeekdrop resource deepseek_example3; CREATE RESOURCE deepseek_example3 PROPERTIES ( type ai, ai.provider_type deepseek, ai.endpoint https://api.deepseek.com/chat/completions, ai.model_name deepseek-chat, ai.api_key 自己的api-key );步骤 2设置默认资源可选设置默认资源后调用 AI 函数时无需显式指定资源名称SET default_ai_resource deepseek_example3;步骤 3在 SQL 中调用 AI 函数示例 1基于语义评分的相关性筛选假设存在如下数据表其中存储了与数据库相关的文档内容CREATE TABLE doc_pool ( id BIGINT, c TEXT ) DUPLICATE KEY(id) DISTRIBUTED BY HASH(id) BUCKETS 10 PROPERTIES ( replication_num 1 );筛选与 Apache Doris 相关性最高的 10 条记录SELECT c, CAST(AI_GENERATE(CONCAT( Please score the relevance of the following document content to Apache Doris, , with a floating-point number from 0 to 10, output only the score. Document:, c )) AS DOUBLE) AS score FROM doc_pool ORDER BY score DESC LIMIT 10;该查询会让大模型为每条文档与 Apache Doris 的相关性打分并按分数降序返回前 10 条结果---------------------------------------------------------------------------------------------------------------------- | c | score | ---------------------------------------------------------------------------------------------------------------------- | Apache Doris is a lightning-fast MPP analytical database that supports sub-second multidimensional analytics. | 9.5 | | In Doris, materialized views can automatically route queries, saving significant compute resources. | 9.2 | | Doriss vectorized execution engine boosts aggregation query performance by 5–10×. | 9.2 | | Apache Doris Stream Load supports second-level real-time data ingestion. | 9.2 | | Doris cost-based optimizer (CBO) generates better distributed execution plans. | 8.5 | | Enabling the Doris Pipeline execution engine noticeably improves CPU utilization. | 8.5 | | Doris supports Hive external tables for federated queries without moving data. | 8.5 | | Doris Light Schema Change lets you add or drop columns instantly. | 8.5 | | Doris AUTO BUCKET automatically scales bucket count with data volume. | 8.5 | | Using Doris inverted indexes enables second-level log searching. | 8.5 | ----------------------------------------------------------------------------------------------------------------------示例 2候选人简历与岗位需求的语义匹配模拟招聘场景中的候选人简历表与岗位需求表CREATE TABLE candidate_profiles ( candidate_id INT, name VARCHAR(50), self_intro VARCHAR(500) ) DUPLICATE KEY(candidate_id) DISTRIBUTED BY HASH(candidate_id) BUCKETS 1 PROPERTIES ( replication_num 1 ); CREATE TABLE job_requirements ( job_id INT, title VARCHAR(100), jd_text VARCHAR(500) ) DUPLICATE KEY(job_id) DISTRIBUTED BY HASH(job_id) BUCKETS 1 PROPERTIES ( replication_num 1 ); INSERT INTO candidate_profiles VALUES (1, Alice, I am a senior backend engineer with 7 years of experience in Java, Spring Cloud and high-concurrency systems.), (2, Bob, Frontend developer focusing on React, TypeScript and performance optimization for e-commerce sites.), (3, Cathy, Data scientist specializing in NLP, large language models and recommendation systems.); INSERT INTO job_requirements VALUES (101, Backend Engineer, Looking for a senior backend engineer with deep Java expertise and experience designing distributed systems.), (102, ML Engineer, Seeking a data scientist or ML engineer familiar with NLP and large language models.);通过 AI_FILTER 对岗位需求与候选人简介进行语义匹配筛选出合适的候选人SELECT c.candidate_id, c.name, j.job_id, j.title FROM candidate_profiles AS c JOIN job_requirements AS j WHERE AI_FILTER(CONCAT( Does the following candidate self-introduction match the job description?, Job: , j.jd_text, Candidate: , c.self_intro ));ERROR 1105 (HY000): errCode 2, detailMessage Can not build function: AI_FILTER, expression: AI_FILTER(concat(Does the following candidate self-introduction match the job description?, Job: , jd_text, Candidate: , self_intro)), Please specify the AI Resource in argument or session variable.使用 Datagrip 不支持 AI 语法需要在黑窗口运行此语句如果报以上错误需要先执行AI ResourceSET default_ai_resource deepseek_example3; 此处的这个名字一定要跟你创建的Resource的名字一样否则也报错假如报如下错误ERROR 1105 (HY000): errCode 2, detailMessage (hadoop12)[HTTP_ERROR]error setting certificate verify locations: CAfile: /etc/ssl/certs/ca-certificates.crt CApath: none, urlhttps://api.deepseek.com/v1/说明是 CA 证书的问题(目前无解一直报证书错误找不到)在 所有节点上安装证书curl https://curl.se/ca/cacert.pem -o /etc/ssl/certs/ca-certificates.crt chmod 644 /etc/ssl/certs/ca-certificates.crt返回结果----------------------------------------------- | candidate_id | name | job_id | title | ----------------------------------------------- | 1 | Alice | 101 | Backend Engineer | | 3 | Cathy | 102 | ML Engineer | ----------------------------------------------- 2 rows in set (6.07 sec)