[PYTHON] Wie erstelle ich eine große Menge an Testdaten in MySQL? ??

Nachdem Sie während der Entwicklung mit MySQL DBs und Tabellen definiert haben, möchten Sie möglicherweise Testdaten. Hier werden wir das Verfahren von der Erstellung der Datenbank bis zur Registrierung der Testdaten vorstellen.

Ausführen der Skriptdatei

Bei der Erstellung einer großen Menge von Testdaten muss die Arbeit automatisiert werden. In MySQL können Sie neben der manuellen Eingabe von SQL-Befehlen auch Dateien mit SQL-Befehlen ausführen.

Wenn beispielsweise eine Datei vorhanden ist, die den folgenden SQL-Befehl beschreibt, lautet die Ausführungsmethode wie folgt.

SQLFile.sql


CREATE DATABASE CreateTestData;
SHOW DATABASES;

Terminal


#Melden Sie sich bei MySQL an
mysql -u root -p
Enter password: 
・
・
・
# SQLFile.Führen Sie SQL aus
mysql> SOURCE SQLFile.sql
+--------------------+
| Database           |
+--------------------+
| information_schema |
| CreateTestData     |
| mysql              |
| performance_schema |
+--------------------+
5 rows in set (0.03 sec)

Da Sie eine externe Datei lesen und SQL-Befehle auf diese Weise ausführen können, können Sie eine große Menge von Testdaten registrieren, wenn Sie eine Datei generieren können, die eine große Anzahl von SQL-Befehlen beschreibt, die Testdaten generieren.

Erstellen einer Skriptdatei zum Registrieren von Testdaten

Tabelle zum Registrieren von Daten

Definieren Sie dieses Mal die folgende Benutzertabelle und erstellen Sie Beispieldaten.

CREATE.sql


CREATE TABLE user (
  user_id INT PRIMARY KEY AUTO_INCREMENT,
  user_name VARCHAR(45),
  user_age INT,
  created_at DATETIME
 );

Erstellen eines Programms, das solche Testdaten generiert

Unter dem Gesichtspunkt des Verstehens und Lesens des Inhalts wird unten das Programm gezeigt, das das SQL-Skript mit Python3 generiert.

createSQL.py


# coding:utf-8
import random
import time

#Generieren Sie einen Namen aus einer Liste mit Nach- und Vornamen
def randomName():
    myouji = ["Tanaka", "Suzuki", "Sato", "Takahashi"]
    namae = ["Taro", "Jiro", "Saburo", "Hanako"]
    return random.choice(myouji) + random.choice(namae)

# 0~Generiere 100 Zufallszahlen
def randomAge():
    return random.randint(0, 100)

#Zufällige Datumsgenerierung zwischen Start und Ende
def randomDate(start, end):
    format = '%Y-%m-%d %H:%M:%S'
    stime = time.mktime(time.strptime(start, format))
    etime = time.mktime(time.strptime(end, format))
    ptime = stime + random.random() * (etime - stime)
    return time.strftime(format, time.localtime(ptime))

#Name der Ausgabedatei
OUTPUT_FILE = "TestData.sql"

#Anzahl der zu registrierenden Daten
RECORD_COUNT = 10

#Auszuführende SQL-Befehlszeichenfolge
sqlCommands = ""

#Geben Sie die zu verwendende Datenbank an(Diesmal CreateTestData)
sqlCommands += "USE CreateTestData;\n"

#Generieren Sie INSERT-Anweisungen für die Anzahl der zu registrierenden Daten
for _ in range(RECORD_COUNT):

    #Erzeugung von zu registrierenden Zufallsdaten
    name = randomName()
    age  = randomAge()
    date = randomDate("2014-6-28 00:00:00", "2015-6-28 00:00:00")

    #Generieren Sie eine Insert-Anweisung aus zufälligen Daten
    sqlCommands += "INSERT INTO user " \
                   "(user_name, user_age, created_at) " \
                   "VALUES ('{}', '{}', '{}');\n"\
                   .format(name, age, date)

#Schreiben Sie den generierten SQL-Befehl in eine Datei
f = open(OUTPUT_FILE, 'w')
f.write(sqlCommands)
f.close()

Durch Ausführen des obigen Programms wird eine Datei mit dem Namen TestData.sql im selben Verzeichnis generiert. Wenn es erfolgreich generiert werden kann, lautet der Inhalt von TestData.sql wie folgt, und INSERT-Anweisungen für die Anzahl der registrierten Daten werden beschrieben.

TestData.sql


USE CreateTestData;
INSERT INTO user (user_name, user_age, created_at) VALUES ('Jiro Sato', '39', '2015-04-28 04:08:08');
INSERT INTO user (user_name, user_age, created_at) VALUES ('Jiro Suzuki', '60', '2015-06-25 23:37:52');
INSERT INTO user (user_name, user_age, created_at) VALUES ('Saburo Tanaka', '40', '2015-04-20 04:56:53');
・
・
・

Ausführung der generierten Skriptdatei

Um die Testdaten zu registrieren, führen Sie die generierte Skriptdatei wie oben gezeigt aus und überprüfen sie.

Terminal


#Melden Sie sich bei MySQL an
mysql -u root -p
Enter password: 
・
・
・

#Registrierung von Testdaten
mysql> SOURCE TestData.sql

Database changed
Query OK, 1 row affected (0.01 sec)

Query OK, 1 row affected (0.00 sec)
・
・
・

