avatar
Articles
263
Tags
59
Categories
0

Home
Archives
Links
Games
  • MikuTap 初音未来
  • StartBattle 星际大战
  • 2048 经典游戏
  • BattleCity 坦克大战
  • PacMan 吃豆人
  • Tetris 俄罗斯方块
  • CatchCat 困住小猫
Moments
  • Music
  • Diary
  • Gallery
More
  • Tags标签
  • About关于
  • Messageboard留言板
All wisdom begins with memory.
Search
Home
Archives
Links
Games
  • MikuTap 初音未来
  • StartBattle 星际大战
  • 2048 经典游戏
  • BattleCity 坦克大战
  • PacMan 吃豆人
  • Tetris 俄罗斯方块
  • CatchCat 困住小猫
Moments
  • Music
  • Diary
  • Gallery
More
  • Tags标签
  • About关于
  • Messageboard留言板

All wisdom begins with memory.

【PythonETL】条码商品采集业务
Created2023-07-08
​ 商品数据采集主要分为三个部分: 1, 获取上次记录的最大时间值(从元数据库的表中获取). 2, 根据上一次采集商品数据中updateAt的最大值查询数据源库商品表,获取继上一次采集之后,新增和更新的商品数据.3, 针对新增和更新的商品数据,进行数据采集(ETL->mysql->csv) 需要优化的点:1,使用事务,事务的使用需要结合try, except, else来使用.同时注意执行事务操作不需要调用工具类中的execute函数,因为函数会自动commit, 所以需要自定义without_commit,而且如果设置每执行1000条sql就提交一次事务,而在for,else中使用事务再次提交一次2,使用日志工具(每执行1000句sql就记录一下,同时提交事务.日志的设置比较随便,仁者见仁智者见智.3,将读取到的数据记录写入元数据表中,注意元数据表中的字段,一个是记录本次采集的最大时间(updatetime),以及采集到了哪一行,方便后续的采集动作.4,使用time工具计算执行所需的时间,strat_time = time.time() 模型文件 使用一个元 ...
【PythonETL】日志文件处理
Created2023-07-07
日志文件处理 ​ 这个主题主要工作大体上分为两个部分,第一部分是从元数据库中获取已经处理的文件,然后将文件与全部文件(列表)进行对比,最后获取需要处理的文件列表.第二个部分是将日志文件输出到数据库中,并且对文件进行备份操作(转为csv文件) Experience 首先由于python解释器以及pycharm是在虚拟机中运行的,导致我的文件路径python一直读取不了,所以日志文件目录也是获取不了的.(后来发现是系统的权限的原因,权限我改不了,直接换路径) 需要有列表嵌套对象的思想,我觉得这是ETL中最重要的,学生管理系统教会了我列表中嵌套字典,这也是一种收获吧! 要通过事务来写入数据到mysql中,遇到报错要回滚,没有报错再提交,还有读取一个文件需要flush一次,以及提交一次到数据库中吧 PART1 从元数据库中获取已经处理的文件 首先创建一个元数据库的连接 调用mysql_util快速获取一个对象 查看元数据库是否存在,不存在则创建(mysql_util中的方法) 查询元数据库中的元数据表(得到元组嵌套元组) 因为file_util工具对比的是两个列表需要将元组转换为列表 ...
【PythonETL】工欲善其事,必先利其器
Created2023-07-06
LoggingModule 日志模块 ​ 作用: 方便后续在 ETL 程序中记录日志 ​ 目标: 当我们在项目的其他位置使用logging模块进行日志记录时,不需要进行配置或者只需要进行简单的配置即可使用. 为了更方便的使用logging,我们在日志模块中创建一个日志类Logging,专门管理日志器对象 重点: 在创建日志类时可以同时传入日志级别,方便日志级别控制 创建init_logger函数快速创建日志器对象,并完成日志处理器和日志格式的绑定. 重点: 返回值是一个日志器对象 首先回顾一下日志logger的食用方式. 创建日志对象logger = logging.getLogger() 创建文件处理器FileHandler(流处理器StreamHandler) handler = logging.FileHandler() 创建日志格式对象fmt = logging.Formatter('%(asctime)s %(levelname)s %(message)s') 给处理器设置格式handler.setFormatter(fat) 将处理器 ...
【Java查漏补缺(四)】常用API之ArrayList
Created2023-07-05
ArrayList是什么 ArrayList表示一种集合,它是一个容器,用来装数据的,类似于数组。 Q: 那有了数组,为什么要有集合呢? A: 因为数组一旦创建大小不变,比如创建一个长度为3的数组,就只能存储3个元素,想要存储第4个元素就不行。而集合是大小可变的,想要存储几个元素就存储几个元素,在实际工作中用得更多。 ArrayList常用方法 创建一个ArrayList的集合对象ArrayList <String> list = new ArrayList<>() 往集合中的某个索引位置处添加一个数据list.add(0,"小威"); 根据索引获取集合中某个索引位置处的值list.indexOf("小威") 获取集合的大小list.size() 根据索引删除集合中的某个元素值,会返回被删除的元素值list.remove(0) 根据元素值删除某个元素,删除成功会返回true,反之false.list.remove("小华") 修改某个索引位置处的数据,修改后会返回原来的值list.s ...
【Java查漏补缺(三)】常用API之String
Created2023-07-04
String字符串定义 1. String是什么,可以做什么?答:String代表字符串,可以用来创建对象封装字符串数据,并对其进行处理。**2.String类创建对象封装字符串数据的方式有几种?方式一: 直接使用双引号**“…” *。方式二:new String类,调用构造器初始化字符串对象。* 基础Code 12345678910111213String name = "小明";System.out.println(name);String s1 = new String("小李");System.out.println(s1);char[] char1 = {'a', '挨', '踢'};String s2 = new String(char1);System.out.println(s2);byte[] by = {99, 65, 102}; // 注意a = 65 A = 97String s3 = new String(by); ...
【剑指offer】树
Created2023-07-03
树Retrospect基本概念树 节点的度数为节点的孩子个数(和图不一样,出度和入度都是节点的度数) 树的节点数等于所有节点的度数和+1(二叉树的节点个数可以直接推算出来的(考试当场演算-ps:5语)) 树根为第一层(学计算机的都知道万物是从0开始的(狗头) - 跟常识相违背啊) 度为m的树第i层最多有mi-1个节点 二叉树 n0=n2+1 第i层最多有2i-1个节点 h层二叉树最多有2h-1个节点 暂时就说这么多吧,都是应付考试的东西,讲真全靠记忆. 树的遍历Traversal 树的遍历分为先序遍历,中序遍历,后序遍历 口述一下三种方式的特征吧: 先序遍历(根 - 左 - 右) 中序遍历(左 - 根 - 右) 后序遍历(左 - 右 - 根) 例如: 先序序列:ABDEGHCF; 中序序列:DBGEHACF; 后序序列:DGHEBFCA。 补充:二叉树也称为二分树,它是树形结构的一种,其特点是每个结点至多有二棵子树,并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树的遍历序列按照访问根节点的顺序分为先序(先访问根节点,接下来先序访问左子树,再先序 ...
【Python查漏补缺(八)】正则表达式(回顾+拓展)
Created2023-07-02
之前有说过正则表达式,这里不想水了,直接上🔗链接. 文章链接 正则表达式回顾匹配单个字符 . 任意单个字符 [] 括号列举的字符 /d 数字/D 非数字 /s 空白 /S 非空白 /w 非特殊字符(数字字母汉字下划线 /W 特殊字符 匹配多个字符 匹配前一个字符0到多次* 匹配前一个字符1到多次+ 匹配前一个字符0-1次(非贪婪匹配)? 匹配前一个字符m次 {m} 匹配前一个字符至少m次 {m,} 匹配前一个字符m到n次{m,n} 分组匹配 首先了解分组是什么东西!一个括号()中的东西就可以是一个分组. 对于分组的操作, 可以取分组中的|左右的任意字符,也可以对分组其别名,方便后面复用. | 匹配左右任意一个表达式 (ab) 将括号中字符作为一个分组 \num 引用分组num匹配到的字符串 (?P<name>) 分组起别名 (?P=name) 引用别名为name分组匹配到的字符串 Request需求 需求1:在列表中[“apple”, “banana”, “or ...
【Python查漏补缺(七)】FastAPI网络编程
Created2023-07-01
Python之Socket网编之前已经聊过了,这里不想过多赘述.复习的话可以跳转之前的学习界面 这里主要说一下遗忘的点 多线程的创建时机 服务端的套接字会在什么时候阻塞 服务端套接字.accept()接收到的是什么东西 Answer 回答一下上面的问题: 多线程应该放到死循环中创建,例如while True, 因为一台服务器要维护多个与客户端的连接,将 sock, addr = server.accept()和threading.Thread(target=xxx, args=(socket_io,)).start()放到一起,每当出现新的客户端连接就创建一个线程 什么时候阻塞: 比如服务端创建了一个套接字: server = socket.socket()会在两个地方阻塞 socket_io, address = server.accept()这里等待客户端连接会阻塞 bytes_data = socket_io.recv(1024)等待客户端发送数据的时候也会阻塞 socket_io, address & ...
【剑指offer】字符串
Created2023-06-30
剑指offer字符串相关操作 题目1:请实现一个函数,把字符串 s 中的每个空格替换成”%20”。 理解Code 很简单的题目, 但是重点在于实现的方式有多种, 这里主要介绍三种实现方式. 字符串函数replace 字符串函数join 遍历字符串, 然后借助列表存储元素. Demo1234567891011121314151617181920212223242526# 请实现一个函数,把字符串 s 中的每个空格替换成"%20"# 类名要使用大驼峰方式命名, 函数名要使用小驼峰方式命名class Solution(): # 定义替换空格的函数, 实现传入一个字符串,返回一个处理过的字符串 def replaceSpace(self, s1:str) -> str: # 方法一实现 str = s1.replace(' ', '') return str def replaceSpace2(self, s: str) -> str: # ...
【Python-ETL】ETL前置知识
Created2023-06-29
本文主要介绍Python之ETL的前置知识点!肥肠重要 在开始之前聊一下一个点,就是Python中会有很多操作路径的地方(例如文件打开),这里如果单纯从Explore拷贝路径例如 C:\Users**\Stray\PycharmProjects\Project** Python是读取不了的, 解决办法 写两个\,就是在\后面加上一个\ 路径前面写r”C:\Users**\Stray\PycharmProjects\Project**” 这样Python就能识别了. 按照重要性依次递减如下PymysqlOS模块UnitTest单元测试Log日志Time模块Recursion递归 Pymsql pymysql是什么这里就不多bb了,贴上两个链接🔗 github官网 官方文档 Tips 非事务性的SQL是不需要提交的cursor.commit()什么是非事务性的操作, 就是查询select pymysql采用事务方式实现增删改操作,还要手工提交数据 cursor.fetchone() 适合获取数据表中指定的某条数据, 格式为元组 cursor.fetchall() 获 ...
1…171819…27
avatar
李俊泽
机器都在学习,你有什么理由不学习?
Articles
263
Tags
59
Categories
0
Follow Me
Announcement
博客为本人搭建 Github托管 仅记录学习过程 不做引流 不做排名 不打广告!
Recent Post
Golden-Sentence2028-05-10
金句-尽信书不如无书&道阻且长行则将至2027-05-10
Exp_01-健康-黄帝内经2026-06-14
心经2026-05-13
金刚经2026-05-10
Tags
AI AI,ESG Azkaban Blog CDH CERT DS Diary ES ETL FTP FineBI Flink Github Gitlab HBase HDFS HQL Hadoop Hexo Hive Interview Java Kafka Kettle Linux MapReduce MarkDown MongoDB MySQL Nginx Ollama P2P Presto Pycharm Python Redis SQL Spark Spark项目 Spider Sqoop Tools Zookeeper doc 前端 剑指offer 基本语法 常用操作 数仓 数据结构 环境搭建 科学库 计网 设计模式 调研 逆向 集群 面向对象AI AI,ESG Azkaban Blog CDH CERT DS Diary ES ETL FTP FineBI Flink Github Gitlab HBase HDFS HQL Hadoop Hexo Hive Interview Java Kafka Kettle Linux MapReduce MarkDown MongoDB MySQL Nginx Ollama P2P Presto Pycharm Python Redis SQL Spark Spark项目 Spider Sqoop Tools Zookeeper doc 前端 剑指offer 基本语法 常用操作 数仓
Archives
  • May 20281
  • May 20271
  • June 20261
  • May 20264
  • April 20263
  • November 20256
  • October 20253
  • September 20252
Info
Article :
263
UV :
PV :
Last Push :
©2020 - 2026 By 李俊泽
Framework Hexo|Theme Butterfly
Welcome to 李俊泽 の Blog!
Search
Loading the Database