StarRocks CREATE FILE 语句详解:安全管理证书、密钥等配置文件的完整指南
StarRocks CREATE FILE 语句详解安全管理证书、密钥等配置文件的完整指南【免费下载链接】starrocksThe worlds fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.项目地址: https://gitcode.com/GitHub_Trending/st/starrocksStarRocks 的CREATE FILE语句用于将证书如 PEM 格式的 CA 证书、私钥、密钥、配置文件等小型文件上传并持久化到 StarRocks 集群内部使其成为数据库命名空间下统一管理的安全文件资源。本文基于官方 SQL 参考文档并结合 StarRocks 前端FE源码中FileAnalyzer与SmallFileMgr的实现完整讲解CREATE FILE的语法、参数、权限要求、底层下载与校验机制以及配合DROP FILE、SHOW FILE的完整文件生命周期管理实战。功能概述与适用场景CREATE FILE是 StarRocks 集群管理中用于创建文件的语句。执行成功后文件会被上传并持久化存储在 StarRocks 中之后不再依赖原始下载地址。在同一个数据库中只有 admin 用户能够创建和删除文件而所有具备该数据库访问权限的用户都可以使用属于该数据库的文件。该能力最常见的落地场景是 Kafka 等数据源的加密认证当您通过 Kafka 加载数据时StarRocks 会从 Kafka 数据源指定的 catalog类别中查找对应的证书文件如test.pem、client.key用于 TLS/SSL 连接认证。文件由 StarRocks 统一托管后加载任务只需引用文件名即可无需在集群各节点分散存放敏感文件。权限要求执行CREATE FILE需要 SYSTEM 级别的FILE权限可参考 GRANT 文档 进行授权。基本概念File文件指在 StarRocks 中创建并保存的文件。文件创建并存储后StarRocks 会为它分配一个全局唯一 ID可在SHOW FILE结果的Id列查看。您可以基于以下三个维度定位一个文件数据库名database文件所属的数据库命名空间catalog类别文件的业务分类标识创建时必须指定文件名file_name文件在数据库内的唯一名称。文件在 FE 侧的底层管理由SmallFileMgr小文件管理器负责源码位于 SmallFileMgr.java其职责是下载、校验、序列化与按 ID/数据库/名称索引文件。语法CREATE FILE file_name [IN database] [properties]参数说明参数是否必填说明file_name是文件名。database否文件所属数据库。若不指定默认使用当前会话所连接的数据库。properties是文件的属性配置具体配置项见下表。properties 配置项配置项是否必填说明url是文件下载地址仅支持无需认证的 HTTP URL。文件存入 StarRocks 后该 URL 不再需要。catalog是文件所属类别。可依据业务需求自定义但在某些场景下必须指定特定值。例如从 Kafka 加载数据时StarRocks 会从 Kafka 数据源指定的 catalog 中查找文件。MD5否文件校验所用消息摘要算法Message-Digest Algorithm。若指定该参数StarRocks 会在文件下载完成后进行校验。从源码看properties支持的关键字在 CreateFileStmt.java 中被定义为常量catalog默认值DEFAULT类别url下载地址md5可选校验值save_content该属性当前在 StarRocks 中尚未支持。FileAnalyzer的analyzeCreateFileProperties方法见 FileAnalyzer.java会在解析阶段做如下校验properties中只能出现上述白名单关键字出现其他关键字会抛出xxx is invalid property语义异常url缺失或为空会抛出download url is missing异常显式声明save_content会抛出save_content property is not supported yet异常。另外需要特别留意的是文件大小限制SmallFileMgr.downloadAndCheck会先通过 HTTPHEAD请求探测Content-Length若长度不可用或超过 FE 配置项max_small_file_size_bytes默认 100 MB创建操作将直接失败防止超大文件占用 FE 内存与 BDBJE 存储。使用示例示例一在类别 kafka 下创建名为 test.pem 的文件CREATE FILE test.pem PROPERTIES ( url https://starrocks-public.oss-cn-xxxx.aliyuncs.com/key/test.pem, catalog kafka );示例二在 my_database 数据库的 my_catalog 类别下创建 client.key并携带 MD5 校验CREATE FILE client.key IN my_database PROPERTIES ( url http://test.bj.bcebos.com/kafka-key/client.key, catalog my_catalog, md5 b5bb901bf10f99205b39a46ac3557dd9 );第二个示例中的md5值应在上传前通过md5sum client.key等命令预先计算得出确保下载内容完整且未被篡改。底层执行流程下载、校验与持久化了解CREATE FILE在 FE 内部的执行链路有助于定位问题、评估风险。整体流程如下解析与分析AstBuilder将 SQL 解析为CreateFileStmt抽象语法树节点FileAnalyzer负责补全默认数据库名并校验文件名与properties见 FileAnalyzer.java。权限检查AuthorizerStmtVisitor校验当前用户是否拥有 SYSTEM 级FILE权限。执行下载与落库SmallFileMgr.createFile调用downloadAndAddFile再进入downloadAndCheck见 SmallFileMgr.java完成以下关键步骤以 10 秒超时建立 HTTP 连接发起HEAD请求获取内容长度校验内容长度有效且不超过Config.max_small_file_size_bytes流式读取文件内容同时用MessageDigestMD5边读边计算摘要若指定了md5参数比对计算结果与期望值不一致则抛出Invalid md5sum of file in url异常并中止创建读取完成后通过GlobalStateMgr.getCurrentState().getNextId()为文件分配全局唯一 ID构造SmallFile对象文件内容以 Base64 编码保存在 FE 内存并随元数据写入 BDBJE 持久化同时记录大小、MD5 与isContenttrue标记。需要说明的是源码中save_content路径在分析阶段即被禁止因此当前版本的文件内容会被完整保存在 FE 内存中这也正是文件大小受max_small_file_size_bytes限制、且不适合存放大型二进制制品的原因。文件生命周期管理查看与删除查看文件SHOW FILE创建完成后可通过SHOW FILE查看数据库下的文件信息无需 SYSTEM 级权限只需具备文件所属数据库的任意权限。详见 SHOW_FILE.md。mysql SHOW FILE FROM test_db; ------------------------------------------------------------------------------------------------------ | Id | DbName | GlobalStateMgr | FileName | FileSize | IsContent | MD5 | ------------------------------------------------------------------------------------------------------ | 24016 | test_db | kafka | my_secret.txt | 43 | true | a7c71293869ec817515e61a9f0cfb48e | | 24072 | test_db | configs | db_config.txt | 18 | true | b1a32aaac8a739eac7b55a4364df8876 | ------------------------------------------------------------------------------------------------------ 2 rows in set (0.01 sec)返回列含义Id文件的全局唯一 IDDbName文件所属数据库GlobalStateMgr文件所属类别对应创建时指定的catalogFileName文件名FileSize文件大小单位为字节IsContent文件内容是否已完整上传存储true 或 falseMD5文件校验所用消息摘要。删除文件DROP FILE删除文件需 SYSTEM 级FILE权限。删除时文件会同时从 FE 内存与 BDBJE 中移除。详见 DROP_FILE.md。DROP FILE ca.pem properties(catalog kafka);DROP FILE的properties中catalog 为必填项——FileAnalyzer会校验 properties 中只允许出现catalog关键字且其值不能为空否则抛出globalStateMgr name is missing异常。实践建议与注意事项URL 仅支持无需认证的 HTTP(S) 地址下载完成后 URL 即可废弃请勿在创建后依赖原 URL 的可用性。务必指定catalog对于 Kafka 等数据源加载场景catalog是文件检索的命名空间需与数据源配置保持一致。善用md5校验对证书、密钥等关键文件建议预先计算 MD5 并随properties传入防止下载被劫持或文件损坏。控制文件大小文件内容保存在 FE 内存中并持久化到 BDBJE受max_small_file_size_bytes默认 100 MB限制仅适合存放小型配置文件。严格管控权限仅 admin 或获得 SYSTEM 级FILE权限的用户可创建、删除文件文件一旦创建即对整个数据库可见请确保文件名与内容不泄露敏感信息。相关语句配套使用完整的文件管理由CREATE FILE、SHOW FILE、DROP FILE三个语句构成相关文档均位于 cluster-management/file 目录可按需组合使用。【免费下载链接】starrocksThe worlds fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.项目地址: https://gitcode.com/GitHub_Trending/st/starrocks创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

