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

Apache Calcite 详细介绍

1. 定义

Apache Calcite 是一个动态数据管理框架,它提供了一套完整的 SQL 解析、验证、优化和执行引擎。与其他传统数据库不同,Calcite 不负责数据存储或具体的数据处理算法,而是专注于为各种异构数据源提供统一的 SQL 查询能力。它可以轻松集成到不同的系统中,如 Flink、Hive、Storm 等,支持开发者构建自定义的数据查询管道 。


2. 术语表

术语解释
SQL Parser将原始 SQL 文本解析为抽象语法树(AST)的过程,是 Calcite 处理 SQL 的第一步 。
Query OptimizerCalcite 提供的优化器模块,用于将逻辑计划转换为高效的物理执行计划,支持基于规则和成本的优化策略 。
Schema描述数据源结构的元数据对象,Calcite 允许用户自定义 Schema 来适配不同的数据源 。
RelNode表示关系代数节点的对象,在 Calcite 中用于构建逻辑和物理执行计划 。
Enumerable一种执行模型,表示可以通过 Java 集合进行迭代计算的结果集,常用于内存数据处理 。
Pluggable Framework指 Calcite 的高度可扩展架构,允许用户插入自定义解析器、优化器规则等组件 。
Metadata Factory用于创建和管理元数据描述符的接口,支持 SQL 类型、Java 类型等信息的获取 。

3. 核心概念

  • SQL 解析与验证
  • 逻辑计划生成
  • 查询优化(Rule-based / Cost-based)
  • 物理计划生成
  • 数据源适配机制(Schema + Table)
  • 多语言支持(SQL、LINQ 等)
  • 自定义函数与操作符扩展

4. 主要理论/观点

  1. 去中心化的 SQL 引擎架构
    Apache Calcite 不绑定任何特定的数据存储层,而是作为一个通用的 SQL 引擎嵌入到其他系统中,这种设计使其适用于广泛的异构数据环境 。

  2. 灵活的优化策略
    Calcite 支持多种优化方式,包括基于规则的优化(Rule-Based Optimization, RBO)和基于成本的优化(Cost-Based Optimization, CBO),开发者可以自定义规则以适应特定业务场景 。

  3. 开放插件体系
    通过其插件式架构,Calcite 允许开发者替换或增强 SQL 解析器、优化器、执行器等核心组件,从而实现对任意数据源的支持 。


5. 图表和图像

流程图 1:Calcite 在行业中的定位

应用层
Flink/Hive/Druid
Apahe Calcite
JDBC
CSV
Parquet
Kafka
MongoDB

流程图 2:Calcite 内部执行流程

SQL Query
Parse to AST
Validate Syntax & Type
Logical PlanRelNode
Optimize Plan
Physical Plan
Execute Plan

6. 历史背景和关键人物

  • 2012年:最初由 Julian Hyde 发起,名为 “Eigenbase”,后捐献给 Apache 基金会。
  • 2014年:成为 Apache 孵化项目。
  • 2015年:正式成为 Apache 顶级项目。
  • 2017年:被 Flink 和 Hive 采用作为其 SQL 引擎的核心组件。
  • 2020年至今:广泛应用于流批一体处理系统、OLAP 引擎和数据湖查询加速器。

关键人物:

  1. Julian Hyde
    • 贡献:Calcite 的创始人,提出了“SQL as a Service”的理念,推动了 Calcite 的架构设计和开源社区建设。
  2. Jesus Camacho Rodriguez
    • 贡献:主导了 Calcite 的查询优化器重构工作,增强了其对复杂查询的支持能力。
  3. Chunwei Liu (刘春辉)
    • 贡献:在阿里巴巴内部推广 Calcite 应用,并推动其在 Flink 中的深度整合。

