国产探花免费观看_亚洲丰满少妇自慰呻吟_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;”解決。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁明县| 闽侯县| 漳平市| 和顺县| 多伦县| 襄樊市| 内丘县| 洛阳市| 洛隆县| 延吉市| 嘉峪关市| 赫章县| 邵东县| 海口市| 塔城市| 眉山市| 青冈县| 阿瓦提县| 枣阳市| 西安市| 綦江县| 宣城市| 唐山市| 铜鼓县| 德化县| 汉阴县| 河东区| 河间市| 铜山县| 南京市| 塔城市| 衡南县| 怀来县| 望城县| 团风县| 无极县| 贵溪市| 五寨县| 临安市| 鄂托克前旗| 大连市|