python實現(xiàn)mysql數(shù)據(jù)同步到elasticsearch

環(huán)境:
python3.5
支持包:
pymysql
elasticsearch_dsl

安裝 pymysql elasticsearch_dsl

pip install elasticsearch_dsl
pip pymysql

代碼實現(xiàn)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/4/18 下午6:30
# @Author  : lizhao
# @File    : mysql_data_to_elasticsearch.py
# @Version : 1.0
# 說明: 將mysql上的數(shù)據(jù)按規(guī)則放入elasticsearch中

# 引入es_type包
from tools.es_types import ZukerType
from w3lib.html import remove_tags
# 引入處理mysql的程序包
import pymysql

##############
# 數(shù)據(jù)庫參數(shù)
zukerDB_ip = '********'
zukerDB_db = '********'
zukerDB_user = '********'
zukerDB_pw = '********' 
zukerDB_******** = '********'  #表名 


##############
class MysqlMesToElastic():

    def __init__(self):
        pass

    # 獲取數(shù)據(jù)庫數(shù)據(jù)
    def get_mysql_data(self):
        id = 1
        db_zuker = pymysql.connect(zukerDB_ip, zukerDB_user, zukerDB_pw,
                                   zukerDB_db,charset="utf8",cursorclass = pymysql.cursors.DictCursor)
        cursor = db_zuker.cursor()
        # 取出最后一條數(shù)據(jù)
        SQL_get_mes = "select * from 58house_info order by id desc limit 1;"
        cursor.execute(SQL_get_mes)
        last_id = cursor.fetchone()['id']
        print(last_id)
        while id <= int(last_id):
        # while id <= 5:
            dict_mes = {}
            # try:
            SQL_get_mes = "select * from %s WHERE id = %s;" % (zukerDB_58house_info,id)
            # SQL_get_mes = "select * from 58house_info WHERE id = 5;"
            cursor.execute(SQL_get_mes)
            results = cursor.fetchone()
            # 如果有元素則分析元素
            if results:
                dict_mes = {
                    'title': results['name'],
                    'price': results['price'],
                    'create_date': results['sendTime'],
                    'desc': '   '.join([results['leasingMethod'],
                                  results['tags'],results['houseType'],results['company']]),
                    'area': results['address'],
                    'longitude': results['longitude'],
                    'latitude': results['latitude'],
                    'url':results['url']
                }
            id += 1
            if dict_mes:
                # 調(diào)用 process_item方法 向數(shù)據(jù)庫中插數(shù)據(jù)
                self.process_item(dict_mes)



    # item = get_mysql_data()
    # 將數(shù)據(jù)寫入到ES中
    def process_item(self,item):
        print(item)
        zuker = ZukerType()
        zuker.title = item['title']  # 'title': '名稱',
        zuker.price = item['price']  # 'price': '價格',
        zuker.create_date =  item['create_date'] # 'create_date': '時間',
        zuker.desc = item['desc']  # 'desc': '介紹',
        zuker.area = item['area']  # 'area': '位置',
        zuker.longitude = item['longitude']  # 'longitude': '經(jīng)度',
        zuker.latitude = item['latitude']  # 'latitude': '維度',
        zuker.url = item['url']  # 'url': 'url',

        # 保存
        try:
            zuker.save()
        except:
            pass

if __name__ == "__main__":
    item = MysqlMesToElastic()
    item.get_mysql_data()

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市领曼,隨后出現(xiàn)的幾起案子鸥鹉,更是在濱河造成了極大的恐慌蛮穿,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件毁渗,死亡現(xiàn)場離奇詭異践磅,居然都是意外死亡,警方通過查閱死者的電腦和手機灸异,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門府适,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人肺樟,你說我怎么就攤上這事檐春。” “怎么了么伯?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵疟暖,是天一觀的道長。 經(jīng)常有香客問我蹦狂,道長誓篱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任凯楔,我火速辦了婚禮窜骄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘摆屯。我一直安慰自己邻遏,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布虐骑。 她就那樣靜靜地躺著准验,像睡著了一般。 火紅的嫁衣襯著肌膚如雪廷没。 梳的紋絲不亂的頭發(fā)上糊饱,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天,我揣著相機與錄音颠黎,去河邊找鬼另锋。 笑死,一個胖子當(dāng)著我的面吹牛狭归,可吹牛的內(nèi)容都是我干的夭坪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼过椎,長吁一口氣:“原來是場噩夢啊……” “哼室梅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤亡鼠,失蹤者是張志新(化名)和其女友劉穎赏殃,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拆宛,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡嗓奢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了浑厚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片股耽。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖钳幅,靈堂內(nèi)的尸體忽然破棺而出物蝙,到底是詐尸還是另有隱情,我是刑警寧澤敢艰,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布诬乞,位于F島的核電站,受9級特大地震影響钠导,放射性物質(zhì)發(fā)生泄漏震嫉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一牡属、第九天 我趴在偏房一處隱蔽的房頂上張望票堵。 院中可真熱鬧,春花似錦逮栅、人聲如沸悴势。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽特纤。三九已至,卻和暖如春侥加,著一層夾襖步出監(jiān)牢的瞬間捧存,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工担败, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留矗蕊,地道東北人。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓氢架,卻偏偏與公主長得像,于是被迫代替她去往敵國和親朋魔。 傳聞我的和親對象是個殘疾皇子岖研,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 環(huán)境管理管理Python版本和環(huán)境的工具。p–非常簡單的交互式python版本管理工具。pyenv–簡單的Pyth...
    MrHamster閱讀 3,792評論 1 61
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個 Awesome - XXX 系列...
    aimaile閱讀 26,478評論 6 427
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,806評論 6 342
  • 人常說腹有詩書即使布衣素服也自氣質(zhì)雅致高貴孙援。誠然害淤,我也從不曾否認過這一點,一個人豐裕的內(nèi)在修養(yǎng)一定會折射于...
    姑蘇的城閱讀 530評論 2 4
  • #幸福是需要修出來的~每天進步1%~幸福實修08班~03-張恩花-富陽# 20170712(24//99) 【幸福...
    田豐房產(chǎn)閱讀 171評論 0 3