#Überprüfen Sie, ob die Daten registriert wurden
mysql> select * from user;
+---------+--------------+----------+---------------------+
| user_id | user_name    | user_age | created_at          |
+---------+--------------+----------+---------------------+
|       1 |Jiro Sato|       39 | 2015-04-28 04:08:08 |
|       2 |Jiro Suzuki|       60 | 2015-06-25 23:37:52 |
|       3 |Saburo Tanaka|       40 | 2015-04-20 04:56:53 |
|       4 |Saburo Sato|       77 | 2015-04-08 02:46:19 |
|       5 |Jiro Sato|       57 | 2014-11-17 11:21:06 |
|       6 |Taro Takahashi|       83 | 2014-09-20 07:57:11 |
|       7 |Hanako Tanaka|       24 | 2014-11-17 00:51:38 |
|       8 |Jiro Takahashi|       89 | 2014-11-29 20:22:24 |
|       9 |Taro Tanaka|       38 | 2015-02-26 18:04:42 |
|      10 |Jiro Sato|       13 | 2014-09-26 13:14:35 |
+---------+--------------+----------+---------------------+
10 rows in set (0.00 sec)

Es wurde bestätigt, dass 10 Probendaten erfolgreich registriert wurden.

Zusammenfassung

Ich konnte die Daten registrieren, indem ich eine Skriptdatei generierte, um Testdaten zu erstellen und die Skriptdatei auszuführen. Mit zunehmender Anzahl von Tabellen und Spalten können Sie Testdaten für jede Tabelle und Spalte registrieren, indem Sie das Programm entsprechend erweitern.

Lassen Sie uns das Entwicklungsleben genießen!

Recommended Posts

Wie erstelle ich eine große Menge an Testdaten in MySQL? ??
[TensorFlow 2.x-kompatible Version] So trainieren Sie eine große Datenmenge mit TFRecord & DataSet in TensorFlow (Keras)
So erstellen Sie eine JSON-Datei in Python
So erstellen Sie Daten für CNN (Chainer)
So erstellen Sie eine Rest-API in Django
So senden Sie ein visualisiertes Bild der in Python erstellten Daten an Typetalk
Beispiel für das Aggregieren einer großen Menge von Zeitreihendaten mit Python in einer kleinen Speicherumgebung mit einer angemessenen Geschwindigkeit
Einzeiler, der unter Linux eine große Anzahl von Testdateien gleichzeitig erstellt
So entwickeln Sie in einer virtuellen Python-Umgebung [Memo]
So erhalten Sie eine Liste der integrierten Ausnahmen für Python
So erhalten Sie einen Überblick über Ihre Daten in Pandas
So erstellen Sie ein Conda-Paket
Wie erstelle ich eine Docker-Datei?
So erstellen Sie eine Konfigurationsdatei
So erstellen Sie eine Instanz einer bestimmten Klasse aus dict mit __new__ () in Python
Darstellung der Verteilung der Bakterienzusammensetzung aus Qiime2-Analysedaten in einem Box-Whisker-Diagramm
So zeigen Sie eine bestimmte Dateispalte unter Linux an (awk)
Übersicht über das Erstellen eines Server-Sockets und das Einrichten eines Client-Sockets
So überprüfen Sie die Speichergröße einer Variablen in Python
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
<Pandas> Umgang mit Zeitreihendaten in der Pivot-Tabelle
So ermitteln Sie die Scheitelpunktkoordinaten eines Features in ArcPy
Erstellen Sie eine Funktion, um den Inhalt der Datenbank in Go abzurufen
So erstellen Sie einen Klon aus Github
So erstellen Sie einen Git-Klonordner
Verwendung von Google Test in C-Sprache
Wie bekomme ich Stacktrace in Python?
Umgang mit aufeinanderfolgenden Werten in MySQL
So erstellen Sie ein Repository aus Medien
So testen Sie auf einer von Django authentifizierten Seite
So testen Sie jede IE-Version mit Selenium mit modan.IE (VM)
So erstellen Sie einen Wrapper, der die Signatur der zu umschließenden Funktion beibehält
[Entwicklungsumgebung] So erstellen Sie einen Datensatz in der Nähe der Produktionsdatenbank
So formatieren Sie eine Liste von Wörterbüchern (oder Instanzen) in Python
Code lesen von faker, einer Bibliothek, die Testdaten in Python generiert
[Python] [Word] [python-docx] Versuchen Sie, mit python-docx eine Vorlage für einen Wortsatz in Python zu erstellen
So berechnen Sie die Volatilität einer Marke
Erstellen von CSV-Beispieldaten mit Hypothese
Erstellen Sie in 1 Minute eine Vim + Python-Testumgebung
So erstellen Sie große Dateien mit hoher Geschwindigkeit
Laden Sie eine große Anzahl von Bildern in Wordpress hoch
So löschen Sie einen Taple in einer Liste (Python)
So verfolgen Sie die Arbeit mit Powershell
Einbetten von Variablen in Python-Strings
So erstellen Sie ein Funktionsobjekt aus einer Zeichenfolge
Zusammenfassung zum Importieren von Dateien in Python 3
Ich möchte mit Python ein Fenster erstellen
Erstellen Sie einen Datensatz, indem Sie zufällig MNIST-Daten auswählen
So implementieren Sie eine Verlaufsauswahl in Houdini
So benachrichtigen Sie Discord-Kanäle in Python
[Hinweis] So erstellen Sie eine Ruby-Entwicklungsumgebung
So erstellen Sie ein 1-zeiliges Kivy-Eingabefeld
Verfahren zur Erstellung plattformübergreifender Apps mit kivy
Lesen von Zeitreihendaten in PyTorch
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
Wie schreibe ich ein benanntes Tupeldokument im Jahr 2020?