2026-7-22 规划了学习路径,学习了SQL前置部分,了解了关系型数据库和非关系型,关系型数据库表现为严格二维表格,特点是准,严稳,就是绝对不允许出错,在银行转帐,订单方面应用。非关系型表现为不规整的文档JSON,键值对,对象,图等。特点是快,大,活,,可以轻松录入,允许结构变化,在缓存,游戏排行榜等,数据工程师一般是处理非关系型数据,整理转化成关系型的表格,实现数据价值的聚合。数据工程师搭建数据管道,让数据在关系型和非关系型之间按需流动,在正确的时间以正确的形态到达正确的地 方。 关系型为了保证绝对正确(ACID),牺牲了灵活性。比如加一个新字段,需要锁表并重建整个表文件,这在海量数据下可能耗时数小时。而非关系型因为没有固定表结构,随时可以往JSON里塞新字段,无需停机
关系型数据库(如MySQL):严格二维表格,靠ACID事务保证绝对准确(银行转账、订单)。优点是准、稳、严;代价是改表结构极难(需锁表重建),海量数据下扩容成本高。
非关系型数据库(NoSQL):形态多样(JSON/键值对/图/列族),靠弱化一致性换取灵活性和性能。优点是无模式(随时加字段)、内存/缓存友好(Redis)、一次I/O读取完整文档(MongoDB);缺点是难以做复杂关联查询。常用于缓存、实时排行榜、日志存储。
数据工程师的角色:不是“单向转化”,而是数据管道的搭建者——从非关系型(日志/消息)中抽取,清洗、关联后,按业务需求存入关系型数仓(做报表)或非关系型缓存(做实时服务),甚至反向导出。目标是让数据在正确的时间以正确的形态到达正确的地方。
2026-7-23 下载安装了MySQL,安装出错有控制面板,计算机管理,任务管理器三个关闭方式,前一个安装版本没删干净容易弹“Error5”权限问题,安装失败,重启用控制面板重新删除,关闭进程,删除相关文件即可,一般控制面板删除包括进程,注册表和文件,比较省心。
2026-7-24 完成了第一道SQL编程题,在MySQL中查询所有列可用select * form 表名,select 会返回所有列但需要把解析为所有列名,在实际操作开发中效率低,且容易放大表的结构改变后的兼容问题,引发结构性错误,简单来说就是,比如第二个索引取第二个数据,假如表变化,本来取int整数变成取varchar字符串就会逻辑错误。一般正式开放都是用select 列名(id,age,name等)from 表名。 windows环境变量配置很简单,就是把环境文件路径塞到系统环境变量就行,计算机-属性-系统变量-path-路径,python数据挖掘要用anaconda,用来划分python的版本和库,让不同项目可以在不同的python环境运行。 MySQL中,distinct语句,只表示在最后取的结果中把重复的选项合并,可以说distinct生来就是去重的,group by则是分组,比如三个字符串,北京,北京,天津,它写成北京,2个,天津,1个,如果不用聚合函数,count(*) from,它会在两个北京中随机选一个输出,这样来看,distinct和group by对这一组数据的处理结果都是一样的,都是北京,天津,但一旦多取一列,很容易露馅,更关键的是,在实际的开发中,去重用group by会更慢,更消耗内存。