├── assets └── hackathon2022-topics.jpg ├── databend-local ├── databend-local-main.png └── README.md ├── .gitmodules └── README.md /assets/hackathon2022-topics.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/databendlabs/hackathon2022/HEAD/assets/hackathon2022-topics.jpg -------------------------------------------------------------------------------- /databend-local/databend-local-main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/databendlabs/hackathon2022/HEAD/databend-local/databend-local-main.png -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "doukeyi/RustHackathon2022"] 2 | path = doukeyi/RustHackathon2022 3 | url = https://github.com/doki23/RustHackathon2022 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Databend x Rust China Hackathon 2022 2 | 3 | ***Rust China Hackathon 2022 线上活动*** 4 | 5 | 首届 Rust China Hackathon Online 来啦!本届 Hackathon 主题为「Rust for Fun」,期待与你一起用 Rust 释放创新的更多可能性。 6 | 7 | 本届 Hackathon 将面向更广泛人群,分为 「社区组」与 「企业组」两大赛道。无论你是应用开发者、游戏开发者、云原生开发者,还是嵌入式开发者,都可以找到适合自己的方向,一起“玩转”Rust。 8 | 9 | 本届 Hackathon 报名通道于 2022 年 11 月 15 日正式开启,选手们可以自行组队参赛,通过初赛甄选后,将在线上完成 路演与决赛答辩,优胜队伍将获得奖金、企业直聘通道等支持。 10 | 11 | **报名入口:https://shimo.im/forms/NJkbE55P5WFLz7qR/fill** 12 | 13 | --- 14 | 15 | Databend 作为本届 Hackathon 的协办方,赞助参与本次企业组赛道,参赛选手可以围绕 Databend 组件或 Databend 生态周边进行创作,共同探索云原生数仓的魅力。 16 | 17 | ## 赛题说明 18 | 19 | 为了进一步丰富和提高 Databend 的能力,拓展 Databend 周边生态,参赛选手可以围绕 BI 数据分析、ETL 生态对接等主题做出贡献,也可以尝试从 SQL 能力拓展、内核功能增强、性能提高等角度 Hack 一把。 20 | 21 | ![hackathon 2022 topics](assets/hackathon2022-topics.jpg) 22 | 23 | ## 奖金安排 24 | 25 | - 一等奖:1 组,20000 元奖金+ 限量大礼包 + 社区访谈 + 企业直聘通道 26 | - 二等奖:1 组,10000 元奖金 + 限量大礼包 + 企业直聘通道 27 | - 三等奖:1 组,5000 元奖金 + 限量大礼包 28 | - 最佳参与奖:5 组 ,限量大礼包 29 | 30 | > 奖金以税前人民币计,所获奖项和奖励会根据实际表现授予,可能会出现奖项轮空的情况。最终解释权归 Datafuse Labs 所有。 31 | 32 | ## 赛程安排 33 | 34 | - 报名 + 组队:11.15 ~ 12.12 35 | - 组委会整理报名资料:12.12 ~ 12.14 36 | - 开发:12.15 ~ 12.18 37 | - 作品提交:12.19 38 | - 作品初评:12.20 ~ 12.25 39 | - 大赛线上路演:12.29 40 | - 作品颁奖:12.30 41 | 42 | ## 评审标准 43 | 44 | 选手需围绕选定主题做出一个完整的作品并由评审最终评选出获奖者。 45 | 46 | 根据黑客松的规则,需要有使用 Rust 编程语言。 47 | 48 | 评委将根据选手的提交,从新颖度、完成度、实用度这三个角度进行评审。 49 | 50 | ## 组队须知 51 | 52 | 允许 1 - 5 人组队参赛,只要你对开源和技术心怀热爱,即可报名参赛。 53 | 54 | > 每人只限参加一个团队。组委会将会对每个参赛人员进行审核。 55 | 56 | ## 作品提交 57 | 58 | 请按照赛程规定时间提交至此 GitHub Repo 下。 59 | 60 | ## 注意事项 61 | 62 | 1. 第一行代码 commit 的时间不得早于 12 月 14 日 23:59 ,否则即视为违规,取消参赛资格。 63 | 2. 每个项目一个独立目录提交。 64 | 65 | ## 联系方式 66 | 67 | 如有疑问,可邮件联系 68 | -------------------------------------------------------------------------------- /databend-local/README.md: -------------------------------------------------------------------------------- 1 | # databend-local 2 | 3 | ## 团队简介 4 | 5 | 队名:我也要吃螃蟹 6 | 7 | 队员:[eastfisher](https://github.com/eastfisher) 8 | 9 | ## 项目设计 10 | 11 | ### 背景 12 | 13 | 有时我们需要使用 SQL 语言分析本地数据文件,在享受 SQL 语言简洁、强大的分析能力的同时,又希望查询性能尽可能高。传统的一些基于 Python 的 SQL 查询工具性能较差,对大型数据文件、复杂 SQL 显得力不从心。Databend 作为新一代云原生数据仓库,在查询性能、运维复杂度方面有着较大优势。然而目前的情况是,要使用 Databend 必须先搭建一套 Databend 集群(或者使用 Databend Cloud),然后用 Client 连接到集群进行查询,这对于本地文件分析有些“牛刀割鸡”了。在这方面,OLAP 先驱 ClickHouse 提供了一个很好的思路:将最核心的查询引擎剥离出来,做成一个命令行工具(就是 [clickhouse-local](https://clickhouse.com/docs/zh/operations/utilities/clickhouse-local/)),在不启动集群的情况下执行本地文件分析。目前 Databend 还没有类似的功能,那么这次 Hackathon 我们就来撸一个 databend-local 试试。 14 | 15 | ### 设计 16 | 17 | 参考 `query` 节点从启动初始化到通过 HTTP 请求接收 SQL 并执行的整个流程,来设计一个精简的 local 处理流程。 18 | 19 | 20 | 21 | `query` 的 GlobalServices 里面有一些是 `local` 用不到的 (如 ClusterDiscovery、DataExchangeManager),`local` 初始化可以精简一下。 22 | 23 | ## 代码实现 24 | 25 | 提交到 databend 代码仓库。 26 | 27 | https://github.com/datafuselabs/databend/pull/9282 28 | 29 | ## Demo 30 | 31 | ### 基本功能 32 | 33 | ```bash 34 | > export CONFIG_FILE=tests/local/config/databend-local.toml 35 | > cargo run --bin=databend-local -- --sql="SELECT * FROM tbl1" --table=tbl1=/path/to/databend/docs/public/data/books.parquet 36 | 37 | sql: SELECT * FROM read_parquet('/path/to/databend/docs/public/data/books.parquet') 38 | +--------------------------------+-----------------------+--------+ 39 | | title | author | date | 40 | +--------------------------------+-----------------------+--------+ 41 | | "Transaction Processing" | "Jim Gray" | "1992" | 42 | +--------------------------------+-----------------------+--------+ 43 | | "Readings in Database Systems" | "Michael Stonebraker" | "2004" | 44 | +--------------------------------+-----------------------+--------+ 45 | | "Transaction Processing" | "Jim Gray" | "1992" | 46 | +--------------------------------+-----------------------+--------+ 47 | | "Readings in Database Systems" | "Michael Stonebraker" | "2004" | 48 | +--------------------------------+-----------------------+--------+ 49 | 4 rows in set (0.0163 sec) 50 | ``` 51 | 52 | ### 性能测试 53 | 54 | TODO: 对比 clickhouse-local, dsq 55 | --------------------------------------------------------------------------------