- 博客(56)
- 收藏
- 关注
原创 对数据漂移的一些小思考
一、前言最近在ETL工作中遇到了一些数据漂移的问题,写在这里权当做一个记录以及自己的一些思考。二、什么是数据漂移通常我们把从源系统同步进入数据仓库的第一层数据成为ODS层,数据漂移是一个很容易发生的现象。通常指ODS的表在同一个业务日期数据中包含前一天或者后一天凌晨附近的数据或者丢失当天的变更数据。在大数据领域有另外一个东西名字很相近,叫数据倾斜。当然他们完全不是一码事,关于数据倾斜的问题...
2019-08-03 12:13:08
5592
原创 利用DataWorks赋值节点补强参数功能
一、前言DataWorks提供了系统参数供周期调度的任务使用,一般最常用到的系统参数是这两个:${bdp.system.bizdate}和${bdp.system.cyctime},分别代表任务运行时的昨天和当前时间。系统参数简写模式格式示例${bdp.system.bizdate}${bizdate}yyyymmdd20190802${bdp.syste...
2019-08-02 16:36:19
2687
2
原创 MaxCompute的Lighting接口
一、简介MaxCompute Lightning是MaxCompute产品的交互式查询服务,支持以PostgreSQL协议及语法连接访问Maxcompute项目。正常情况下,我们使用MaxCompute表的数据是需要回流过程的,将数据回流到数据库中,然后查询数据库获取数据。然而在某些查询频率不高,查询周期不定的场景下,这种回流的方式其实不是特别适合。于是就有了交互式查询服务Lightning。...
2019-07-31 19:32:56
1100
原创 ODPS上的UDF(Python实现)
一、前言MaxCompute中的python是2.7环境的,可以通过sys.version验证,话说Python社区都准备放弃2.7了,阿里云啥时候跟上时代的步伐升级到3.x哦。我们测试一下:Executing user script with PyODPS 0.8.02.7.10 (default, Sep 18 2015, 16:43:46)[GCC 4.1.2 20080704 (...
2019-04-30 16:46:28
5279
原创 使用PyODPS节点监测SDK上传数据的完成节点
一、前言一直以来公司都有个痛点亟待解决,分库分表的MongoDB上传数据至ODPS,于是就有了一套利用tunnel java sdk上传数据的服务。但是上传完数据后DataWorks上的任务链依赖如何开始传递,一直没有解决。老办法是打时间差,按照一般上传耗时3个小时计算,所有任务的起点都配置在凌晨4点开始,这在大多数时候都能生效,但在一些流量特别大的日子就会异常,数据没传完,但任务已经开始执行...
2019-03-22 14:52:45
1278
原创 DataWorks关于PyODPS的节点参数
一、前言对于ODPS SQL节点的参数配置,是比较清晰明了的。对于习惯使用ODPS的人来说,想必大家也已经十分熟悉了。详情可以找一找阿里云的官方文档,这里贴个传送门:https://help.aliyun.com/document_detail/74450.html?spm=a2c4g.11186623.6.644.63bf5c57zj8JuV二、PyODPS的参数设置与ODPS SQL...
2019-03-21 19:24:48
2572
转载 git拉取远程仓库代码强制覆盖本地
水文警告这其实是一片水文,好久没写博客啦,上来水一篇。在使用git管理代码时,我们总会遇到在本地修改了一通,结果发现忒乱了想重新来过,本能地尝试本地删除然后重新git pull,结果发现没用,文件根本拉取不下来。那行吧,咱直接从远程仓库拉取代码覆盖本地就行了。见代码:git fetch --allgit reset --hard master git pull #可省略 也有...
2019-02-19 17:52:20
18712
3
原创 Python的format()函数
前言上篇博文,我们用format(number,',')快速实现了对数字千分位的分隔。熟悉python的人都知道,foramt函数更常见的用法其实是str.format(),其基本语法是通过{}和:来代替以前的%。示例:>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序'hello world' >&g...
2018-11-21 19:50:22
32522
5
原创 Python对千分位的处理
有一个需求,需要给数字添加千分位,对于大数字来说观感会更好,不然数位数也是一件蛮累的事情。第一反应是写一个暴力添加逗号的函数,从个位数开始倒推,每三位添加一次逗号,直到取完所有位数。细想之下,如果是小数的话,需要判断哪一位是个位数,而不是直接取最后一位,这个函数的复杂度因此增加了不少。正准备动手之际,花了几秒钟时间搜索了下,发现了这么个玩意儿:format(123456789,',')'...
2018-11-19 11:26:36
7674
原创 用Python组装html表格
最近接到个需求,将报表用html组装成表格嵌在邮件正文中发出。用Python发邮件在之前已经尝试过,组装html表格也不难,搜了下html的语法然后依样画葫芦拼接下:html_header = '''<table border="1"><tr><th>序号</th><th>标签</th><th&am
2018-11-19 11:15:33
1948
1
原创 Linux的后台运行:&和nohup
我们在使用Linux服务器的时候,一般是使用终端利用SSH协议登录的。当你需要同时进行一些作业,但又不想打开多个终端的话就需要用到后台运行。&sh test.sh &一些费时的作业可以这样放在后台运行,但需要注意的是后台运行的作业如果有输出,一样会输出到终端屏幕。有大量输出的情况下,最好将输出重定向至指定文件,比如这样:sh test.sh > file.log 2...
2018-09-28 14:37:16
1454
原创 MaxCompute的动态分区
前言有使用过Hive的人都知道,有一个叫做分区的东西。Hive表实际上是数据存储在HDFS上的抽象表,一个分区名对应逻辑存储时的一个子目录名,从形式上看可以理解为一个文件夹,一个表文件夹下的子文件夹。 有一点点绕,不知道你们听懂了没。当然,分区并不是一个必要的概念,你可以建一张不带分区的表。大多数时候我们都建议建立分区表,用法为在建表语句后带关键字partitioned by (type...
2018-05-31 20:37:07
4740
原创 MySQL与JSON
JSON简介百度百科走一发:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。类似XML,但比XML更小、更快,更易解析。JSON语法规则数据表示为键值对数据由逗号分隔花括号保存对象方括号保存数组一个典型的JSON长这样:{"sites": [{ "name":"我的博客" , "url"
2018-05-25 11:21:24
3616
原创 数据分析师眼中的大数据和Hadoop
一、前言大数据这个概念不用我提大家也听过很多了,前几年各种公开论坛、会议等场合言必及大数据,说出来显得很时髦似的。有意思的是最近拥有这个待遇的名词是“人工智能/AI”,当然这是后话。众所周知,大数据的发展是来源于Google三驾马车,分别是:Google File System(GFS) —2003MapReduce —2004Bigtable —2006不得不说,Goog...
2018-05-21 20:21:30
2500
原创 SMTP发送邮件——Python实现
有的时候我们的脚本需要发送个邮件提醒我们事情干的怎么样了,所以需要代码来实现自动发送邮件。 请看:def email_module(output): import smtplib from email.mime.text import MIMEText from email.header import Header mailto_list = [xxxxx...
2018-05-14 10:45:13
570
原创 聊聊几个简单的排序算法
前言排序是算法的入门知识,其经典思想可以用在许多算法中,在实际应用中是相当常见的一类。记得在本科的数据结构课上就有讲过几个经典的排序算法,现在来好好地回顾下。 在回顾之前,了解一个概念,这个概念也是我刚刚了解的。(手动扶额-。-) 排序算法稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而...
2018-05-03 18:52:12
329
原创 分享爬取链家地图找房房价数据的小爬虫
一、说在前面受人所托,爬取链家上地图找房的数据:https://bj.lianjia.com/ditu/。 上面有按区域划分的二手房均价和在售套数,我们的任务就是抓下这些数据。 二、开干2.1失败一次老样子,Chrome 按下F12打开Chrome DevTools中的Network标签查看请求过程,像这种需要更新的数据大概率是通过后台接口请求返回的,遗憾的是在XHR下...
2018-04-23 18:01:44
4970
6
原创 数据库的索引
一、前言索引对于数据库的高效运行是至关重要的,在我们谈到优化查询性能的时候一般都是指添加索引。 索引分单列索引和组合索引:单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引;组合索引,即一个索引包含多个列。索引也分聚集索引和非聚集索引:聚集索引:索引中键值的逻辑顺序决定了表中相应行的物理顺序; 非聚集索引:索引的逻辑顺序与磁盘上行的物理存储...
2018-04-12 09:01:52
189
原创 字符串的倒序
前言逛博客的时候翻到了一道面试题,用递归的思路来进行字符串的倒序输出,我想了想,用我熟悉的Python来实现了下,另外也附上了别的方法。Show the code#arrayn = input()arrayn = 'abcdef'l = len(arrayn)# python自带功能直接法print(arrayn[::-1])# 利用另一个列表,逐个倒序输出arrayl...
2018-04-10 17:13:44
356
原创 Navicat Premium连接Oracle数据库时的报错
一、起因因为需要使用Oracle数据库,而本人又是个懒人,不想下载Oracle的客户端工具PL/SQL Developer或者Sqldeveloper。要下载、破解真的是麻烦,想起一直在用的Navicat Premium支持的数据库种类非常多,丢图跑: 嘿嘿,果然有Oracle。填上地址、端口、用户名密码之后连接测试竟然报错了。 错误信息为:ORA-28547:connection t...
2018-04-09 18:37:47
3185
转载 MySQL的MyISAM和InnoDB
一、区别 MyISAM InnoDB 构成上的区别 每个MyISAM表在磁盘上存储成三个文件。文件的名字以表的名字开始,扩展名指出文件类型: 1.frm-表格定义; 2.MYD(MYData)-数据文件; 3.MYI(MYIndex)-索引文件。 所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),InnoDB表的大小只...
2018-04-09 18:13:32
173
原创 数据库的事务与锁
一、什么是事务事务(Transaction),在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。 一个数据库事务通常包含对数据库进行读或写的一个操作序列。它的存在包含有以下两个目的: 1. 可恢复:为数据库操作提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法; 2. 好并发:当多个应用程序在并发访问数据库时,可以...
2018-04-02 18:05:15
377
原创 解读数据库的范式
一、百科解读设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。 满足最低要求的范式是第一范式。在第一范式的基础上进一步满足更多...
2018-03-29 16:35:23
312
原创 算法复杂度简述
零、前言在我本科参与ACM院队培训时,来自校队的学长就给我们讲过复杂度的概念,可惜当时年轻不懂事,没有好好消化,现在来补补课。一、时间复杂度1.1 时间频度一个算法花费的时间与算法中语句的执行次数成正比。算法中语句的执行次数称为语句频度或时间频度。记为T(n)。 这个概念了解即可,抄自百科,不是重点。1.2 时间复杂度在T(n)中,n称为问题的规模,n不同,T(n)自然也...
2018-03-27 17:56:02
466
原创 动态规划之LCS算法
一、前言LCS是Longest Common Subsequence的缩写,即最长公共子序列。一个序列,如果是两个或多个已知序列的子序列,且是所有子序列中最长的,则为最长公共子序列。 另外还有个分支问题:最长公共子串。子串的字符位置必须连续,而子序列则不必,从原序列中去掉任意的元素获得的新序列。可以看出,子串问题比子序列问题要简单地多,子串必定是子序列,换言之,子串是子序列的子集。如果我们能...
2018-03-27 11:24:30
3219
2
原创 PostgreSQL的日期/时间函数
零、前言公司里有一台阿里云RDS数据库用了PPAS(Postgres PlusTM Advanced Server),在处理日期/时间时遇到一些问题,花了点时间整理如下。一、获取当前时间select now() select current_timestamp select localtimestamp select clock_timestamp() 有时候,我们不需要这...
2018-03-23 18:03:08
28146
1
原创 浅尝阿里云的大数据产品--MaxCompute
简介先丢一段阿里云官方的说明: 大数据计算服务(MaxCompute,原名ODPS)是一种快速、完全托管的TB/PB级数据仓库解决方案。MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。说白了就是阿里云开发了一套大数据平台,相当于hadoop(含数仓工具Hive、工作流引擎Ooz...
2018-03-13 18:33:00
1414
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人