44|数据处理:应用程序和数据如何打交道?
陈天
该思维导图由 AI 生成,仅供参考
你好,我是陈天。
我们开发者无论是从事服务端的开发,还是客户端的开发,和数据打交道是必不可少的。
对于客户端来说,从服务端读取到的数据,往往需要做缓存(内存缓存或者 SQLite 缓存),甚至需要本地存储(文件或者 SQLite)。
对于服务器来说,跟数据打交道的场景就更加丰富了。除了数据库和缓存外,还有大量文本数据的索引(比如搜索引擎)、实时的消息队列对数据做流式处理,或者非实时的批处理对数据仓库(data warehouse)中的海量数据进行 ETL(Extract、Transform and Load)。
今天我们就来讲讲如何用 Rust 做数据处理,主要讲两部分,如何用 Rust 访问关系数据库,以及如何用 Rust 对半结构化数据进行分析和处理。希望通过学习这一讲的内容,尤其是后半部分的内容,能帮你打开眼界,对数据处理有更加深刻的认识。
访问关系数据库
作为互联网应用的最主要的数据存储和访问工具,关系数据库,是几乎每门编程语言都有良好支持的数据库类型。
在 Rust 下,有几乎所有主流关系数据库的驱动,比如 rust-postgres、rust-mysql-simple 等,不过一般我们不太会直接使用数据库的驱动来访问数据库,因为那样会让应用过于耦合于某个数据库,所以我们会使用 ORM。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了如何利用 Rust 进行数据处理,包括访问关系数据库和对半结构化数据进行分析和处理。针对数据库访问,文章详细介绍了使用 ORM 框架和直接使用数据库驱动的方法,并展示了 Rust 处理数据库的强大和简约特点,以及 sqlx crate 的使用方法。此外,文章还展示了如何使用 datafusion 构建一个 Nginx 日志的命令行分析工具,突出了 Rust 在半结构化数据分析方面的优势。通过示例代码和实际操作指南,读者能够快速了解 Rust 在数据处理方面的优势和特点。整体而言,本文为读者提供了丰富的实践经验,展示了 Rust 在处理数据方面的强大功能和灵活性。 文章还提出了两个思考题,分别是使用 diesel 或 sea-orm 实现用户注册/登录功能,以及使用 datafusion 读取和查询不同类型的半结构化数据。这为读者提供了进一步探索 Rust 数据处理能力的机会。总的来说,本文内容丰富,涵盖了数据库访问和半结构化数据处理的方方面面,对于想要深入了解 Rust 数据处理能力的读者来说,是一篇具有实际指导意义的文章。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《陈天 · Rust 编程第一课》,新⼈⾸单¥68
《陈天 · Rust 编程第一课》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(7)
- 最新
- 精选
- pedro最近工作很忙,经常加班,有时间抽空来看看,仍然收获颇丰。 看完今天这一章,有一种强烈的感受:这不仅是Rust编程第一课,很有可能也是唯一的一课,内容太丰富了。
作者回复: 我也是特别忙,好几次都差一点断更。留言更是拖到现在才开始一点点回复,惭愧啊。
2021-12-107 - 乌龙猹课程进入到了尾声,感觉啥也没学到,感觉又学到了很多。整个课程内容夯实,体系结构清晰。值得反复品味。这是 Rust 编程的第一课,而真正的 Rust 之旅才刚刚开始。
作者回复: 加油!除了学,还要大量地练习,尝试用 Rust 解决身边的小问题。
2021-12-104 - 罗杰哈,我也觉得 ORM 太过笨重,还是 sqlx 直观。我的项目全部都是 sqlx,C++ 和 Go 都是。
作者回复: 嗯,同感
2021-12-103 - Colt补充下: 运行example/user 的例子需要注意下面2点: 1. 需要在example 同级目录下创建 data/example.db 文件否则报 `unable to open database file` 2. `recreate_table` 方法下第一条sql 需要改为 `drop table if exists users` 否则首次运行会报 `no such table: users`
作者回复: 多谢!1) 我让编辑加一句,2) 已更新 github repo,也让编辑在文章中帮忙修改了。
2021-12-23 - Geek_b251b3陈老师能点一下为什么使用pool的时候需要的是pool.clone()么2022-05-28
- Jaggersqlx 连接MySQL8 存在8小时时差的问题,陈老师有没有什么好的办法解决?2022-03-131
- Geek_994f3b用户注册登录有什么最佳实践可以参考么2022-03-09
收起评论