当前位置: 首页 > article >正文

doris 根据文件夹id,一条sql语句获取到它本身及所有子文件、孙文件

取决于 Apache Doris 的版本。Apache Doris 是基于 MySQL 协议开发的 MPP 架构 OLAP 数据库。它的 SQL 兼容性在近年来提升很快但递归查询的支持情况如下1. 核心结论Doris 2.0 及以上版本支持。可以使用WITH RECURSIVE语法与 MySQL 8.0 类似。Doris 1.x 版本不支持。旧版本不支持递归 CTE。方案一使用递归 CTE (适用于 Doris 2.0)如果你的 Doris 集群版本较新建议 2.0.0 以上语法与 MySQL 8.0 完全一致。前提表结构为邻接表模型id,parent_id。WITH RECURSIVE FolderTree AS ( -- 1. 锚点查询起始文件夹 SELECT id, parent_id, name, 0 AS depth FROM folders WHERE id 100 -- 替换为你的文件夹 ID UNION ALL -- 2. 递归查询子节点 SELECT f.id, f.parent_id, f.name, ft.depth 1 FROM folders f INNER JOIN FolderTree ft ON f.parent_id ft.id ) SELECT * FROM FolderTree;注意事项版本检查在执行前请确认SHOW VERSION;确保是 2.0。性能警告Doris 是OLAP分析型数据库擅长海量数据聚合不擅长这种点查 递归的 OLTP事务型场景。如果文件夹层级非常深例如超过 100 层或数据量极大递归查询可能会导致 FE前端节点负载过高或查询超时。递归深度限制Doris 内部可能有递归深度限制如果层级过深可能会报错。方案二路径枚举法 (推荐用于 Doris)这是在 Doris 中更推荐的方案。由于 Doris 的设计初衷是加速分析查询避免在查询时进行复杂的递归计算是最佳实践。通过在写入时维护好path字段查询时只需一次简单的LIKE匹配性能远好于递归 CTE。1. 表结构建议增加一个path字段存储从根到当前节点的所有 ID 路径。CREATE TABLE folders ( id BIGINT, parent_id BIGINT, name VARCHAR(255), path VARCHAR(2048), -- 例如,1,5,100, INDEX idx_path (path) -- Doris 支持前缀索引或倒排索引优化 LIKE ) ENGINEOLAP DUPLICATE KEY(id) DISTRIBUTED BY HASH(id) BUCKETS 10;2. 数据示例根节点 (ID 1):path ,1,子节点 (ID 5):path ,1,5,孙节点 (ID 100):path ,1,5,100,3. 查询语句假设你要查 ID 为100的文件夹及其所有子孙。首先你需要知道100的path是,1,5,100,。-- 方法 A: 如果你已知该节点的路径 SELECT * FROM folders WHERE path LIKE ,1,5,100,%; -- 方法 B: 如果你只知道 ID不知道路径可以结合子查询 (依然是一条 SQL) SELECT * FROM folders WHERE path LIKE ( SELECT CONCAT(path, %) FROM folders WHERE id 100 );为什么在 Doris 中推荐方案二性能极高LIKE prefix%可以利用索引避免递归计算开销。兼容性好支持所有 Doris 版本包括 1.x。符合 OLAP 特性将计算复杂度从“读时”转移到了“写时”插入/更新文件夹时维护 path更适合 Doris 的批量写入和快速查询模型。总结建议场景推荐方案原因Doris 2.0 且层级浅WITH RECURSIVE语法标准无需改表结构适合临时查询。生产环境 / 高频查询路径枚举 (path字段)最推荐。查询性能最好不依赖版本避免递归带来的 FE 压力。Doris 1.x路径枚举 (path字段)唯一可行的一条 SQL 方案。特别提醒文件/文件夹的层级关系通常属于元数据Metadata数据量相对较小但关系复杂。如果这是核心业务元数据通常建议存放在MySQL / PostgreSQL中。如果存放在Doris中通常是为了配合文件的其他业务数据如文件大小、创建时间、日志等进行联合分析。如果是这种情况方案二路径枚举是绝对的首选。

