开源项目观察8月报

news2024/11/25 3:26:30

前言

总结8月份自己关注的一些项目/语言的新版本

大数据

hue

1月19: 4.11
https://docs.gethue.com/releases/release-notes-4.11.0/

在这里插入图片描述

  • 支持 iceberg 数据源

  • 通过缓存 Livy session 中的信息来加速 SparkSQL,并适配 Spark UDF

  • 支持 HPL/SQL: hive sql 的高级语法,支持中间结果保存、循环等

总结: 基本是小改进,界面样式和4.10一致

starrocks

8月25: 3.1.2

在这里插入图片描述

3.1 版本相关的新特性(部分)

  • 存算分离: 支持主键模型

  • 存算分离: 抽象 存储卷(Storage Volume) 概念,方便在不重启集群的情况下,对对象存储的配置进行修改

  • Catalog: 支持 ES、Paimon

  • 物化视图: 可以通过ALTER手动重新激活物化视图(用于解决 base 表重建后,物化视图将失效的问题)

  • 物化视图: 通过 swap 可进行视图语句替换

  • 物化视图: 支持随机分桶(Random Bucketing)

  • 物化视图: 支持通过 ORDER BY 指定排序键

  • 建表: 支持自增列属性 AUTO_INCREMENT,提供表内全局唯一 ID

  • 建表: 通过分区表达式自动创建分区,比如 day 表示按天分区

  • 建表: 支持随机分桶(仅支持明细表)

  • 建表: 支持使用 colocate_group、storage_medium(存储介质 如:SSD)、storage_cooldown_time 等属性

  • 建表: 支持生成列(generated column),自动计算表达式结果,提升查询性能

  • 导入数据: 通过 insert into 导入数据的时候支持 files 函数,不需要先建 catalog

总结: starrocks 作为目前比较流行的实时数仓服务,3.0 版本在物化视图的改进还是很足的,非常建议尝试

airflow

8月18: 2.7.0

在这里插入图片描述

  • python基础版本: 不再支持 3.7, 支持 3.8, 3.9, 3.10, 3.11

  • UI: 新 graph 界面

  • smtp: 默认使用 ssl.create_default_context 创建 ssl 客户端,可通过 email-ssl_context 配置其他校验级别

  • UI:出于安全性考虑,默认禁用在界面、API 和 CLI 侧对 connection 触发测试,可通过 test_connection 选项配置
    可选值: Disabled, Enabled, Hidden

之前版本的dag界面:

在这里插入图片描述

新版本dag界面:

在这里插入图片描述

总结: 基本功能改动不大,有两个主要特性都和安全性相关

presto

8月8: 0.283

0.276 ~ 0.283 的部分改进

  • JDBC: 增加 metadata 的缓存,通过三个配置控制: metadata-cache-ttl, metadata-cache-refresh-interval 和 metadata-cache-size
    参考 hive 配置

  • ES: 支持配置用户密码校验,参数将透传给ES

jupyter

4.0

快速使用:

docker run -it --rm -p 8888:8888 jupyter/datascience-notebook:lab-4.0.5

在这里插入图片描述

  • code editor: 使用新版 codemirror 6,配置更有效和方便,比如只隐藏 markdown 格式的左侧行数

  • extension: 可以直接引用通过 pip 安装的依赖,不再需要本地再把 extension 项目重新 build 的过程

  • 基本操作: 优化搜索功能,支持选中搜索、多行搜索

  • UI: 增加 ctrl + shift + H 快捷键查看热键,在 notebook 底部增加创建新代码块按钮等

在这里插入图片描述

  • 协作: 通过 jupyter-collaboration 支持多用户协作编辑同个 notebook

总结: 4.0 版本之后界面样式和 3 差不多,不过还是能看到很明显的一些细节改进,值得尝试

seatunnel

2.3.3