7. 最新进展(2023~2025)

  • Calcite 1.30+ 版本引入了更强大的 JSON 支持和窗口函数优化
  • Flink 2.0 中进一步深化与 Calcite 的集成,实现了跨流批的统一 SQL 优化器
  • Calcite for Data Lakehouse:多个公司开始尝试将其作为统一查询引擎接入 Iceberg、Delta Lake 等新型数据湖格式。
  • AI 辅助优化器:部分研究团队尝试使用强化学习方法训练 Calcite 的优化器,提升复杂查询的性能预测能力(参考论文:Learning to Optimize with Reinforcement Learning in Apache Calcite, VLDB 2024)。

8. 案例研究

案例一:Flink SQL 使用 Calcite 实现统一查询引擎

  • 背景:Flink 需要同时支持流处理和批处理的 SQL 查询。
  • 实施:基于 Calcite 的 SQL Parser 和 Optimizer,构建了统一的 SQL 层。
  • 成果:提升了开发效率,简化了 SQL 执行路径,提高了查询性能。

案例二:Apache Druid 使用 Calcite 进行 OLAP 查询优化

  • 背景:Druid 需要支持标准 SQL 接口并优化聚合查询。
  • 实施:利用 Calcite 的优化规则重写 Druid 的原生查询语言。
  • 成果:显著减少了开发成本,提高了查询灵活性和兼容性。

9. 竞对分析

工具功能性能成本用户体验市场占有率
Apache CalciteSQL 引擎、优化器中高开发者友好
Presto分布式 SQL 查询引擎适合大数据分析
ANTLR通用语言解析器语法定制灵活
Spark CatalystSpark SQL 引擎易于集成 Spark 生态

详细介绍:

  • Calcite:最轻量级,适合嵌入系统,但需配合外部执行器。
  • Presto:独立运行,适合大规模 OLAP 查询。
  • ANTLR:通用性强,但不具备优化能力。
  • Catalyst:深度集成 Spark,适合批处理,但缺乏插件化设计。

10. 关键数据

  1. Calcite 支持超过 50 种数据源(来源:Apache Calcite GitHub)。
  2. Flink SQL 查询性能提升 30%(来源:Flink 2.0 Release Notes)。
  3. Calcite 查询优化规则数量超过 200 条(来源:Calcite 1.30 文档)。

11. 实践指南

  1. 学习 SQL 解析流程:阅读官方文档和《SQL Parsing with Calcite》教程。
  2. 动手写一个自定义 Schema:参考 [Calcite 自定义数据源教程] 。
  3. 实现自定义函数:尝试添加 UDF 并测试其在 SQL 中的调用 。
  4. 参与社区贡献:提交 PR 或参与 issue 讨论。
  5. 结合 Flink/Hive 等项目实战:尝试为其增加新的 SQL 功能。

12. 常见问题

澄清性问题

  • 什么是 Apache Calcite?
    它是一个通用的 SQL 引擎和查询优化框架,用于构建自定义的 SQL 查询系统 。

  • 它的核心思想是什么?
    提供一个可插拔、可扩展的 SQL 引擎,适用于任意数据源和执行环境。

  • 它和我已知的哪些内容有联系?
    与数据库系统、SQL 解析器、查询优化器、数据湖查询引擎等相关。

探索性问题

  • 关键组成部分有哪些?
    SQL Parser、Validator、Optimizer、Executor、Schema 等。

  • 这些组件如何协同工作?
    SQL 经过解析 → 验证 → 转换为逻辑计划 → 优化 → 生成物理计划 → 执行。

  • 实际案例有哪些?
    Flink、Hive、Druid、Iceberg 等都使用了 Calcite。

批判性问题

  • 局限性是什么?
    缺乏内置执行器,需要依赖外部系统;优化规则较复杂,学习曲线陡峭。

  • 在哪些情况下不适用?
    对实时性要求极高、无法接受 Java 开销的场景。

  • 有没有替代方案?
    可选 ANTLR + 自定义优化器,或直接使用 Presto/Spark SQL。


13. 应用展望

  1. AI 驱动的自动查询优化:结合机器学习模型预测最优执行路径。
  2. 多模态数据融合查询引擎:支持文本、图像、视频等非结构化数据的联合查询。
  3. Serverless 查询服务:基于 Calcite 构建按需伸缩的 SQL 即服务架构。

