数据随笔
幸运的小新粉
将相本无种,男儿当自强!
展开
-
【ClickHouse】批量写入ClickHouse 的几种方式
ClickHouse没有官方的Python接口,有个第三方的库,叫clickhouse-driver,笔者所知道的将数据批量写入的方式不是很多,这里列举最常见的3种方式。第一种方式 CSV文件cat /dev/shm/data | clickhouse-client -h 123.456.1.X --query="insert into database.table FORMAT CSV"```或clickhouse-client -h 192.168.1.X --query="insert int原创 2021-12-12 11:32:08 · 16180 阅读 · 2 评论 -
【Pandas】pandas实战记录
Pandasdate_range获取两个日期之间所有的日期,并以指定格式输出>>> start_day = "2021-02-20">>> end_day = "2021-03-02">>> import pandas as pd>>> pd.date_range(start_day, end_day).map(lambda x: x.to_pydatetime().strftime('%Y-%m-%d')).to_list原创 2021-11-20 20:18:35 · 590 阅读 · 0 评论 -
【Python】通过 requests 获取文件字节流
首先需要理解requests 模块requests 模块模块说明requests是使用Apache2 licensed 许可证的HTTP库。用python编写。比urllib2模块更简洁。Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码。在python内置模块的基础上进行了高度的封装,从而使得python进行网络请求时,变得人性化,使用Requests可以轻而易举的完成浏览器可有的任何操作原创 2021-11-01 10:06:47 · 6888 阅读 · 0 评论 -
【Python】通过跳板机访问数据库
什么是跳板机?跳板机(Jump Server):也称堡垒机,是一类可作为跳板批量操作的远程设备的网络设备,是系统管理员和运维人员常用的操作平台之一。那么具体是做什么的呢?现在一些比较大的互联网企业,往往拥有大量的服务器,为了能够统一方便管理,运维人员通过跳板机去管理对应的服务器。我们在访问服务器的时候,先通过登陆跳板机,然后再进入相应服务器。从一定程度上提升了服务器的数据安全性,也提升了服务器的可维护性。sshtunnel 连接堡垒机跳板机的本质还是ssh连接,通过paramiko 自己造轮子的话原创 2021-10-24 10:40:26 · 1412 阅读 · 0 评论 -
【Python】Pandas 模拟 SQL 的一些场景
数据初始化import pandas as pdimport numpy as npdf = pd.DataFrame({ "user_id": np.arange(1001, 1006), "name": "xiaoming,xiaohong,xiaozhang,xiaowang,xiaoli".split(","), "sex": [1, 1, 0, 0, 1], "English": [98, 97, 95, 93, 96], "Maths": [99,原创 2021-10-17 10:06:06 · 206 阅读 · 0 评论 -
Python datetime.fromtimestamp 遇到的一些坑
背景:调用腾讯某个接口返回的是时间戳的形式,本地解析的时间跟腾讯端的时间不一致,经过排查发现是本地没有转化为北京时间,而腾讯端是默认转换为北京时间的。但是却有一个疑惑????,问题一同样是时间戳的转换,不同的机器却是不一样的结果。比如我在在线编辑器上的结果是没有偏移的,而本地执行结果却是有8个小时的偏移的比较过比较多台机器,发现 fromtimestamp 该函数的转化是根据本地的时区来的。现在问题基本明朗了,我本地解析的时候一定是需要转化为北京时间的,时间戳作为一个固定的值,一定只对应一原创 2021-07-31 10:13:57 · 4671 阅读 · 3 评论 -
Python 解析非json格式文件的方法
参考:Python JSONPython 中常见的 json 操作时将json对象转化为 python的字典形式,常见的是对文本解析,这里边转换的时候经常遇到的事格式的问题。在使用json这个模块前,首先要导入json库:import json方法描述json.dumps()将 Python 对象编码成 JSON 字符串json.loads()将已编码的 JSON 字符串解码为 Python 对象json.dump()将Python内置类型序列化为json对象后写原创 2021-06-09 13:53:08 · 961 阅读 · 0 评论 -
sql模糊查询多个条件写法
单个模糊查询一般使用like,如果多个可以使用 OR 进行连接,不过写样子写法很冗余,而且如果多个条件是从表中 select出来的时候这种方法就不可行了。针对这种问题,一般都提供了正则表达式的写法,这样我上面说的那种情况只需要进行一下列转行就可以了。注意 REGEXP 后是 字符串类型MySQL-- 示例SELECT prod_name FROM products WHERE prod_name REGEXP ‘col1|col2’-- 列转行select group_concat(tes原创 2021-04-07 09:38:02 · 18145 阅读 · 1 评论 -
二分查找 插入和查找的区别
二分查找存在两个场景,第一种就是在排好序的列表中进行查询,是否存在目标数 target,返回布尔类型,第二种是插入的情况,我需要把数插入到列表中,返回idx。查询 def find(sortlist, lenn, target): left, right = 0, lenn - 1 while left <= right: mid = (right + left) // 2 midnum = so原创 2021-03-30 14:31:21 · 204 阅读 · 0 评论 -
Pandas 参与数据清洗常见用法
其实pandas 参与数据清洗跟数据库SQL很相似,只是pandas 在计算速度上较SQL会快很多也灵活很多。1、导入导出略2、merge ,concatmerge 相当于 joinconcat 相当于 union3、groupby分组,常跟聚合函数以及窗口函数一起使用,注意:聚合函数使用的时候,之后一般需要merge,因为聚合之后行数变少4、rank一般配合 groupby 使用,不配合 groupby也可使用(就是整个为一组)排序支持各种形式的排序,比如从小到大,比如当前行,从小到原创 2021-01-19 16:29:19 · 112 阅读 · 0 评论 -
拉链表的实现过程
拉链表的优势我就不说了,具体请参考百度百科:拉链表-百度百科推荐一个比较详细的参考文章:拉链表示例主要总结一下实现过程:分析:拉链表就是用来存储变化的数据的,每一份数据都有对应的有效期,我们需要进行的操作就是将变动的数据进行新增,同时将变动对应的前一条数据的有效期进行变更。说明:一般都是今天处理昨天的数据,本文所说的当天为所处理的数据的产生的当天。在这之前需要熟悉一下需要用到的表:表1:订单表(记录原始的数据)表2:增量数据表(记录每日变更的数据)表3:历史拉链表(我们要得到的就是这张表原创 2020-11-19 15:20:19 · 9383 阅读 · 0 评论 -
MySQL 中STD、STDDEV、STDDEV_SAMP 标准差函数的区别
总体标准差和样本标准差的区别如果数据集中的所有值都被纳入计算,则该标准偏差称为总体标准偏差。 然而,如果将一个子集的值或一个样本作为计算,则该标准偏差称为样本标准偏差。西格玛字母(σ)表示标准偏差。以下等式说明如何计算总体标准偏差和样本标准差:总体标准偏差:样品标准偏差:总体标准差和样本标准差的计算略有不同。当计算样本标准偏差的方差时,除以N-1而不是N,其中N是数据集中的值的数量。标准差函数的举例如图,可以简单用 shuxue 这一行数据进行验证,可以简单的计算一下,所有分数与avg差原创 2020-11-10 15:26:13 · 11130 阅读 · 0 评论 -
MySQL根据列式数据分类
背景:由于工作内容涉及到公司机密,我就讲个大概的场景:存在一些列式数据,比如每个人都有自己爱吃的几类水果,我们对每个人的饮食习惯进行分类(不太恰当,想不到啥好的例子)香蕉拼错啦,哈哈现在我的需求是喜欢吃苹果的不喜欢吃香蕉的分在A组,喜欢吃香蕉的不喜欢吃苹果的分在B组,两个都喜欢吃的分在C组,都不喜欢吃的分在D组首先需要列转行,得到每个人喜欢吃的水果select person,group_concat(fruit) from onefruit group by person;然后我根据苹果和原创 2020-10-23 13:55:06 · 623 阅读 · 0 评论 -
关于MySQL TopN不能正常排序的一些测试
背景:这是在工作中遇到的问题,应该跟mysql版本有关比如我要获取每门学科的排名如图所示,我直接查询chengji 表,对每门学科进行排序,正常如图所示,我加了一张表进行,这个时候就不能先 order by了,而是先查询,再order by ,可以看到输出的排名跟想要的差的很多我们试试让这两个关联表先排序这两个都是没有问题的,解决的关键是需要让关联的表正常排序,如果不能先排序使用标记就不能得到想要的结果了但是有些复杂场景(也可能是优化器版本问题)不管怎么样他都会帮你把order by 放到原创 2020-10-22 11:07:45 · 104 阅读 · 0 评论 -
借助pandas完成对Excel数据的建表和入库
背景:对Excel进行解析和入库技术难点1:对dataframe对象设置列名百度了很多,都是答非所问,这个没有向设置索引列那么简单直接设置哪一列就行了。不过可以通过赋值给df.columns的方式,于是我只需要获取列名的那一行并转化为集合的形式就可以了。 # 指定列名datacolumns = datapd.loc[columnindex].values.tolist()datadf.columns = datacolumns 技术难点2:根据dataframe完成建表,并能够获取每个字段的原创 2020-09-25 16:42:47 · 530 阅读 · 0 评论 -
SQL查询时存在级联关系作为条件的场景
背景:比如我现在需要计算子公司的指标之和,除了在筛选子公司的条件外还需要对该子公司的母公司也满足一定的条件。发现问题:刚开始使用的是inner join ,然而如果一个子公司存在两个子公司的时候,这个子公司的指标就会记录两次解决问题:如何找到该子公司存在母公司满足条件,首先想到的就是 exists...原创 2020-09-18 11:48:20 · 299 阅读 · 0 评论 -
自动化测试验证工具(Python实现)
#!/usr/bin/env python3# -*- coding: utf-8 -*-import sys, osfrom utils.logutil import register_logerfrom utils.mysqlutil import MySQLUtilfrom utils.confutil import ConfUtilclass RunScript(object): """ 统一作为执行sql脚本和python脚本的入口 table1:原创 2020-09-11 17:46:24 · 696 阅读 · 0 评论 -
比较两个表的数据是否一致(MySQL存过实现)
背景:比如生产库数据和测试库数据,我现在有脚本的变更或者优化,我先再需要比较同一批次的数据是否一致思路:每一条比对上的字段对应的数据都需要一致,于是我先比对每一条字段的数据是否一致,然后对字段进行循环即可。大体代码奉上:CREATE DEFINER=`***项目必要,已隐藏**`@`%` PROCEDURE `compare_twotb_data`( IN `TABLE1` VARCHAR(50), IN `TABLE2` VARCHAR(50), IN `timestr` VARCHAR原创 2020-09-10 17:26:39 · 6305 阅读 · 0 评论 -
mysql中TopN的实现
实现原理:要实现TopN,必定需要将数据进行分组,再将每个分组里边的数据进行排序。其实这个用order by a,b 就能够对a字段进行分组,再对b进行排序。排完序之后只需要将前N个就可以了。就像这样,我们只需要把他们进行排序即可,我们可以创建两个字段,第一个字段记录上一个subject,第二个字段用来标记当前行subject是否为上一个subject,如果是就自加,不是就赋值为1select a.*,@rankid := if(@subj = subject,@rankid + 1, 1) ran原创 2020-09-10 17:04:42 · 1903 阅读 · 0 评论 -
大数据环境前期准备
前期准备大致就是网络配置的一些配置,保障主从机之间的通信1、网络配置,需要将网络都配置为静态地址,这样才能实现主从机之间的访问 基本是三步:1)设置网络适配器为NET方式 2)修改/etc/sysconfig/network-scripts/ifcfg-ens33 文件 ...原创 2020-04-13 13:54:51 · 324 阅读 · 1 评论 -
数据学习总结
Redis:这是一个key-value形式的数据库,redis本身是可以持久性存储的,也就是存储在磁盘中,不过对这个工具最大的印象就是快,为什么这么快的呢,其实很简单,redis会在缓存中进行加载,也就是说,读写都在内存中操作,速度当然就快了。Kafka:这是一个消息队列的工具,其实很多工具都有相似处,只不过一点点的不同就能赋予其特性,凭借该特性,就能在某一领域就能非常擅长。就如这个kafka...原创 2020-04-02 10:56:44 · 349 阅读 · 0 评论 -
浅谈Kafka和flume的区别
浅谈Kafka和flume的应用场景kafkakafka主要应用于消息队列,就是将数据分发给各个消费者flumeflume主要还是一个信息的收集,然后再将这些信息存储到数据库中区别这两个完全是两个概念,区别也是很大,只是这样个人记得较为清楚。两个组件都有推送操作,只不过kafka是pull,而flume是push。pull就是消费者通过客户端向服务器请求,如果有数据就会进行通信,这样...原创 2020-04-01 14:20:55 · 1432 阅读 · 0 评论