陋室快报 | 算法工程师的常用数据工具-20211127

陋室快报

陋室快报是对陋室推荐栏目更新优化后的版本,更快更准的给大家推荐优质信息,频率预计是一周一次。敬请关注。栏目介绍:陋室快报栏目介绍。

近期,我再次总结了我的历史文章,累积起来有50w字,百余篇文章了,有兴趣可以拿来看看,获取方式:七夕清流,百余篇累计50w字文章合集发布

往期回顾:

算法工程师除了接触算法,另一个需要接触的就是各种数据了,俗话说巧妇难为无米之炊,这里就给大家介绍一些算法工程师常用的数据工具吧,相信很多都是大家熟悉的,如果不熟悉,大家可以按需抽空学起来~

本地数据

算法要用数据来进行训练,更多的就是用本地的数据,因此本地的数据存储是最基本的,来看看都有哪些形式:

  • 纯文本txt:超高的灵活度,但是需要自己写解析脚本,处理的难度也较高。

  • csv/tsv:比纯文本好,灵活度能基本保持,解析脚本也比较简单。

  • Excel:最适合在windows环境阅读的数据结构,但是数据有上限约束,而且读取和写入需要的代码量不少,linux环境不好阅读。

  • json:一种比较规整规范的数据,结构上灵活性可以说是拉满,但是编辑起来的成本比较高,不符合结构规则就读不了了,用的比较少,一般是配置文件之类的会用到,少量复杂数据也可能会用到。

这些本地的数据结构都很简单,读写总体还是比较方便的,而且因为是离线,所以用起来不需要网络。代码读取上,有一些简单的python基础就能用了,所以非常简单。

大数据存储

一些比较大的数据,不适合长期放在本地,就可以考虑放在类似“网盘”的地方了,当需要的时候就可以使用,目前能承担这个功能的,我知道的有两个,分别是ocs和hdfs,前者我用过,但是临时存储大都是用后者,所以这里聊聊hdfs。

这里的hdfs大部分情况,并不需要我们自己搭建,公司会有平台部门或者其他大佬搭建好,我们只需要会使用即可,主要就是增删改,以及上传下载。

  • 百科:https://baike.baidu.com/item/hdfs/4836121?fr=aladdin

  • linux环境下的命令:http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html

  • python库:https://pypi.org/project/hdfs/

有这些知识,hdfs估计就够用了。

另外,说到了hdfs,就还想聊hive,这些都是hadoop全家桶里的东西,某些情况上看hdfs其实是一个升级版,有更规范的数据后,理论上是应该支持更复杂的查询的,这里hive就实现了这个功能。

  • pyhive:https://github.com/dropbox/PyHive

常用的数据库

这些数据库,就是经常给我们存储和使用数据的了,常见的是在线服务的使用,用来做一些查询的工作,这些工具能在线数据快速读取,背后也支持快速更新。

mysql

入门级数据库,专门学过数据库的就应该知道,需要通过sql来对数据进行增删改查处理,所以灵活性很高**(强烈建议大家学一下sql整套逻辑体系,对数据的抽取和使用理解有很大好处)**。这个在python也有一些对应的包,windows可以参考navicat(请大家尽量支持正版),linux有mysql客户端就行。至于怎么搭,平时自己玩其实没太大必要,所以可以先跳过。

  • pymysql:https://github.com/PyMySQL/PyMySQL

  • linux mysql命令:https://www.cnblogs.com/mylqm/p/14953076.html

redis

redis同样是一个非常常用的工具,他本身出现的目的很简单,就是为了查询,因为他是那种k-v的查询,即根据门钥匙开锁的,一个锁对一个门,这个查询的速度非常快,当然会缺乏一些灵活性,但是在线往往是需要这种速度的,例如缓存cache就用的他,我们要学会的是怎么存取,以及一些存取的规则。

  • redis官网:https://redis.io/

  • redis教程:https://www.runoob.com/redis/redis-tutorial.html

  • python的redis:https://pypi.org/project/redis/

mongodb

mongo是一种非关系的数据库,灵活性更好,在线也经常会使用,有兴趣可以get起来。

  • mongodb官网:https://www.mongodb.com/

  • mongodb教程:https://www.runoob.com/mongodb/mongodb-tutorial.html

  • pyhon的mysql:https://pypi.org/project/pymongo/

elastic search

就是所谓的ES,这个在搜索中非常常用,是一个非常完整的搜索引擎,本身在线支持倒排索引,所以非常方便。

  • ES的官方文档:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

  • python版:https://pypi.org/project/elasticsearch/

小结

上述各种工具,其实都比较基本,我们作为算法而非工程,对一些数据库中间件之类的能力要求不太高,但我们不应设置边界,至少也应该了解这些工具,了解一些基本的增删改查,这种更有利于我们的边界扩大,了解更多。这里,我感觉大家最好从这两个方面去了解更为合适:

  • 数据类型。了解每个数据库中存储各个数据类型,这样在我们存取的时候有初步的了解。

  • 增删改查。不要求搭建,但是使用还是得会用的,增删改查就是数据库最基本的功能,我们都需要学会使用。

67a61b9c130db44ba43d78c85de10cbf.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值