最具价值的研究方向

  • AI 辅助查询优化
  • 多模态数据统一接口

14. 资源推荐

书籍

  1. 《Database Internals》——Alex Petrov(涵盖 Calcite 相关原理)
  2. 《SQL Performance Explained》——Stephan Tual
  3. 《Apache Calcite: The Definitive Guide》——即将出版

文章

  1. Paper Reading: Apache Calcite: A Foundational Framework for Many Open Source Data Processing Systems
  2. Apache Calcite Series on Zhihu

视频/课程

  1. Apache Calcite Deep Dive (YouTube)
  2. [Udemy: SQL Engine Development with Apache Calcite]

15. Demo(代码片段)

// 示例:使用 Calcite 创建一个简单的内存表并执行查询
public class SimpleCalciteDemo {public static void main(String[] args) throws Exception {Class.forName("org.apache.calcite.jdbc.Driver");Connection connection = DriverManager.getConnection("jdbc:calcite:");Statement statement = connection.createStatement();// 创建 schema 和表statement.execute("create schema demo");statement.execute("set schema 'demo'");statement.execute("create table emps (id int primary key, name varchar(20))");// 插入数据statement.executeUpdate("insert into emps values (1, 'Alice'), (2, 'Bob')");// 查询ResultSet rs = statement.executeQuery("select * from emps where id > 1");while (rs.next()) {System.out.println(rs.getString(2));}}
}

相关文章:

Apache Calcite 详细介绍

1. 定义 Apache Calcite 是一个动态数据管理框架,它提供了一套完整的 SQL 解析、验证、优化和执行引擎。与其他传统数据库不同,Calcite 不负责数据存储或具体的数据处理算法,而是专注于为各种异构数据源提供统一的 SQL 查询能力。它可以轻松…...

全网通电视 1.0 | 支持安卓4系统的直播软件,提供众多港台高清频道

全网通电视是一款支持安卓4系统的直播软件,提供了包括央视、卫视、少儿、影视、体育在内的多个频道。此软件特别之处在于它包含了大量的香港和台湾频道,这些频道不仅数量多,而且画质高清流畅,为用户提供优质的观看体验。无论是追剧…...

3、Kafka 核心架构拆解和总结

1. Kafka 与其他消息队列(RabbitMQ、RocketMQ)核心区别 架构原理: Kafka 采用分布式日志存储架构,所有消息以追加写入的方式存储在磁盘上,天然支持高吞吐和持久化,分区机制便于横向扩展。RabbitMQ 基于 AM…...

芳草集精油怎么样?佰草集精油的功效与用法一览

在护肤领域,精油凭借天然高效的特性得到不少消费者的青睐。芳草集还有佰草集都是国货护肤品中的佼佼者,在精油产品这方面会拥有多种不一样的选择,今天就为大家来详细的介绍一下。 芳草集精油具备零负担,纯天然的特色,…...

华为云API、SDK是什么意思?有什么区别和联系?

在华为云中,“API”和“SDK”是进行系统开发和平台对接的两种主要方式,它们密切相关,但功能不同。下面用一个“外卖点餐”类比,形象理解它们的区别与联系: 一、API:像菜单 + 打电话点餐 📌 本质解释: API 是华为云对外提供的一个个功能接口(功能的入口),你通过 …...

实践003-Gitlab CICD编译构建

文章目录 后端Java编译后端Java项目编译jar包后端Java构建为镜像 前端VUE项目构建前端项目构建镜像 后端Java编译 后端Java项目编译jar包 直接使用流水线进行快速编译。 [rootgitclient apiserver]# vim .gitlab-ci.yml stages:- compilecompile:stage: compileimage: maven…...

【实战教程】零基础搭建DeepSeek大模型聊天系统 - Spring Boot+React完整开发指南

🔥 本文详细讲解如何从零搭建一个完整的DeepSeek AI对话系统,包括Spring Boot后端和React前端,适合AI开发入门者快速上手。即使你是编程萌新,也能轻松搭建自己的AI助手! 📚博主匠心之作,强推专栏…...

AI——认知科学中的认知架构建立步骤与方法

认知科学中的认知架构建立步骤与方法 认知架构(Cognitive Architecture)是模拟人类心智活动的计算框架,旨在整合感知、记忆、推理、学习等核心认知功能。其建立需结合心理学理论、神经科学证据和计算建模技术。以下是建立认知架构的系统方法…...

C++:买房子

【描述】某程序员开始工作,年薪N万,他希望在中关村公馆买一套60平米的房子,现在价格是200万,假设房子价格以每年百分之K增长,并且该程序员未来年薪不变,且不吃不喝,不用交税,每年所得…...

Webug4.0靶场通关笔记20- 第25关越权查看admin

目录 一、越权原理 1. 水平越权 2. 垂直越权 二、第25关 越权查看admin 1.打开靶场 2.源码分析 (1)为何存在越权? (2)如何利用越权? 3.源码修改 4.aaaaa账号登录 5.水平越权切换到mooyuan 6.垂…...

如何在金仓数据库KingbaseES中新建一个数据库?新建一个表?给表添加一个字段?

如何在KingbaseES(金仓数据库)中新建一个数据库?新建一个表?给表添加一个字段? 摘要 KingbaseES(金仓数据库)新建数据库、创建表、添加字段全流程实战指南,涵盖 KES 数据库属性、s…...

ubuntu 挂载硬盘

连接硬盘 首先将硬盘正确连接到计算机上。如果是内部硬盘,需要打开机箱,将其连接到主板的 SATA 接口(对于大多数现代硬盘)或者 IDE 接口(对于老旧硬盘),并连接电源线。如果是外部硬盘&#xff0…...

DBa作业

1.假设关系R(A, B)和S(B, C, D)情况如下: R有20000个元组,S有1 200个元组,一个块能装40个R的元组,能装30个S的元组,估算下列操作需要多少次磁盘块读写。 (1) R上没有索引,sclect* from R; 总块数 元组数 …...

解决 TimeoutError: [WinError 10060] 在 FramePack项目中连接 Hugging Face 超时的问题

#工作记录 以下是针对 TimeoutError: [WinError 10060] 的完整排查方案,适用于 FramePack项目中。 (一般该错误的发生原因请重点排查Hugging Face模型仓库受限需要登录的情形) FramePack项目参考资料 FramePack部署(从PyCharm解…...

MySQL 联合查询的使用教程

MySQL 中的联合查询是指将多个查询结果合并成一个结果集的操作。联合查询可以通过使用 UNION 或 UNION ALL 关键字实现。 UNION 关键字:UNION 关键字用于合并两个或多个查询的结果,并去除重复的行。语法如下: SELECT column1, column2 FROM…...

每日学习Java之一万个为什么?

文章目录 Java 异步编排与同步工具类对比一、Java 异步编排概述1. **什么是异步编排?**2. **核心工具:CompletableFuture** 二、CompletableFuture 的优点三、同步工具类对比1. **CountDownLatch**2. **CyclicBarrier**3. **Semaphore** 四、Completable…...

Ubuntu 第11章 网络管理

可以肯定地说,如果没有Linux,今天的互联网可能不会这么发达,Linux天生与网络有着密不可分的关系。据统计,Linux和UNIX在互联网服务器操作系统中已经占据了60%以上的市场份额。网络管理对于Ubuntu系统维护来说是一项非常重要的技能…...

深入解析进程间通信与Socket原理:从理论到TypeScript实战

文章目录 一、进程中如何通信1.1 管道1.1.1 核心特性1.1.2 缺点1.1.3 匿名管道与命名管道的对比 1.2 信号1.2.1 核心特性1.2.2 缺点1.2.3 信号分类对比 1.3 消息队列1.3.1 核心特性1.3.2 缺点 1.4 共享内存1.4.1 核心特性1.4.2 缺点 1.5 信号量1.5.1 核心特性1.5.2 缺点 二、So…...

[特殊字符] Milvus + LLM大模型:打造智能电影知识库系统

今天给大家分享一个超酷的技术组合:Milvus向量数据库 智谱AI大模型!我们将创建一个能理解电影内容的智能搜索系统,不仅能找到相关电影,还能用自然语言总结答案! 🌟 项目背景 这个项目基于Milvus官方案例…...

MapReduce架构-打包运行

(一)maven打包 MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序(例如:jar…...

信创生态核心技术栈:国产芯片架构适配详解

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C、C#等开发语言,熟悉Java常用开…...

BBDM学习笔记

1. configs 1.1 LBBDM: Latent BBDM [readme]...

6. HTML 锚点链接与页面导航

在开发长页面或文档类网站时,锚点链接(Anchor Links)是一个非常实用的功能。通过学习 HTML 锚点技术,将会掌握如何在同一页面内实现快速跳转,以及如何优化长页面的导航体验。以下是基于给定素材的学习总结和实践心得 一、什么是锚点链接? 锚点链接(也称为页面内链接)允…...

绘制拖拽html

<!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"UTF-8" /> <meta name"viewport" content"widthdevice-width, initial-scale1" /> <title>拖拽绘制矩形框 - 可移动可调整大小</ti…...

OpenCV计算机视觉实战(3)——计算机图像处理基础

OpenCV计算机视觉实战&#xff08;3&#xff09;——计算机图像处理基础 0. 前言1. 像素和图像表示1.1 像素 2. 色彩空间2.1 原色2.2 色彩空间2.3 像素和色彩空间 3. 文件类型3.1 图像文件类型3.2 视频文件3.3 图像与视频 4. 计算机图像编程简史5. OpenCV 概述小结系列链接 0. …...

零基础学Java——第九章:数据库编程(三)

第九章&#xff1a;数据库编程 - ORM框架&#xff08;下&#xff09; 在上一部分中&#xff0c;我们学习了ORM框架的基础知识和Hibernate框架。在这一部分中&#xff0c;我们将继续学习其他流行的ORM框架&#xff0c;包括MyBatis和Spring Data JPA。 1. MyBatis框架 1.1 MyB…...

Linux/AndroidOS中进程间的通信线程间的同步 - 信号量

1 概述 本文将介绍 POSIX 信号量&#xff0c;它允许进程和线程同步对共享资源的访问。有两种类型的 POSIX 信号量&#xff1a; 命名信号量&#xff1a;这种信号量拥有一个名字。通过使用相同的名字调用 sem_open()&#xff0c;不相关的进程能够访问同一个信号量。未命名信号量…...

精益数据分析(46/126):深入剖析用户生成内容(UGC)商业模式

精益数据分析&#xff08;46/126&#xff09;&#xff1a;深入剖析用户生成内容&#xff08;UGC&#xff09;商业模式 在创业与数据分析的征程中&#xff0c;每一种商业模式都蕴含着独特的价值与挑战。今天&#xff0c;我们依旧怀揣着共同进步的信念&#xff0c;深入研读《精益…...

vue +xlsx+exceljs 导出excel文档

实现功能&#xff1a;分标题行导出数据过多&#xff0c;一个sheet表里表格条数有限制&#xff0c;需要分sheet显示。 步骤1:安装插件包 npm install exceljs npm install xlsx 步骤2&#xff1a;引用包 import XLSX from xlsx; import ExcelJS from exceljs; 步骤3&am…...

Android 10.0 SharedPreferences in credential encrypted storage are not avai

1.前言 在10.0的系统rom定制化开发中,在开机的过程中,由于某些应用在开机解锁阶段就开始访问查询短信和联系人等功能,所以 会出现抛异常的情况出现,接下来分析下相关的情况,然后来解决这些问题 2.SharedPreferences in credential encrypted storage are not available …...

面试高频算法:最长回文子串

题目&#xff1a;5. 最长回文子串 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 回文&#xff1a;如果字符串向前和向后读都相同&#xff0c;则它满足回文性&#xff1b;子串&#xff1a;子字符串 是字符串中连续的非空字符序列。 示例 1&#xff1a; 输入&…...

RDK X5 交叉编译OSS\QT\opencv\openssl

RDK X5 交叉编译环境配置 1 资源2 使用vm安装Ubuntu22.043 安装依赖4 安装ide5 下载交叉编译工具6 编译oss库6.1 设置临时环境变量6.2 编译arm版本的openssl6.2 编译arm版本的curl6.1 下载oss源码6.1.1 创建arm-toolchain.cmake6.1.2 修改CMakeLists.txt6.1.3 编译 7 编译openc…...

Python cv2边缘检测与轮廓查找:从理论到实战

在计算机视觉领域&#xff0c;边缘检测与轮廓查找是图像分析的核心技术。本文将结合OpenCV库&#xff08;cv2模块&#xff09;&#xff0c;从理论原理到代码实战&#xff0c;系统讲解如何通过Python实现这两个关键操作。 一、基础概念解析 1.1 边缘检测的本质 边缘是图像中灰…...

5月7日星期三今日早报简报微语报早读

5月7日星期三&#xff0c;农历四月初十&#xff0c;早报#微语早读。 1、1101名优秀运动员拟保送&#xff0c;全红婵、黄雨婷、盛李豪在列&#xff1b; 2、世界羽联主席巴达玛&#xff1a;中国组织赛事的能力无与伦比&#xff1b; 3、中国首位、亚洲首位&#xff01;赵心童夺…...

智慧医院的可视化变革:可视化工具助力数字化转型

在科技飞速发展的当下&#xff0c;智慧医院已从概念逐步落地&#xff0c;深刻改变着传统医疗模式。它借助互联网、数字孪生及人工智能等前沿技术&#xff0c;在医疗服务领域掀起革新&#xff0c;涵盖面向医务人员的“智慧医疗”、面向患者的“智慧服务”以及面向医院的“智慧管…...

python+open3d选择点云上的某个点并获取其对应三维坐标

👑主页:吾名招财 👓简介:工科学硕,研究方向机器视觉,爱好较广泛… ​💫签名:面朝大海,春暖花开! python+open3d选择点云上的某个点并获取其对应三维坐标 1,引言2,效果展示3,点云获取4,程序1,引言 有时候我们只想在点云上获取某个目标的具体坐标,通过程序根据…...

ROS第十三梯:RViz+Marker——自定义几何形状可视化

1)概述 在ROS(Robot Operating System)中,Marker是一种用于在RViz(Robot Visualization)中显示自定义几何形状和注释的工具。Marker是通过visualization_msgs/Marker消息类型发布的。可以在RViz中以各种形式(如点、线、文本、立方体等)显示数据。 2)主要消息格…...

