码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 开源项目观察8月报


    前言

    总结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
    
    • 1

    在这里插入图片描述

    • 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

  • 相关阅读:
    修改linux下tomcat使用的jdk
    Optional的应用
    Jenkins - macOS 上安装
    【前后缀统计】面试题 05.03. 翻转数位
    Habor数据迁移方式有多少,skopeo效率最好
    redis中常见的问题(缓存穿透,缓存雪崩,缓存击穿,redis淘汰策略)
    Python--traceback模块的基本用法(异常处理)
    SpringBlade CVE-2022-27360 export-user SQL 注入漏洞分析
    impala取重复数据时间最晚的一条(分组聚合)
    aop+springboot实现数据字典表
  • 原文地址:https://blog.csdn.net/xiaoliizi/article/details/132702146
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号