Mac duckdb 测试环境

Posted by danner on May 26, 2023

老规矩:Mac 上开发,docker 上编译测试;这次直接在 Mac 上安装启动docker。

git code

在github 上fork duckdb 代码后,在mac 上git code

git clone https://github.com/user/duckdb.git

git remote add upstream https://github.com/duckdb/duckdb.git    # 后续代码同步 pull
git fetch upstream master

git checkout -b RTFSC   # 拉个分支出来测试

docker

在Mac 安装docker doesktop 。注意m1/m2 要选择Apple Chip

挂载duckdb 代码,启动一个 centos 7 镜像的docker contianer

docker pull centos:7
docker run -it \
-v /用户目录/duckdb:/root/duckdb # git clone 代码挂载到容器 /root/duckdb 目录
--name duckdb-test 
-d centos:latest

# 进入docker
docker exec -it duckdb-test /bin/bash

编译

# 安装一些依赖
 yum install cmake -y
 yum install make -y
 yum install -y python3
 yum install gcc gcc-c++ -y
 
 # build 
make debug

测试

编译成功会生成 build 目录,进入 build/debug ,执行

[root@4aa492bb9986 debug]# ./duckdb
v0.0.1-dev0
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
D

查询csv 文件

D SELECT * FROM read_csv_auto('/root/duckdb/data/csv/dirty_line.csv');
| COL1 | COL2 | COL3 |
|------|------|------|
| 1.5  | a    | 3    |
| 2.5  | b    | 4    |
D SELECT sum(COL3) FROM read_csv_auto('/root/duckdb/data/csv/dirty_line.csv');
| sum(COL3) |
|-----------|
| 7         |
D

代码修改

Mac 上 Clion 直接打开duckdb 根目录,等待自动加载;加载完成后代码点击后能自动跳转,可以开始阅读和修改代码。

修改后,在docker 上编译和测试。