In Bezug auf Cloud-Services gab es ein Image wie AWS, aber IBM bietet Services auch als "IBM Cloud" an. Nach der Untersuchung werden viele Services in der IBM Cloud bereitgestellt, und einige Services können kostenlos verwendet werden. Insbesondere finde ich es ziemlich groß, dass Sie ein typisches IBM RDBMS "DB2" kostenlos verwenden können, wenn es 200 MB oder weniger beträgt (Stand 2020/07). Wenn Sie verschiedene Dinge einzeln ausführen, reichen 200 MB aus. In ähnlicher Weise habe ich in Zusammenarbeit mit "IBM Cloud Funtions", die kostenlos verwendet werden können, wenn die Anzahl der Anforderungen einen bestimmten Betrag unterschreitet, versucht zu beschreiben, bis es möglich wird, die Tabelle in Db2 in der Cloud zu durchsuchen / zu aktualisieren.
Es beginnt nach dem Erstellen eines IBM Cloud-Kontos. IBM Cloud-Anmeldebildschirm (https://cloud.ibm.com/login)
Geben Sie db2 in das Suchfeld ein, um den db2-Servicebildschirm zu öffnen.
Wählen Sie London oder Dallas als Region und Lite als Tarif. Bitte beachten Sie, dass es in anderen Regionen als diesen beiden keinen Lite-Plan gibt. Die Schaltfläche "Erstellen" unten rechts erstellt den db2-Dienst
Der db2-Dienst wurde erstellt. Bevor Sie eine Tabelle oder etwas erstellen, erstellen Sie Ihre Anmeldeinformationen. Sie benötigen es, wenn Sie über die Cloud-Funktion eine Verbindung zur Datenbank herstellen. Öffnen Sie "Service Credentials" aus dem Menü auf der linken Seite.
Unmittelbar nach dem Erstellen des db2-Dienstes gibt es meines Erachtens keine Anmeldeinformationen. ① Klicken Sie auf die Schaltfläche "Anmeldeinformationen erstellen". Sie werden aufgefordert, einen Namen einzugeben. Geben Sie also etwas ein. ② Anmeldeinformationen werden erstellt. Drücken Sie daher auf das Teil wie "V" auf der linken Seite des Namens, um die Informationen zu öffnen. ③ Notieren Sie sich den Teil, der mit "ssldsn" beginnt, da er für die Verbindung erforderlich ist.
Öffnen Sie nach dem Erstellen der Anmeldeinformationen die db2-Konsole. Wählen Sie "Verwalten" aus dem linken Menü und klicken Sie auf die Schaltfläche "Konsole öffnen".
Nachdem der db2-Dienst erstellt wurde, erstellen Sie eine Tabelle. Dieses Mal erstellen wir eine Tabelle, indem wir die zuvor vorbereitete CSV-Datei lesen. Klicken Sie oben links auf das grüne dreizeilige Symbol und öffnen Sie es in der Reihenfolge LADEN → Daten laden.
Dieses Mal verwenden wir die folgende CSV-Datei.
table_test.csv
NUMBER,NAME,UPDATE_TIME
1,Taro,2020-01-01 18:00:00
2,Hanako,2020-02-03 21:00:00
3,Mike,2020-02-14 14:30:00
Ziehen Sie die CSV-Zieldatei per Drag & Drop auf "Dateiauswahl" in der Nähe der Mitte. Klicken Sie nach dem Hochladen der Datei unten rechts auf die Schaltfläche "Weiter", um fortzufahren.
Der Bildschirm zur Auswahl eines Schemas / einer Tabelle wird angezeigt. Dieses Mal erstellen wir eine neue Tabelle mit dem vorhandenen Schema. Abgesehen vom Schema mit systematischen Namen wie "AUDIT" und "DB2INST1" gibt es meines Erachtens ein Schema mit 3 englischen Zeichen + 5 Ziffern. Wählen Sie es also aus. Klicken Sie für die nächste Tabelle oben rechts auf "Neue Tabelle". Geben Sie unter Neue Tabelle erstellen den Tabellennamen ein und klicken Sie auf die Schaltfläche "Erstellen". Drücken Sie abschließend unten rechts auf die Schaltfläche "Weiter", um zum nächsten Bildschirm zu gelangen.
Es wird ein Bildschirm zum Festlegen des Spaltennamens usw. angezeigt. Klicken Sie diesmal einfach auf die Schaltfläche "Weiter" unten rechts, um fortzufahren.
Klicken Sie unten rechts auf die Schaltfläche "Begin Load".
Warten Sie einen Moment, bis die Ladung erfolgt. Nach Abschluss des Ladevorgangs können Sie die geladene Tabelle mit der Schaltfläche "Tabelle anzeigen" überprüfen. Es scheint, dass Sie den Prozentsatz der Datensätze, die erfolgreich / fehlgeschlagen geladen wurden, im Kreisdiagramm sehen können.
Damit ist die Einrichtung / Tabellenerstellung auf der Db2-Seite abgeschlossen.
Bereiten Sie als Nächstes Cloud-Funktionen (Aktionen) vor, um Python auszuführen. Gehen Sie zurück zur IBM Cloud-Homepage und geben Sie function in das Suchfeld ein, um "Functions" zu öffnen.
Klicken Sie auf die Schaltfläche "Erstellung starten".
Wählen Sie diesmal "Aktion".
Geben Sie den Aktionsnamen ein. Da wir diesmal in Python codieren, wählen Sie zur Laufzeit "Python 3.7" und klicken Sie auf "Erstellen".
Es wurde ein Codierungsbildschirm. Es scheint, dass der in der standardmäßig vorbereiteten Hauptfunktion beschriebene Prozess durch Aufrufen der Aktion ausgeführt wird.
Schreiben Sie in der Hauptfunktion den Prozess mit Python. Dieses Mal habe ich den folgenden Code erstellt, um eine bestimmte Zeile aus der Testtabelle abzurufen. Zumindest wird nur die zu betreibende Verarbeitung beschrieben. Wenn Sie also die tatsächlich zu betreibende Verarbeitung beschreiben, ist es besser, eine Fehlerverarbeitung und eine Verarbeitung des Statusprotokolls auszugeben.
select_test
import sys
import ibm_db
def main(dict):
#Weisen Sie den Inhalt der Anmeldeinformationen der Variablen ssldsn zu
# "ssldsn":"DATABASE=XXXXX;HOSTNAME=XXXXX;PORT=XXXXX;PROTOCOL=TCPIP;UID=XXXXX;PWD=XXXXX;Security=SSL;"
ssldsn = "DATABASE=XXXXX;HOSTNAME=XXXXX;PORT=XXXXX;PROTOCOL=TCPIP;UID=XXXXX;PWD=XXXXX;Security=SSL;"
#DB-Verbindung
db_conn = ibm_db.connect(ssldsn,"","")
#SQL-Assembly
sql = "SELECT * FROM TEST_TABLE WHERE NUMBER = ?"
db_stmt = ibm_db.prepare(db_conn,sql)
number = 3
ibm_db.bind_param(db_stmt,1,number)
#SQL-Ausführung
ibm_db.execute(db_stmt)
row = ibm_db.fetch_tuple(db_stmt)
#DB-Trennung
ibm_db.close(db_conn)
return {'name' : row[1] }
Speichern Sie es nach dem Codieren mit der Schaltfläche "Speichern" oben rechts.
Nach dem Speichern wird an derselben Stelle eine Schaltfläche "Start" angezeigt. Wenn Sie darauf drücken, wird der geschriebene Code ausgeführt und das Verarbeitungsergebnis angezeigt.
Beachten Sie bei der Ausführung, dass der Ladebetrag der Funktionen durch (verwendete Speichergröße) × (kumulierte Anzahl der verwendeten Sekunden) berechnet wird (ab 2020/07 können 400.000 GB als freier Frame verwendet werden ). Daher ist es besser, die Speichergröße klein zu halten, wenn Sie sie zu Testzwecken verwenden. Sie können die verwendete Speichergröße unter "Laufzeit" im Menü links ändern.
Als Nächstes erstellen wir Funktionen, die der Testtabelle Zeilen hinzufügen. Versuchen Sie zu diesem Zeitpunkt, den Wert der Spalte "NAME" aus dem Argument zum Zeitpunkt der Ausführung der Aktion abzurufen. Stellen Sie außerdem sicher, dass die Spalte "UPDATE_TIME" den Zeitpunkt enthält, zu dem die Aktion ausgeführt wurde. Befolgen Sie die gleichen Schritte wie im vorherigen Abschnitt, um eine neue Aktion in Funts zu erstellen. Diesmal habe ich es "insert_test" genannt. Der Code-Inhalt ist wie folgt.
insert_test
import sys
import ibm_db
import datetime
def main(dict):
#Kopieren Sie den Inhalt der Anmeldeinformationen
ssldsn = "DATABASE=XXXXX;HOSTNAME=XXXXX;PORT=XXXXX;PROTOCOL=TCPIP;UID=XXXXX;PWD=XXXXX;Security=SSL;"
#DB-Verbindung
db_conn = ibm_db.connect(ssldsn,"","")
#SQL-Anweisungskonstruktion
sql = "INSERT INTO TEST_TABLE VALUES(?,?,?)"
db_stmt = ibm_db.prepare(db_conn,sql)
id = 5
name = dict['name']
update_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
ibm_db.bind_param(db_stmt,1,id)
ibm_db.bind_param(db_stmt,2,name)
ibm_db.bind_param(db_stmt,3,update_time)
#Ausführung der SQL-Anweisung
rtn = ibm_db.execute(db_stmt)
#DB-Trennung
rc = ibm_db.close(db_conn)
return { 'return-code': rtn }
Um eine Aktion mit Argumenten auszuführen, klicken Sie links neben der Schaltfläche "Starten" auf die Schaltfläche "Mit Parametern starten".
Das folgende Popup wird angezeigt. Geben Sie daher die Argumentinformationen im JSON-Format ein. Der beschriebene Inhalt wird im Argument dict der Hauptfunktion gespeichert.
Dieses Mal möchte ich den Wert von "Jiro" aus dem Diktat mit dem Schlüssel "Name" erhalten
{ 'name' : 'Jiro'}
Und klicken Sie auf die Schaltfläche "Übernehmen".
Drücken Sie dann die Taste "Starten", um die Aktion auszuführen.
Stellen Sie sicher, dass die Zeilen korrekt zur Testtabelle hinzugefügt wurden. Öffnen Sie die Db2-Konsole und klicken Sie oben links auf das grüne dreizeilige Symbol, um RUN SQL zu öffnen.
Eine Konsole zum Schreiben von SQL wird geöffnet. Schreiben Sie hier SQL und drücken Sie unten links auf "Alle ausführen", um die SQL-Anweisung auszuführen.
Dieses Mal möchte ich also den Inhalt der Testtabelle überprüfen
SELECT * FROM TEST_TABLE;
Als ich die SQL von ausführte, konnte ich bestätigen, dass die Zeile mit dem Namen 'Jiro' hinzugefügt wurde.
Ich habe gerade IBM Cloud gestartet und es scheint, dass ich mit einem Lite-Konto etwas erstellen kann, das so funktioniert. Ich denke, es ist perfekt für die Erfahrung der serverlosen Verarbeitung in einer Cloud-Umgebung. In Zukunft möchte ich es erweitern, damit Aktionen durch Trigger (Ankunftszeit / Datei-Upload) ausgeführt und Verarbeitungsergebnisse an einen anderen Dienst übergeben werden können.
Recommended Posts