国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python訪問Mysql分表數據的方法示例

2019-11-06 06:13:07
字體:
來源:轉載
供稿:網友
1、源表、目標表結構
show create table user_PRofile_252;CREATE TABLE `user_profile_252` (  `uid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用戶ID',  `nickname` varchar(45) CHARACTER SET utf8 NOT NULL COMMENT '用戶昵稱,全局唯一',  `avatar` varchar(500) CHARACTER SET utf8 NOT NULL COMMENT '用戶頭像地址',  `signature` varchar(255) CHARACTER SET utf8 NOT NULL COMMENT '用戶簽名信息',  `gender` varchar(20) CHARACTER SET utf8 NOT NULL COMMENT '用戶性別,三個枚舉值"male","female","unknown"',  `type` tinyint(4) NOT NULL COMMENT '用戶類型:1->注冊用戶,2->游客',  `source` int(11) NOT NULL COMMENT '用戶來源:1->新浪,2->QQ',  `phone_num_verified` tinyint(4) NOT NULL DEFAULT '-1' COMMENT '用戶手機認證狀態:-1->未認證,0->已認證',  `id_card_verified` tinyint(4) NOT NULL DEFAULT '-1' COMMENT '用戶身份證認證狀態:-1->未認證,0->已認證',  `state` tinyint(4) NOT NULL COMMENT '用戶狀態,0->正常用戶,-1->黑名單用戶',  `last_login_time` datetime NOT NULL COMMENT '用戶最后一次登錄時間',  `created_time` datetime NOT NULL COMMENT '用戶注冊時間',  `updated_time` datetime NOT NULL COMMENT '用戶信息更新時間',  PRIMARY KEY (`uid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用戶信息表';show create table bi_find_nickname_from_uid;CREATE TABLE `bi_find_nickname_from_uid` (  `uid` varchar(100) DEFAULT NULL,  `nickname` varchar(200) DEFAULT NULL,  `etl_time` datetime DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;其中,源表是多個分表:其分表后綴是以Uid模256所得結果命名。2、執行根據Uid查找用戶昵稱的代碼實際上,是將查找的結果,放在目標數據庫表里。/Users/nisj/PycharmProjects/BiDataProc/UserPortrait/findDataFromModSubmeter.py
# -*- coding=utf-8 -*-import os,re,timedef find_nickname_from_uid(uid):    tab_tail = uid%256    nickname_uid_data = os.popen("""/usr/bin/MySQL -hsourceip -P50514 -usourceUser -psourcePass --default-character-set=utf8 -N -e "set names utf8; /    use jellyfish_user; /    select uid,nickname from user_profile_%s where uid='%s'; /    " """ % (tab_tail, uid)).readlines();    msd_list = []    for ms_list in nickname_uid_data:        ms = re.split('/t', ms_list.replace('/n', ''))        msd_list.append(ms)    for msd in msd_list:        uid = msd[0]        nickname = msd[1]        etl_time = time.strftime('%Y-%m-%d %X', time.localtime())        # print "{0}/t{1}".format(uid, nickname)        os.system("""/usr/bin/mysql -htargetIp -P6603 -utargetUser -ptargetPass --default-character-set=utf8 -e "set names utf8; /        use funnyai_data; /        insert into bi_find_nickname_from_uid(uid, nickname, etl_time) /        select '%s','%s','%s'; /         " """ % (uid, nickname, etl_time))list_uid = [200063,200067,200111,1209195139,1209195288,1209393002,1209450272]# 清空目標表數據os.system("""/usr/bin/mysql -htargetIp -P6603 -utargetUser -ptargetPass --default-character-set=utf8 -e "set names utf8; /       use funnyai_data; /       truncate table bi_find_nickname_from_uid; /        " """)for uid in list_uid:    print uid    find_nickname_from_uid(uid)3、說明在處理的過程中,碰到數據傳輸過程中的亂碼問題;通過數據導出與導入過程中加入“--default-character-set=utf8”和“set names utf8;”解決。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 稻城县| 四川省| 大港区| 临汾市| 三门峡市| 河间市| 通榆县| 阜平县| 佛冈县| 怀安县| 阿城市| 三亚市| 临潭县| 临沂市| 岑溪市| 桑日县| 迁西县| 托克逊县| 克山县| 肃宁县| 富源县| 江北区| 襄城县| 新营市| 陆丰市| 阿拉善盟| 库尔勒市| 都兰县| 天全县| 读书| 兴国县| 察隅县| 天峻县| 双桥区| 景洪市| 曲麻莱县| 通化市| 沿河| 康乐县| 新野县| 沐川县|