Java高频面试之并发编程-13

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天又来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;详解原子性、可见性、有序性 在并发编程中&#xff0c;原子性&#xff08;Atomicity&#xff09;、可见性&#xff08;…...

WSL 的 Ubuntu 子系统中启用图形化界面

sudo chmod w /home sudo apt update sudo apt install cifs-utils 1. 选择合适的 X 服务器 在 Windows 系统上&#xff0c;需要安装一个 X 服务器来处理 WSL 中 Ubuntu 的图形显示。常用的 X 服务器有 VcXsrv 和 X410&#xff0c;这里以 VcXsrv 为例&#xff1a; 从VcXsrv 官…...

项目模拟实现消息队列第二天

消息应答的模式 1.自动应答: 消费者把这个消息取走了&#xff0c;就算是应答了&#xff08;相当于没有应答) 2.手动应答: basicAck方法属于手动应答(消费者需要主动调用这个api进行应答) 小结 1.需要实现生产者,broker server&#xff0c;消费者这三个部分的 2.针对生产者和消费…...

MySQL OCP和Oracle OCP怎么选?

近期oracle 为庆祝 MySQL 数据库发布 30 周年&#xff0c;Oracle 官方推出限时福利&#xff1a;2025 年 4 月 20 日至 7 月 31 日期间&#xff0c;所有人均可免费报考 MySQL OCP&#xff08;Oracle Certified Professional&#xff09;认证考试&#xff08;具体可查看MySQL OCP…...

