利用跳板機連線mysql,匯出資料到csv

2021-10-12 02:45:42 字數 1487 閱讀 9467

需求:

資料庫裡有很多店鋪的點位(經緯度)資訊,大概有900多萬條。現在需要將這900多萬條店鋪資料按照省份的字段匯出,一共有34個省份。

其實人工可解,直接sql,按照省份匯出就行,當時我就是這麼做的,因為還沒接觸pandas哈哈。現在記錄一下,以後就不需要人肉儲存資料啦。

實現:

1.因為是外網環境,所以要用到跳板機連線

2.通過pandas迴圈匯出資料到不同問價。

用到的庫:

pandas,pymysql,sshtunnel

注意點:

使用tunnel.start() 之後一定要用tunnel.close(),否則這個執行緒會一直掛著。好像前段時間還因為這個坑了一下同事!

**如下:

import pandas as pd

import pymysql

from sshtunnel import sshtunnelforwarder

#通過查詢資料庫資料,匯出excel表

tunnel = sshtunnelforwarder(("111.111.111.111", 1111), #跳板機的位址,埠

ssh_username="abcd", #跳板機使用者名稱

ssh_password="abcd", #跳板機訪問密碼

remote_bind_address=("172.11.11.11", 3306)) #目標資料庫位址&埠

tunnel.start()

conn = pymysql.connect(host='127.0.0.1',

port=tunnel.local_bind_port, #預設必填

user="111", #資料庫使用者名稱

password="11111",#資料庫密碼

database="1111") #資料庫名

#將所有省份放在陣列中,因為已經導好了,就隨便整兩三個

pl = ['山西省','江西省','河南省']

sql = "select name,address,lng,lat,pname,city_name from location where pname='%s'"

#pandas匯入mysql資料

for p in pl:

sql1 = sql % p

print(sql1)

a = pd.read_sql(sql1,conn)

f = 'e:\\爬蟲\\pandas\\%s.csv' % p

print(f,'資料生成中')

a.to_csv(f,index=false,encoding='utf_8_sig')

conn.close()

tunnel.close()

winscp實現跳板機連線

winscp實現 google authentication 鍵盤互動式認證 跳板機實現。普通使用者想利用ftp連線,並且實現上傳的話,會出現沒有許可權的提示,這個問題前面已經解決過,但是現在怎麼實現 google 認證加上跳板機呢。1 建立跳板機連線 填寫好跳板機的位址,埠等資訊,注意此處的是跳板...

Python3登入跳板機訪問MySQL資料庫

生產環境的資料庫基於安全的原因是無法直連訪問的,但是有時本地測試的時候又需要訪問生產環境的庫,這時候就需要登入跳板機來中轉。目前登入跳板機有兩種 使用paramiko 使用sshtunnel.以下以sshtunnel為例實現 import os import pymysql from sshtunn...

VNC安裝配置及連線(跳板機)

yum install y tigervnc server 安裝vnc服務端,一般執行此句即可 yum groupinstall y x window system desktop 如果沒安裝桌面環境,執行安裝 yum install y vinagre vnc客戶端,一般不用在服務端也安裝客戶端 ...