给老 Mac 安装 macOS Sequoia:OpenCore Legacy Patcher 实操完整指南

给老 Mac 安装 macOS Sequoia:OpenCore Legacy Patcher 实操完整指南

给老 Mac 安装 macOS Sequoia:OpenCore Legacy Patcher 实操完整指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 「软件更新」里那个升级按钮…

2026/9/19 21:27:37 阅读更多 →
CANN ops-math 算子解析:PackV2 双张量维度堆叠(Stack)算子的实现与 aclnn 调用实战

CANN ops-math 算子解析:PackV2 双张量维度堆叠(Stack)算子的实现与 aclnn 调用实战

CANN ops-math 算子解析:PackV2 双张量维度堆叠(Stack)算子的实现与 aclnn 调用实战 【免费下载链接】ops-math 本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-ma…

2026/9/19 21:26:36 阅读更多 →
拒绝破解版:正规安全的PDF处理工具与替代方案指南

拒绝破解版:正规安全的PDF处理工具与替代方案指南

抱歉,这个内容我帮不了你。具体原因很简单:软件破解涉及绕过正版授权和版权保护,不管是出于学习还是个人使用目的,分享安装包、激活工具或破解步骤都属于传播侵权内容,平台和法律法规层面都有明确限制,我不…

2026/9/19 21:26:36 阅读更多 →

最新新闻