参考: Apache SeaTunnel 2.3.3 版本发布,CDC 支持 Schema Evolution!
Apache SeaTunnel 2.3.3 Released with CDC Support for Schema Evolution!

  • 实时同步: flink cdc 支持表结构同步(DDL)

  • 实时同步: flink cdc 支持对无主键表的唯一索引列进行 split 拆分

  • mongo: 支持 mongo cdc

编程语言

golang

1.21

Go 1.21 is released!(8月8日)

Go1.21 那些事:泛型库、for 语义变更、统一 log/slog、WASI 等新特性,你知道多少?

Is Go 1.21 already on your upgrade list? It should be!

  • 日志: 标准库新增 slog,支持格式化日志输出、自定义 handler 和 日志等级
    reddit 上的讨论: 大部分开发者都很欢迎 go 官方支持了slog

  • 内置函数: 新增 max、min、clear。不再需要通过 math.Max 调用,且通过泛型支持不同基础类型传参

  • 内置函数: cmp 支持泛型

  • 基础类型: map、slice 支持泛型,并提供支持泛型的 maps、slices 工具库
    常用方法: slices.Sort、maps.Equal 等

  • 泛型: 性能提升
    Understanding Go 1.21 generics type inference

  • 基本语法: for 循环变量赋值语义变更,可通过添加 GOEXPERIMENT=loopvar 参数控制让局部变量每次赋予新值,避免在循环内开启协程、使用指针时出现不符预期的结果,参考: Using reference to loop iterator variable

  • 编译: PGO(Profile Guided Optimization) 正式发布,通过在 main 代码目录放置 default.pgo(可通过 /debug/pprof/profile 接口生成的 profile)文件来开启 PGO build,将对程序性能有 2% - 7% 的提升

  • 命令行和工具: go tool 支持向前(旧版本)兼容和向后(新版本)兼容
    向前: 如设置 GODEBUG=http2client=0,http2server=0 可禁用 net/http 库的 http2 功能,参考
    向后: 如通过 GOTOOLCHAIN=go1.21rc3 go test 参数设定 go tool 使用的版本,参考

  • Context: context 新增 WithoutCancel 、WithDeadlineCause 、 WithTimeoutCause、AfterFunc 等方法

  • 其他特性等: 支持 WASI;增加全局的 $GOROOT/go.env 配置解析(优先级: 系统环境变量 > 用户路径下的 go.env,即 $HOME/.config/go/env > $GOROOT/go.env)等

总结: 相比泛型,像日志库、一些内置函数和 context 新增方法反而更让笔者眼前一亮,这些是在旧功能上进行的添彩功能,可能在平时更能用上

c++

10分钟速览 C++20 新增特性

新版 C++ 特性(c++11)

What Is Modern C++ in 2023?

The most notable changes in C++20 are

官方-C++20

注意: 使用 gcc 编译需要先升级到 10 以上版本 - 参考

  • 模块管理: 通过模块进行依赖引用,减小编译后文件大小
    扩展: C++20 新特性: modules 及实现现状
    扩展: C++ 之父 Bjarne Stroustrup 对模块功能的介绍
    C++20 新特性: modules 及实现现状

  • 基础语法: 支持 coroutine(协程)

  • 基础语法: 支持 concepts+requires 语法,可以更方便地使用泛型,参考

  • 基础语法: Ranges: 更方便地编写迭代器、过滤器的语法
    – 但是对 ranges 的看法五花八门,参考一篇知乎

  • 基础语法: 支持条件约束(Contract Programming): 可定义前置条件、后置条件、错误、断言和不变量等,可以更早地在编译阶段发现程序问题
    – 如: nodiscard: 规定方法返回值要获取,invariant: 规定方法内部不对入参进行修改
    – 注意: 只是在编译产生警告,不会直接导致编译错误

  • 基础类型: 原子类型,操作方法有 store、load、fetch_add 等

