[PYTHON] Bereiten Sie eine Hochgeschwindigkeitsanalyseumgebung vor, indem Sie in der Datenanalyseumgebung auf MySQL klicken

Ich werde darüber schreiben, wie man mit einem Datenanalysetool wie jupyter eine Verbindung zu rds herstellt und einen Datenrahmen erhält.

Motivation

Wenn Sie Daten aus einer Datenbank abrufen und analysieren möchten

  1. Erstellen Sie die Ergebnismenge, für die Sie SQL eingeben möchten
  2. Löschen Sie CSV in der Ergebnismenge
  3. Fügen Sie CSV in die Analyseumgebung ein
  4. Lesen Sie CSV und erstellen Sie einen Datenrahmen
  5. Mit dem Datenrahmen zur Hand, bereit zu gehen

Ich denke, dass es oft dem Prozess folgt.

jedoch

Unter solchen Umständen wird der vorherige Vorgang viele Male wiederholt. Infolgedessen kann der Mitarbeiter wiederholt zwischen der Datenbank und der Analyseumgebung wechseln oder Kommunikationskosten zwischen dem Ingenieur, der die Daten aufbereitet, und dem Datenwissenschaftler, der sie analysiert, verursachen.

Daher dachte ich, dass die Kosten reduziert werden könnten, wenn die Analyseumgebung so wie sie ist mit der Datenbank verbunden wird.

Was ist passiert

Ich verwende Python häufig für die Datenanalyse, aber dieses Mal habe ich versucht, mit dem MySQL-Client [mysqlclient] von Python (https://github.com/PyMySQL/mysqlclient-python) eine Verbindung zur Datenbank herzustellen. (Mysqlclient ist der empfohlene Treiber für Pythons Webframework Django)

Ohne Stufenserver

import MySQLdb

connect = MySQLdb.connect(
    host='rds Endpunkt',
    user='Nutzername',
    db='Name der Datenbank',
    passwd='Passwort'
)

cursor = connect.cursor()
sql = "Schreiben Sie eine SQL-Anweisung, z. B. select als Zeichenfolge"
cursor.execute(sql)
for row in cursor.fetchall():
    print(row)
cursor.close()
connect.close()

Das Ergebnis wird als Taple zurückgegeben. Stellen Sie sicher, dass Sie der SQL-Spezifikation ein Limit hinzufügen, da der Prozess nicht beendet wird, wenn die Tabelle groß ist.

Wenn es einen Stufenserver gibt

Wenn Sie einen Stufenserver haben, verwenden Sie die Bibliothek sshtunnel, um einen SSH-Tunnel mit mysqlclient zu graben.

import MySQLdb
from sshtunnel import SSHTunnelForwarder

with SSHTunnelForwarder(
    ('IP-Adresse des Plattformservers',Schritt Server Portnummer),
    ssh_host_key=None,
    ssh_username='Benutzername für den Zugriff auf den Plattformserver',
    ssh_password=None,
    ssh_pkey='ssh Geben Sie den Pfad des privaten Schlüssels an',
    remote_bind_address=('rds Endpunkt',rds Portnummer),
    local_bind_address=('lokaler Gastgeber',Beliebige Portnummer)
) as tunnel:
    connect = MySQLdb.connect(
        host='lokaler Gastgeber',
        port=Lokal ein_bind_Beliebige Portnummer bestimmt durch Adresse,
        user='Nutzername',
        db='Name der Datenbank',
        passwd='Passwort'
    )
    cursor = connect.cursor()
    sql = "Schreiben Sie eine SQL-Anweisung, z. B. select als Zeichenfolge"
    cursor.execute(sql)
    for row in cursor.fetchall():
        print(row)
    cursor.close()
    connect.close()

Das Ergebnis wird auch als Taple zurückgegeben.

Zusammenfassung

――Ich möchte verschiedene Datenrahmen ausprobieren

Wir konnten diese Anforderungen erfüllen und ein Umfeld schaffen, in dem Analysten schnell die gewünschten Daten erhalten können.

Da Variablen auf der Python-Seite angegeben werden können, bestand ein sekundärer Vorteil darin, dass Ausdrücke flexibel verarbeitet werden können, z. B. das Erweitern von Ausdrücken auf die Zeichenfolge, die SQL angibt.

Recommended Posts

Bereiten Sie eine Hochgeschwindigkeitsanalyseumgebung vor, indem Sie in der Datenanalyseumgebung auf MySQL klicken
Zum ersten Mal versuchte ein Programmieranfänger eine einfache Datenanalyse mit Programmierung
Geschichte rund um die Datenanalyse durch maschinelles Lernen
Prognostizieren Sie die Aktienkurse durch Big-Data-Analyse aus früheren Daten
Darstellung der Verteilung der Bakterienzusammensetzung aus Qiime2-Analysedaten in einem Box-Whisker-Diagramm
Erstellen Sie eine Datenanalyseumgebung mit Kedro + MLflow + Github-Aktionen
Erstellen Sie einen Datenrahmen aus den erfassten Textdaten des Bootsrennens
Erstellen Sie eine Python-Datenanalyseumgebung auf einem Mac (El Capitan).
Erstellen Sie eine Python-Umgebung und übertragen Sie Daten auf den Server
Gzip komprimiert Daten durch Streaming
Eine einfache Datenanalyse von Bitcoin, die von CoinMetrics in Python bereitgestellt wird
Suchen Sie mit Pythonista3 nach einem Bild von der Kamerarolle
[Unerwartet bekannt? ] Einführung eines echten Tages in der Datenanalyse
Führen Sie eine morphologische Analyse in der von GCE gestarteten maschinellen Lernumgebung durch
Holen Sie sich Daten von VPS MySQL mit Python 3 und SQL Alchemy
Bereiten Sie eine verteilte Lasttestumgebung mit dem Python-Lasttest-Tool Locust vor
[Mac] Erstellen Sie eine Python 3-Ausführungsumgebung aus dem vollständig initialisierten Status
Erstellen Sie ein USB-Boot-Ubuntu mit einer Python-Umgebung für die Datenanalyse
Erste Satellitendatenanalyse von Tellus
Bereiten Sie die Entwicklungsumgebung mit anyenv vor
Bereiten Sie die Umgebung für Atom für Pythonista vor
Spielen wir mit dem von TIS erstellten Unternehmensanalysedatensatz "CoARiJ"
Extrahieren und zeichnen Sie die neuesten Bevölkerungsdaten aus den von der Stadt bereitgestellten PDF-Daten
[Entwicklungsumgebung] So erstellen Sie einen Datensatz in der Nähe der Produktionsdatenbank
Spielen wir mit dem von TIS erstellten Unternehmensanalysedatensatz "CoARiJ"
(Erhaltene Version: von Zeit zu Zeit aktualisiert) Eine Sammlung nützlicher Tutorials für Datenanalyse-Hackathons von Team AI