Skip to main content

get dbname from date and dbname , According to the monthly

Project description

Control_DB_date
=======

适合场景是 数据库因为量大,根据日期切分成不同的库,该模块会根据你提供的时间段,调度到不同的数据库,可扩展不同的IP地址

.. image:: http://img3.douban.com/view/biz/raw/public/f477075ba610e94.jpg
:height: 240px
:width: 300 px

Install from Pypi
-----------------
::

pip install Control_DB_date


Basic Example
-------------
::
#coding:utf-8
from datetime import datetime
from datetime import timedelta
import time

class Match_db_date(object):
"""
Match = Match_db_date()
import json
print json.dumps(Match.to_match('2014-01-11','2014-08-22'))
"""
def getMonthDays(self, year, month ):
day = 31
while day:
try:
time.strptime( '%s-%s-%d'%( year, month, day ), '%Y-%m-%d' )
return day
except:
day -= 1

def fit_date_format(self,year,month):
if month<10:
str_db = "buzz_v1_%s0%s"%(year,month)
else:
str_db = "buzz_v1_%s%s"%(year,month)
return str_db

def to_match(self,start,end):
dc = {}
opt_start_time = datetime.strptime(start,"%Y-%m-%d")
opt_end_time = datetime.strptime(end,"%Y-%m-%d")
count_month = opt_end_time.month - opt_start_time.month
if count_month == 0:
"""buzz_v1_201502"""
str_db = "buzz_v1_%s"%opt_start_time.strftime('%Y%m')
dc[str_db] = [start,end]
return dc

for i in range(0,count_month+1):
if i == 0:
year = opt_start_time.year
month = opt_start_time.month
dc[self.fit_date_format(year,month)] = [start,"%s-%s-%s"%(year,month,self.getMonthDays(year,month))]

elif i == count_month:
year = opt_end_time.year
month = opt_end_time.month
day = opt_end_time.month
dc[self.fit_date_format(year,month)] = ["%s-%s-01"%(year,month),end]

else:
year = opt_start_time.year
month = opt_start_time.month+i
if month<=12:
dc[self.fit_date_format(year,month)] = ["%s-%s-01"%(year,month),"%s-%s-%s"%(year,month,self.getMonthDays(year,month) )]
else:
year = month / 12 + year
month = month % 12
dc[self.fit_date_format(year,month)] = ["%s-%s-01"%(year,month),"%s-%s-%s"%(year,month,getMonthDays(year,month))]

return dc

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Control_DB_date-0.1.3.tar.gz (2.4 kB view details)

Uploaded Source

File details

Details for the file Control_DB_date-0.1.3.tar.gz.

File metadata

File hashes

Hashes for Control_DB_date-0.1.3.tar.gz
Algorithm Hash digest
SHA256 531cde60f2b7c275af8a07a54f89a4911cce0844f659ad5763dfafa7ce7155e8
MD5 14b9bd015d0e46cdd1b7f10e3a987675
BLAKE2b-256 1340cc375d507d1280d3eab4d623ba13312629bf5778614f2881ade5fedb34f4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page