Category Archives: Python|R

R入门笔记2

续上一篇R快速入门笔记,本文是最近学习R的一些笔记心得。 Continue reading

Posted in Dev, Python|R.

Flask-RESTful构建小型REST服务

REST是web services和APIs的标准架构,很多APP的架构基本上是使用RESTful的形式了。诸如docker daemon等服务都是提供了RESTful API,docker的CLI可以通过该API的URL地址与之通信。
Flask是一个超级流行的Python 编写的轻量级 Web 应用框架。而Flask有一个REST插件——Flask-RESTful是为了快速构建REST API的Flask插件,它能和现有的ORM配合实现轻量级数据抽象。Flask-RESTful鼓励小型化实践,非常简单易学。本文将会使用python的Flask框架轻松实现一个RESTful的服务。
REST的六个特性:

  • Client-Server:服务器端与客户端分离。
  • Stateless:每次客户端请求必需包含完整的信息,换句话说,每一次请求都是独立的。
  • Cacheable(可缓存):服务器端必需指定哪些请求是可以缓存的。
  • Layered System(分层结构):服务器端与客户端通讯必需标准化,服务器的变更并不会影响客户端。
  • Uniform Interface(统一接口):客户端与服务器端的通讯方法必需是统一的。
  • Code on demand(按需执行代码):服务器端可以在上下文中执行代码

Continue reading

Posted in Dev, Python|R.

Python任务调度模块 – APScheduler

APScheduler是一个Python定时任务框架,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务、并以daemon方式运行应用。目前最新版本为3.0.x。 Continue reading

Posted in Python|R.

Redis Sentinel配置小记

Sentinel是一个管理多个redis实例的工具,它可以实现对redis的监控、通知、自动故障转移。sentinel不断的检测redis实例是否可以正常工作,通过API向其他程序报告redis的状态,如果redis master不能工作,则会自动启动故障转移进程,将其中的一个slave提升为master,其他的slave重新设置新的master实例。也就是说,它提供了:
监控(Monitoring): Sentinel 会不断地检查你的主实例和从实例是否正常。
通知(Notification): 当被监控的某个 Redis 实例出现问题时, Sentinel 进程可以通过 API 向管理员或者其他应用程序发送通知。
自动故障迁移(Automatic failover): 当一个主redis实例失效时, Sentinel 会开始记性一次failover, 它会将失效主实例的其中一个从实例升级为新的主实例, 并让失效主实例的其他从实例改为复制新的主实例; 而当客户端试图连接失效的主实例时, 集群也会向客户端返回新主实例的地址, 使得集群可以使用新主实例代替失效实例。
Redis Sentinel自身也是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程, 这些进程使用流言协议(gossip protocols)来接收关于主Redis实例是否失效的信息, 然后使用投票协议来决定是否执行自动failover,以及评选出从Redis实例作为新的主Redis实例。 Continue reading

Posted in Database, NoSQL, Python|R.

Python Reading List (2)

最近工作又要用到Python了,无奈有段时日没用Python写过东西了,有些生疏。所以借五一把收藏的Python博文翻出来看一下,温故而知新。 Continue reading

Posted in Dev, Python|R, Tools.

Linux下R和package编译安装

R语言在Linux下安装较为麻烦,在online可以直接通过epel来安装,而离线的情况下需要通过编译来安装。而package也不能通过install.packages()通过CRAN在线安装。下面简单介绍一下编译安装的方式 Continue reading

Posted in Linux, Python|R.

R快速入门笔记

R的入门笔记。~
Continue reading

Posted in Python|R.

Python Reading List (1)

从接触Python到现在也有四五年时间了,由于平时代码写的少,一直处于打游击的新手状态,缺乏系统的、原理的学习。这段时间陆续收藏了一些干货,借这个时间review一遍。
Python 3 正在毁灭 Python
Python 3打破了对Python 2向后兼容性,“Python 2的字节字符串(str)和Python 3的字节字符串(bytes)之间的根本不同。事实上会很难移植,并且需要一点移植技巧”。但从目前来看许多关键的第三方库都已经成功移植到3.3上。知乎上也对这个问题有着激烈的讨论:http://www.zhihu.com/question/23928496 。Python 3弥补了一些设计上的失误,大部分Python高手还是倾向于转战Python 3的。但是新的语法和规则的引入让我觉得完全在接触一个新的语言,带来的是太多学习的成本。虽然文章有一些危言耸听的成份,但转战Python 3对我来说还有有一些遥远。。
Continue reading

Posted in Dev, Python|R.

使用Python操作Redis

1. 安装pyredis

首先安装pip

也可以使用easy_install的方式来安装:

或者直接编译安装:

Continue reading

Posted in NoSQL, Python|R.

从Oracle到MySQL传输表数据

今天有一个需求,要把一个500W行的表传输到一个MySQL数据库中。有OGG和阿里楼大大的工具(见anysql.net)两种比较好的解决方法。这里我也简单得写了一小段python代码来实现这种简单的需求。
方法:Oracle -cx_Oracle lib-> Python -MySQLdb lib-> MySQL
常见类型对应如下:
number(12) – long – decimal(12)
date – datetime – datetime
varchar2(20) – str – varchar(20)
Continue reading

Posted in MySQL, Oracle, Python|R.