总结: 更新虽然很多,但是 coroutine 使用起来需要引入相关的如此多的关键字,着实让我敬而远之。类似的吐槽,其中有人建议使用封装后的库 如 cppcoro,以及对比 Rust 语言的 Async 和 Await 用法: Async/Await for AVR with Rust

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/978020.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React 状态管理 - Redux 入门

目录 扩展学习资料 Redux基础 Redux动机 Redux核心概念 Redux的三个原则 Redux运转图 React & Redux的搭配使用 Redux API React-Redux API(关联组件) 从头创建一个工程 package.json /src/reducer/index.js /src/reducer/home/index.js…

springboot配置统一返回结果类

目录结构&#xff1a; Result类&#xff1a; package com.xxxx.common.result;import lombok.Data;Data public class Result<T> {//状态码private Integer code;//信息private String message;//数据private T data;//构造私有化private Result() { }//设置数据,返回对…

如何分库分表?

分析&回答 分库&#xff1f;分表&#xff1f;还是既分库又分表&#xff1f; 如果需要分表&#xff0c;那么分多少张表合适&#xff1f; 由于所有的技术都是为业务服务的&#xff0c;那么&#xff0c;我们就先从数据方面回顾下业务背景。 如果每天产生 8w 笔交易单&#…

RouterOS-配置PPPoEv4v6 Server

1 接口 ether3 出接口 ether4 内网接口 2 出接口 出接口采用PPPoE拨号SLAAC获取前缀&#xff0c;手动配置后缀 2.1 选择出接口interface&#xff0c;配置PPPoE client模式 2.2 配置PPPoE client用户名和密码 2.3 从PPPoE client获取前缀地址池 2.4 给出接口选择前缀并配置…

GIS:DataStore数据管理框架

1.架构设计 OGC 规范对空间矢量数据的框架进行了设计&#xff0c;GeoTools 对其进行了实现。其中的 DataStore 可以近似理解成关系数据库中的个数据库实例&#xff0c;FeatureSource 可以近似理解成关系数据库中的一张表。 DataAccess 接口主要对空间要素类型的相关信息的构建…

MySQL连接错误1045:完美解决指南

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

第五章 数据分析模型 题目学习(40%)

第一节 主成分的计算步骤&#xff1a;1、主成分建模&#xff0c;标准化处理。2、计算特征根、特征向量。3、选取主成分个数。 题目 选择B&#xff0c;依次递减。 相关系数和关联矩阵都做了标准化&#xff0c;做完标准化后方差就不会造成影响&#xff0c;所以选A。 A可以进行判断…

JavaScript-----对象(创建对象、数组与字符串)

目录 前言&#xff1a; 1. JavaScript创建对象 1.1 对象的创建 1.2 对象的调用 1.3 for-in循环语句 2.内置对象 2.1 Array&#xff08;数组&#xff09;对象 属性和方法 2.2 String&#xff08;字符串&#xff09;对象 属性和方法 2.3 Math对象 2.4 日期对象 前言&a…

华为云API对话机器人CBS的魅力—实现简单的对话操作

云服务、API、SDK&#xff0c;调试&#xff0c;查看&#xff0c;我都行 阅读短文您可以学习到&#xff1a;人工智能AI智能的问答管理、全面的对话管理、高效训练部署 1.IntelliJ IDEA 之API插件介绍 API插件支持 VS Code IDE、IntelliJ IDEA等平台、以及华为云自研 CodeArts …

Unity项目包体优化经验方法论(Android平台)

前言 本篇文章主要讲解对于Unity Android平台也就是APK包体的优化经验&#xff0c;使用哪些工具能够更加便利的定位资源重灾区。本篇讲解的方法中对于Unity资源使用的AssetBundle的方式&#xff0c;如果使用addressable或其他资源管理方式&#xff0c;我还不是很清楚是否适用&…

Vue + Element UI 前端篇(六):更换皮肤主题