SR触发器为什么能够消抖

SR触发器&#xff08;Set-Reset触发器&#xff09;能够用于**消抖&#xff08;Debounce&#xff09;**&#xff0c;主要是因为它的双稳态特性和对输入信号的锁定能力。机械开关&#xff08;如按键、拨动开关&#xff09;在闭合或断开时&#xff0c;由于金属触点的弹性&#xff…...

2025ISCC练武校级赛部分题解WP

Web 战胜卞相壹 <!-- 路过的酒罐王柯洁九段说&#xff1a; --> <!-- 会叠棋子有什么用&#xff01;你得在棋盘内战胜他&#xff01;我教你个定式&#xff0c;要一直记得&#xff01;一直&#xff01; --> <!-- SGF B[ae];B[ce];B[df];B[cg];B[ag];B[ai];B[ci];…...

Microsoft Azure 在印度尼西亚区域正式上线

微软正式宣布&#xff0c;其首个落地印度尼西亚的云区域——Indonesia Central 已全面上线并正式投入使用&#xff01;这一区域精心设置了三个可用性区&#xff08;Availability Zones&#xff09;&#xff0c;每个可用性区均配备独立的电源、冷却系统以及网络设施&#xff0c;…...

day18 python聚类分析对数据集模型性能影响

聚类后的分析&#xff1a;推断簇的类型 知识点回顾&#xff1a; 推断簇含义的2个思路&#xff1a;先选特征和后选特征通过可视化图形借助ai定义簇的含义科研逻辑闭环:通过精度判断特征工程价值 作业&#xff1a;参考示例代码对心脏病数据集采取类似操作&#xff0c;并且评估特征…...