相关文章:

doris 根据文件夹id,一条sql语句获取到它本身及所有子文件、孙文件

取决于 Apache Doris 的版本。Apache Doris 是基于 MySQL 协议开发的 MPP 架构 OLAP 数据库。它的 SQL 兼容性在近年来提升很快,但递归查询的支持情况如下:1. 核心结论Doris 2.0 及以上版本: 支持。可以使用 WITH RECURSIVE 语法(…...

4个步骤打造无语言障碍的GitHub开发环境

4个步骤打造无语言障碍的GitHub开发环境 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 问题诊断:当代码世界遇上语言壁垒…...

mysql 根据文件夹id,一条sql语句获取到它本身及所有子文件、孙文件

取决于你的 MySQL 版本。MySQL 8.0 及以上版本: 可以。使用 递归公用表表达式 (Recursive CTE) 即可通过一条 SELECT 语句实现。MySQL 5.7 及以下版本: 原生不支持。标准邻接表模型(id, parent_id)无法用一条 SQL 查询无限层级。需…...

告别软件管家!IT运维用Winget实现企业级批量部署的3个高阶技巧(含排错指南)

企业级Winget实战:3个高阶技巧实现域环境批量部署 每次新员工入职,IT部门总要面对几十台电脑的软件部署任务。传统方式下,工程师们不得不抱着U盘穿梭于工位之间,或是远程指导用户点击"下一步"。这种低效模式正在被Winge…...

gerbv:制造业的隐形守护者——开源工具如何重塑制造文件验证流程

gerbv:制造业的隐形守护者——开源工具如何重塑制造文件验证流程 【免费下载链接】gerbv Maintained fork of gerbv, carrying mostly bugfixes 项目地址: https://gitcode.com/gh_mirrors/ge/gerbv 在精密制造领域,一个0.01毫米的设计偏差可能导…...

BJT放大器实战指南:从共发射极到共集电极的5个设计技巧

BJT放大器实战指南:从共发射极到共集电极的5个设计技巧 在电子设计领域,BJT(双极结型晶体管)放大器一直是模拟电路设计的核心组件。不同于教科书式的理论推导,本文将聚焦工程师在实际设计中最常遇到的挑战,…...

Unity 实现跨平台文件选择与图片加载:Windows 系统下的高效解决方案

1. 为什么需要跨平台文件选择功能 在Unity开发中,经常会遇到需要让用户选择本地文件的场景。比如图片编辑器需要导入素材,音乐播放器需要选择音频文件,文档工具需要打开特定格式的文件。虽然Unity本身提供了Application.OpenURL这样的方法&am…...

Qwen2-VL-2B-Instruct学术利器:LaTeX论文中的图表智能注释与摘要生成

Qwen2-VL-2B-Instruct学术利器:LaTeX论文中的图表智能注释与摘要生成 1. 引言 写论文最头疼的是什么?对我而言,除了构思核心论点,就是处理那些堆积如山的图表了。一张图,你得写图注;一个表格,…...

SHT20温湿度传感器嵌入式驱动开发与I²C通信详解

1. SHT20温湿度传感器技术解析与嵌入式驱动实现SHT20是由瑞士Sensirion公司推出的高精度数字温湿度传感器,基于其专利CMOSens传感技术平台。该器件将温度和湿度敏感元件、信号调理电路、14位ADC、IC接口及校准数据全部集成于单颗3mm3mm DFN封装内,实现了…...

从Raw到YUV:图解摄像头数据格式转换全流程(含ISP处理关键步骤)

从Raw到YUV:图解摄像头数据格式转换全流程(含ISP处理关键步骤) 在嵌入式视觉系统和智能摄像头的开发中,图像传感器输出的原始数据需要经过复杂的处理流程才能转化为可用的YUV格式。这个转换过程不仅关系到图像质量,还直…...

蓝桥杯密码学赛题全解剖:从AES爆破到RSA共模攻击的7种破解姿势

蓝桥杯密码学赛题深度解析:从AES到RSA的实战攻防艺术 1. 密码学竞赛的技术图谱与核心价值 在网络安全竞赛领域,蓝桥杯密码学赛道以其系统化的知识体系和贴近实战的题目设计,成为检验选手密码学功底的重要试金石。不同于常规CTF比赛中分散的…...

零成本打造专业直播系统:DroidCam OBS插件终极指南

零成本打造专业直播系统:DroidCam OBS插件终极指南 【免费下载链接】droidcam-obs-plugin DroidCam OBS Source 项目地址: https://gitcode.com/gh_mirrors/dr/droidcam-obs-plugin 想要将手机摄像头变成高质量直播摄像头,却不想花大价钱购买专业…...

MCGS与S7-1200以太网通讯实战:从组态变量映射到DB块数据交换的最佳实践

MCGS与S7-1200以太网通讯实战:从组态变量映射到DB块数据交换的最佳实践 在工业自动化项目中,稳定高效的设备通讯是系统可靠运行的基础。MCGS组态软件与西门子S7-1200 PLC的以太网通讯,作为国内自动化领域常见的组合方案,其数据交换…...

wan2.1-vae镜像CI/CD流水线:GitHub Actions自动构建+GPU集群部署

wan2.1-vae镜像CI/CD流水线:GitHub Actions自动构建GPU集群部署 1. 项目背景与价值 在AI图像生成领域,快速迭代和稳定部署是关键挑战。wan2.1-vae作为基于Qwen-Image-2512模型的文生图平台,需要高效的构建和部署流程来支持其核心功能&#…...

Qwen-Image惊艳效果展示:RTX4090D上Qwen-VL高清图像理解与精准问答集锦

Qwen-Image惊艳效果展示:RTX4090D上Qwen-VL高清图像理解与精准问答集锦 1. 开篇:强大的视觉语言理解能力 当一张图片摆在面前,你是否想过让AI不仅能看懂画面内容,还能回答各种细节问题?这就是Qwen-VL视觉语言模型的魅…...

智能审稿监控工具如何解决技术文档追踪痛点:效率提升实测

智能审稿监控工具如何解决技术文档追踪痛点:效率提升实测 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 当技术文档工程师张明第5次在浏览器标签页中切换查找最新审稿状态时,他意识到这种工…...

终极免费Cookie导出工具:3分钟学会本地安全备份浏览器登录状态 [特殊字符]

终极免费Cookie导出工具:3分钟学会本地安全备份浏览器登录状态 🔒 【免费下载链接】Get-cookies.txt-LOCALLY Get cookies.txt, NEVER send information outside. 项目地址: https://gitcode.com/gh_mirrors/ge/Get-cookies.txt-LOCALLY 你是否曾…...

nodejs+vue基于springboot的家庭物流车辆货车运输运营管理系统可视化qlxl72h7

目录技术栈选择系统模块设计开发步骤可视化集成测试与部署注意事项项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术栈选择 后端框架: Spring Boot 提供RESTful API支持,集成MyBatis或J…...

Navicat Mac版试用期管理方案:构建可持续的数据库工具使用环境

Navicat Mac版试用期管理方案:构建可持续的数据库工具使用环境 【免费下载链接】navicat_reset_mac navicat16 mac版无限重置试用期脚本 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 在数据库管理工作中,专业工具的持续可用是…...

League Akari智能辅助:颠覆英雄联盟玩家体验的全能工具集

League Akari智能辅助:颠覆英雄联盟玩家体验的全能工具集 【免费下载链接】LeagueAkari ✨兴趣使然的,功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari Leagu…...

Asian Beauty Z-Image Turbo 集成MySQL实战:构建图像生成任务管理后台

Asian Beauty Z-Image Turbo 集成MySQL实战:构建图像生成任务管理后台 最近在帮一个做电商内容的朋友搭建一套AI图像生成系统,他们每天需要批量生成大量的商品展示图、社交媒体配图。直接用模型生成当然没问题,但问题很快就来了:…...

Qwen3.5-27B镜像免配置优势:预置FastAPI中间件支持CORS与限流控制

Qwen3.5-27B镜像免配置优势:预置FastAPI中间件支持CORS与限流控制 如果你正在寻找一个开箱即用、功能强大且部署省心的AI对话模型,那么Qwen3.5-27B镜像绝对值得你花10分钟了解一下。这个镜像最吸引人的地方,不是它背后那个能说会道、还能看懂…...

qmc-decoder:释放被锁住的音乐宝藏,让QQ音乐文件重获自由

qmc-decoder:释放被锁住的音乐宝藏,让QQ音乐文件重获自由 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾有过这样的体验?在QQ音…...

别再只会用ALTER USER了!PostgreSQL密码管理的5种隐藏技巧

PostgreSQL密码管理的5个高阶技巧:安全工程师不会告诉你的秘密 如果你还在用ALTER USER命令直接修改PostgreSQL密码,那么你可能错过了数据库安全防护中最关键的几个环节。作为一款企业级开源数据库,PostgreSQL提供了远比基础密码修改更强大的…...

皇冠CAD(CrownCAD2026R2):提取U/V线(等参数曲线)

根据给定的参数方向和参数值从曲面上提取出一条或多条曲面流线。根据给定的参数方向和参数值从曲面上提取出一条或多条曲面流线(等参考线),此曲面若为裁剪面,则提取的是其原始面上的流线。要生成的流线(等参数线&#…...

树莓派4B新手指南:从零搞定libcamera驱动的CSI摄像头

1. 树莓派4B与CSI摄像头初体验 第一次拿到树莓派4B和CSI摄像头时,我完全是个小白。看着那些密密麻麻的接口和配件,心里直打鼓——这玩意儿真的能用来做视觉项目吗?事实证明,只要按照正确步骤操作,从零开始配置一套完整…...

VScode+esp-idf:深入解析ESP32-CAM开发板SD卡文件系统操作

1. ESP32-CAM开发板与SD卡基础认知 第一次拿到ESP32-CAM开发板时,最吸引我的就是那个小小的SD卡槽。这个火柴盒大小的开发板竟然能拍照、录像还能存数据,简直就像个瑞士军刀。不过在实际操作中,我发现很多新手容易忽略几个关键点:…...

RexUniNLU惊艳效果:中文社交媒体文本ABSA细粒度情感抽取作品集

RexUniNLU惊艳效果:中文社交媒体文本ABSA细粒度情感抽取作品集 1. 引言:当AI学会读懂社交媒体的"言外之意" 你有没有遇到过这样的情况:刷着社交媒体,看到一条"这家餐厅环境不错,但服务真的太慢了&quo…...

告别重复编码:用快马AI为clowdbot自动生成状态管理与API集成模块,效率翻倍

最近在优化我的聊天机器人项目clowdbot时,我遇到了一个典型的开发瓶颈:随着对话逻辑越来越复杂,我需要编写大量重复的、结构类似的代码。比如,管理用户在多轮对话中的状态、调用各种外部API(天气、翻译等)、…...

基于 MATLAB GUI 的语音信号滤波系统功能说明

基于MATLAB的数字滤波器设计及其语音信号去噪应用。 (供学习交流)其中数字滤波器包括IIR和FIR的低通、高通、带通、带阻四大类型及其多种设计方法。 GUI界面中有语音信号输入模块,滤波器设计模块,语音信号分析及加噪去噪输出模块。…...