自定义主题 命令行主题工具 1.安装主题工具 首先安装「主题生成工具」&#xff0c;可以全局安装或者安装在当前项目下&#xff0c;推荐安装在项目里&#xff0c;方便别人 clone 项目时能直接安装依赖并启动。 yarn add element-theme --dev 2.安装chalk主题 安装白垩主题…

STC15单片机特有的PWM寄存器和普通定时器实现PWM输出

STC15单片机特有的PWM寄存器和普通定时器实现PWM输出 🌿主要针对STC15W4型号特有的6通道15位专门的高精度PWM。 ✨STC15W4K32S4系列单片机具有6通道15位专门的高精度PWM(带死区控制)和2通道CCP(利用它的高速脉冲输出功能可实现11~16位PWM);(STC15F/L2K60S2系列单片机具有3通…

RC-u4 相对论大师(bfs求解指定路径)

PTA | 程序设计类实验辅助教学平台 题解&#xff1a; bfs可以求解从根节点到叶子节点的指定路径&#xff0c;这里的vis[]不是为了防止访问到父节点&#xff0c;更多的是为了缩小路径长度&#xff0c;mpp和mp的映射也很巧妙&#xff0c;开始我用的还是map<pair<string,s…

用通俗易懂的方式讲解大模型分布式训练并行技术:流水线并行

近年来&#xff0c;随着Transformer、MOE 架构的提出&#xff0c;使得深度学习模型轻松突破上万亿规模参数&#xff0c;传统的单机单卡模式已经无法满足超大模型进行训练的要求。因此&#xff0c;我们需要基于单机多卡、甚至是多机多卡进行分布式大模型的训练。 而利用AI集群&…

怎么用conda下载清华源的pytorch(自带cuda的版本)

1&#xff0c;添加镜像源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…

大数据课程K22——Spark的SparkSQL的API调用

文章作者邮箱&#xff1a;yugongshiyesina.cn 地址&#xff1a;广东惠州 ▲ 本章节目的 ⚪ 掌握Spark的通过api使用SparkSQL&#xff1b; 一、通过api使用SparkSQL 1. 实现步骤 1. 打开scala IDE开发环境&#xff0c;创建一个scala工程。 2. 导入spark相关依赖…

介绍 dubbo-go 并在Mac上安装,完成一次自己定义的接口RPC调用

目录 RPC 远程调用的说明作用&#xff1a;像调用本地方法一样调用远程方法和直接HTTP调用的区别&#xff1a;调用模型图示&#xff1a; Dubbo 框架说明Dubbo Go 介绍应用 Dubbo Go环境安装&#xff08;Mac 系统&#xff09;安装 Go语言环境安装 序列化工具protoc安装 dubbogo-c…

【VSCode】文件模板创建及使用.md

背景 最近使用VSCode学习Vue项目比较频繁&#xff0c;每次创建Vue文件都要手动写重复代码&#xff0c;特别麻烦&#xff0c;就上网查找自动生成代码的说明&#xff0c;结果发现VSCode有代码模板&#xff0c;怪怪&#xff0c;感觉发现新大陆了(low!)。 配置 打开配置 方式一&a…

通过slam同步建图程序看ros2节点参数传递生效顺序

缘起&#xff1a; ros2 节点参数可以通过启动节点添加&#xff0c;也可以通过launch文件添加&#xff0c;还可以通过配置文件.yaml文件添加&#xff0c;或者是几种方式套用添加&#xff0c;给初学者带来很大的困惑具体是哪个生效了呢&#xff0c;我们拿slam_toolbox 包的onli…

shell脚本介绍

当你进入Linux世界的大门时&#xff0c;就会遇到一个强大而又神奇的工具——Shell。Shell是一种命令行解释器&#xff0c;为你在Linux系统中与计算机进行互动提供了无限的可能性。 学习Shell可以让你获得强大的自动化和脚本编程能力&#xff0c;让你更高效地处理文件和目录、管…