vue3的新特性

vue2 data属性和方法名散落于各个位置&#xff0c;量大了不好找 顺序变了&#xff0c;script在最前面 setup vue3中不用this&#xff0c;setup的执行时期比beforeCreate还要早&#xff0c;所以不要用this setup中写代码的特点 必须要有return&#xff0c;才能在上面使用 什么…...

NX二次开发——BlockUI 弹出另一个BlockUI对话框

最近在研究&#xff0c;装配体下自动导出BOM表格中需要用到BlockUI 弹出另一个BlockUI对话框。通过对网上资料进行整理总结&#xff0c;具体如下&#xff1a; 1、明确主对话框、子对话框1和子对话框2 使用BlockUI创建.cpp和.hpp文件&#xff0c;dlx文件内容如下所示 主对话框…...

《Overlapping Experiment Infrastructure: More, Better, Faster》论文阅读笔记

文章目录 1 背景2 三个核心概念3 Launch层&#xff1a;特性发布的专用机制4 流量分发策略和条件筛选4.1 四种流量分发类型4.2 条件筛选机制 5 工具链与监控体系6 实验设计原则7 培训参考与推荐 1 背景 谷歌&#xff08;Google&#xff09;以数据驱动著称&#xff0c;几乎所有可…...

【Machine Learning Q and AI 读书笔记】- 05 利用数据减少过拟合现象

Machine Learning Q and AI 中文译名 大模型技术30讲&#xff0c;主要总结了大模型相关的技术要点&#xff0c;结合学术和工程化&#xff0c;对LLM从业者来说&#xff0c;是一份非常好的学习实践技术地图. 本文是Machine Learning Q and AI 读书笔记的第5篇&#xff0c;对应原…...

前端面试测试题目(一)

一、Vue的双向绑定机制&#xff08;v-model底层实现原理&#xff09; Vue的双向绑定核心由 响应式系统 和 指令语法糖 共同实现&#xff0c;具体原理如下&#xff1a; 响应式系统 Vue通过数据劫持和依赖收集实现数据变化到视图的同步&#xff1a; • 数据劫持&#xff1a;在Vue…...