CI配置时使用Makefile有哪些好处?
CI配置时使用Makefile有哪些好处?
一、什么是 Makefile?
Makefile 本质上是一个包含了一系列规则的文件。这些规则定义了如何编译和链接程序,每一个规则都由以下三个部分组成:
目标(Target): 想要生成的文件或想要执行的操作的名称,比如 install、test、clean 等。
依赖(Prerequisites): 为了生成目标,所需要依赖的文件或其他目标。
命令(Commands): 为了通过依赖来生成目标所需要执行的 shell 命令。
一个 Makefile 的基本结构如下:
123target: prerequisite1 prerequisite2 command1 command2
关键特性:
自动化: make 工具会自动读取 Makefile 并执行指定的命令,从而自动化编译、测试、部署等一系列任务。
抽象化: 可以将复杂的、多步骤的 shell 命令封装在一个简单的 make 命令背后。例如,make test 可能包含了安装依赖、启动数据库、运行测试套件、生成报告等多个步骤。
二、为什么在 CI 配置中使用 Ma ...
Windows通过Rust使用DuckDB碰到的问题
Windows通过Rust使用DuckDB碰到的问题
DuckDB的一些问题只在windows上有, macOS和Linux上没有, 所以记录一下
报错: error: linking with link.exe failed: exit code: 1120
具体报错如下:
1234567891011error: linking with `link.exe` failed: exit code: 1120 | = note: "D:\\cpptools\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\link.exe" "/NOLOGO" "C:\\Users\\levit\\AppData\\Local\\Temp\\rustcjagjai\\symbols.o" "<72 object files omitted>" "D:\\RustProject\\swan-lake\\Playground\\duckdb-eval\ ...
Iceberg快速入门
Iceberg
为什么需要Iceberg/为什么需要Lakehouse
数据湖的最主要目的是为了解决Hive速度慢的问题, 利用表格式和索引实现细粒度的数据过滤. 数据湖可以将整个链路变为分钟级, 从离线链路转化为近实时链路并且提升查询速度. 当然, 数据湖还解决了一些其他问题, 如ACID, Schema Evolution, Partition Evolution, Time Travel等.
文件布局
具体查询流程就是从Catalog -> Table Metadata File -> Snapshot -> Manifest List -> Manifest File -> Data File. 如图所示
Catalog
Catalog 本质就是一个维护表元数据文件的目录(个人理解), 有多种实现方式:
HiveCatalog
Hive Metastore
表属性中key值为metadata_location的键值对
HadoopCatalog
文件系统
version-hint.text
JDBC Catalog
关系型数据库 ...
DolphinScheduler配置Seatunnel同步任务出错(从MySQL同步数据到Doris)
DolphinScheduler配置Seatunnel同步任务出错(从MySQL同步数据到Doris)
DolphinSScheduler版本3.2.0, Seatunnel版本2.3.4
错误日志
定义好工作流后, 上线运行报错, 关键日志入下:
12345678910111213141516171819202122[INFO] 2025-02-16 13:02:00.427 -0800 - tenantCode :root, task dir:/tmp/dolphinscheduler/exec/process/root/16670700117984/16677825236448_2/2/3[INFO] 2025-02-16 13:02:00.429 -0800 - generate script file:/tmp/dolphinscheduler/exec/process/root/16670700117984/16677825236448_2/2/3/seatunnel_2_3.conf[INFO] 2025-02-16 13:02:00.433 -0800 - SeaTun ...
安装Superst报错 Failed building wheel for python-geohash&Command errored out with exit status 1
安装Superst报错 Failed building wheel for python-geohash&Command errored out with exit status 1
具体报错如下图所示:
前置操作
123456789101112conda --version#conda 23.5.2#创建虚拟环境conda create -n superset python=3.6#激活conda activate superset#安装依赖pip install sqlalchemy==1.3.24 pip install dataclasses==0.8 pip install --upgrade cryptography==3.2#安装Supersetpip install apache-superset
分析与解决办法
看到报错判断出编译环境出了问题, 然后想到使用anaconda作为环境安装应该不会出现错误才对, 出于谨慎先检查gcc
12rpm -q gcc#gcc-8.5.0-3.el8.x86_64
gcc存在, 应该不是它的问题, 经过搜索发现可能是缺少 ...
Bigtable Paper Reading
Bigtable Paper Reading
资料推荐: 深入浅出BigTable, B站似乎也有搬运, 看不了YouTube的小伙伴可以搜一下.
Bigtable的设计目标是为了达到广泛的应用性, 可扩展, 高性能和高可用, 我将从这几个目标来谈谈我对这篇论文的理解.
可扩展
Bigtable是一个稀疏的、分布式的、持久的多维有序map,该map是基于行键(row key), 列键(column key), 时间戳(timestamp)三者建立索引的, map中的每个值都是一个未解释的字节数组. 每一条数据有一个行键, 通过行键可以原子性地读写一条数据. 一条数据包含了多个列族(column family), 不同行数据的同一列族内, 可以定义不同的列. 每一个列不仅可以保存值,而且可以保存多个版本,每个版本包含了一个时间戳。
列键被组织成一个叫列族的集合, 作为访问控制的基本单位. 存储在同一列族内的数据通常具有相同的类型, 在存储任何列键的数据之前必须先创建列族. 创建列族完成后, 列族中的任意列键都可以使用.
从上图我们可以看出bigtable的表设计是一张灵活的," ...