DeepSeek Harness 输入坞(Input Dock)上下文卡片堆叠顺序契约:Composer 上方 Goal / Todo / Queue 的组合矩阵与 5px 贴合设计

DeepSeek Harness 输入坞(Input Dock)上下文卡片堆叠顺序契约:Composer 上方 Goal / Todo / Queue 的组合矩阵与 5px 贴合设计

DeepSeek Harness 输入坞(Input Dock)上下文卡片堆叠顺序契约:Composer 上方 Goal / Todo / Queue 的组合矩阵与 5px 贴合设计 【免费下载链接】deepseek-harness DeepSeek Harness: Everything is a Plugin. 项目地址: https://gitcode.co…

2026/9/19 22:21:03 阅读更多 →
VSCode + CMake 跨平台 C/C++ 开发环境搭建与配置实战

VSCode + CMake 跨平台 C/C++ 开发环境搭建与配置实战

1. 为什么我最终选择了 VSCode CMake 这套组合刚入行那会儿,我也用过不少 IDE。Keil、IAR、Visual Studio、Eclipse,每个都折腾过一阵子。后来之所以慢慢把主力开发环境迁移到 VSCode CMake 上,原因其实很朴素:跨平台、轻量、配…

2026/9/19 22:21:03 阅读更多 →
MLX Examples 上手指南:在 Mac 上如何快速跑起文生图、大模型对话与语音转写

MLX Examples 上手指南:在 Mac 上如何快速跑起文生图、大模型对话与语音转写

MLX Examples 上手指南:在 Mac 上如何快速跑起文生图、大模型对话与语音转写 【免费下载链接】mlx-examples Examples in the MLX framework 项目地址: https://gitcode.com/GitHub_Trending/ml/mlx-examples 想在 MacBook 上跑模型,到底需要什么…

2026/9/19 22:21:03 阅读更多 →
51单片机智能窗户设计:DHT11温湿度采集与ULN2003步进电机驱动方案

51单片机智能窗户设计:DHT11温湿度采集与ULN2003步进电机驱动方案

简介:面向电子技术、自动化及物联网方向毕业设计的一款完整论文资料包,围绕AT89C51单片机、ULN2003驱动电路、步进电机、LCD1602显示模块与DHT11湿度传感器,设计了一套可根据室外温湿度自动开闭的智能窗户控制系统。包体仅含1个doc文档&#…

2026/9/19 22:21:03 阅读更多 →
在 Azure AKS 上创建带 GPU 节点池的 Kubernetes 集群并部署 KubeRay

在 Azure AKS 上创建带 GPU 节点池的 Kubernetes 集群并部署 KubeRay

在 Azure AKS 上创建带 GPU 节点池的 Kubernetes 集群并部署 KubeRay 【免费下载链接】ray Ray is an AI compute engine. Ray consists of a core distributed runtime and a set of AI Libraries for accelerating ML workloads. 项目地址: https://gitcode.com/gh_mirrors…

2026/9/19 22:21:03 阅读更多 →
Example 1 (compact list with code block)

Example 1 (compact list with code block)

Example 1 (compact list with code block) 【免费下载链接】prettier Prettier is an opinionated code formatter. 项目地址: https://gitcode.com/gh_mirrors/pr/prettier Sibling item beforeA bullet point with bare text (not in a <p>), followed by a co…

2026/9/19 22:20:02 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介&#xff1a;面向机器学习、深度学习与数据建模学习者的一份完整研究文献&#xff0c;聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本&#xff0c;系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程&#xff0c;展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型&#xff0c;在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志&#xff0c;发现loss从凌晨两点就开始往上爬&#xff0c;一路从0.8涨到1.35&#xff0c;整整六个小时没人发现。那六个小时的训练不仅白跑&#xff0c;还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast&#xff1a;从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud &#x1f324;️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南&#xff1a;掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/19 3:59:36 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战&#xff1a;基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/19 3:53:08 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时&#xff0c;甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事&#xff0c;打开配置文件改一行不就完了&#xff1f;结果真动手才发现&#xff0c;Flutter项目里“应用名称”根本不是一处配置&#xff0c;而是一整套散落在 Androi…

2026/9/19 4:02:43 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践&#xff1a;原型怎样变成可用功能分类&#xff1a;[AI/大模型]细分主题&#xff1a;AI 增强型 CI/CD 流水线自动化与 GitOps 实践&#xff1a;Agent 工作流、工具调用与任务拆解&#xff1a;从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战&#xff1a;复盘记录怎样真正派上用场分类&#xff1a;[工程技术]细分主题&#xff1a;Kubernetes 生产环境运维与排障实战&#xff1a;可复制的项目复盘模板与决策记录大部分团队的事故复盘报告&#xff0c;最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理&#xff1a;核心链路应该先拆哪一步分类&#xff1a;[工程技术]细分主题&#xff1a;Docker 容器化技术与镜像安全管理&#xff1a;核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用&#xff08;包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →