In diesem Handbuch stellen wir Ihnen CockroachDB und PonyORM mit Python vor. Wir werden zunächst diskutieren, was diese Technologien sind, und dann diskutieren, wie sie funktionieren.
Bevor wir mit der Entwicklung einer Python-Anwendung mit CockroachDB und PonyORM beginnen, sollten wir uns mit diesen Technologien vertraut machen:
Was ist KakerlakeDB
CockroachDB ist eine hoch skalierbare, verteilte Open-Source-SQL-Datenbank, die transaktionale und konsistente Schlüsselwertspeicher verwendet.
CockroachDB ist als Methode zur Sicherstellung der Datenpersistenz und Wiederherstellung im Fehlerfall sehr effizient efficient. Im Falle von Hardware- und Softwarefehlern kann es Daten erhalten, indem es stark konsistente Replikationen seiner Daten und automatische Reparaturen verwendet. Mit der SQL-API können Sie mit CockroachDB Daten mithilfe von SQL-Abfragen abfragen, strukturieren und bearbeiten.
Mit der SQL-API bietet CockroachDB Entwicklern einen einfachen Übergang, da sie dieselben vertrauten Konzepte erhalten. Da für die meisten Programmiersprachen bereits SQL-Treiber vorhanden sind, wird die Verwendung komfortabler.
Wir empfehlen Ihnen, die CockroachDB-Dokumentation für ein besseres Verständnis zu lesen.
https://linkfy.to/kakerlakeDocs
Was ist PonyORM
PonyORM ist ein fortgeschrittener Python Object-Relational Mapper. Obwohl es andere Python-ORM wie Django und SQLAlchemy gibt, ist PonyORM von Vorteil, da es Funktionen wie Unterstützung für zusammengesetzte Schlüssel, automatische Abfrageoptimierung und intuitive und unkomplizierte Abfragesyntax bietet.
Ein ORM ist einfach ein Werkzeug, mit dem Sie mit einer SQL-Datenbank in Ihrer bevorzugten Programmiersprache arbeiten können. Es gibt Entwicklern die Möglichkeit, mit den Daten innerhalb einer Datenbank in Form von Objekten zu arbeiten; Daher können Sie OOP für Ihre Sprache verwenden, um mit den Daten zu arbeiten.
Mit der PonyORM-Bibliothek können wir die Python-Sprache verwenden, um mit Daten in CockroachDB in Form von Objekten der relationalen Datenbank zu arbeiten.
Sie können die PonyORM-Dokumentation als Referenz verwenden. Hier ist der Link:
https://docs.Pony.org/toc.html
So installieren Sie CockroachDB unter Linux
Um CockroachDB auf Linux-Systemen zu installieren, befolgen Sie die Schritte in dieser Anleitung. Abhängig von Ihrer Systemkonfiguration müssen Sie über Root-Zugriff verfügen oder ein sudo-Benutzer sein.
Der erste Schritt besteht darin, sicherzustellen, dass Ihr System auf dem neuesten Stand ist, und dann die erforderlichen Abhängigkeiten zu installieren. Hier ist der Befehl dafür:
sudo apt-get update && sudo apt-get upgradesudo apt-get install glibc libncurses tzdata -y
Der nächste Schritt besteht darin, die CockroachDB-Binärdatei mit wget herunterzuladen, wie im folgenden Befehl gezeigt:
wget -qO- https://binaries.Kakerlakedb.com/kakerlake-v20.2.3.linux-amd64.tgzSobald Sie die Binärdatei heruntergeladen haben, extrahieren Sie die Datei.
tar -xvf Kakerlake-v20.2.3.linux-amd64.tgzUm CockroachDB-Befehle von einer beliebigen Shell aus zu starten, fügen Sie die Binärdatei zu Ihrem Pfad hinzu:
cp -i Kakerlake-v20.2.3. linux-amd64/kakerlake /usr/bin/Kopieren Sie die erforderlichen Bibliotheken:
mkdir -p /usr/lib/kakerlakecp -i Kakerlake-v20.2.3.linux-amd64/lib/libgeos.also /usr/lib/kakerlake/
cp -i Kakerlake-v20.2.3.linux-amd64/lib/libgeos_c.also /usr/lib/kakerlake/
Bestätigen Sie nach Abschluss, dass Sie Cockroach installiert haben:
welche Kakerlake/usr/bin/kakerlake
Starten Sie einen temporären In-Memory-Cluster mit dem folgenden Befehl:
Kakerlake DemoInnerhalb des Clusters können Sie eine interaktive SQL-Shell ausführen, um gültige SQL-Abfragen einzugeben:
TABELLEN ANZEIGEN;So installieren Sie PonyORM
Um PonyORM zu installieren, sollten Sie eine installierte und laufende Version von Python haben. Sie können sowohl Python 2 (dead) als auch Python 3 verwenden.
Installieren Sie Pony mit pip:
pip3 installieren ponyUm zu testen, ob Pony installiert ist, öffnen Sie den Python-Interpreter und geben Sie den Code ein.
>>> vom Pony. orm-Import *Da wir PonyORM mit CockroachDB verwenden werden, müssen wir den erforderlichen Treiber installieren. In diesem Fall müssen wir psycopg2 installieren. Verwenden Sie den pip-Befehl, um den erforderlichen Treiber zu installieren.
pip installiere psycopg2-binaryÜberprüfen Sie mit der interaktiven Python-Sitzung, ob Sie Psycopg installiert haben, und geben Sie den Befehl ein:
psycopg importierenSobald Sie alles installiert haben, können Sie weitermachen und mit CochroachDB und PonyORM arbeiten:
So erstellen Sie eine Python-Anwendung mit CockroachDB und PonyORM
Um eine Python-Anwendung zu erstellen, starten Sie zunächst eine interaktive SQL-Shell mit dem Befehl.
Kakerlake SQLDer nächste Schritt besteht darin, eine Datenbank und einen Benutzer für die Interaktion zu erstellen, was Sie mit dem folgenden Befehl tun können:
BENUTZER ERSTELLEN, WENN NICHT VORHANDEN admin;DATENBANK-Blog ERSTELLEN;
Fügen Sie dem Admin-Benutzer die erforderlichen Berechtigungen mit dem Befehl hinzu:
GEWÄHRLEISTEN SIE ALLE AUF DATENBANK-Blog dem Administrator;\q;
Nun zum App-Bereich:
Der folgende Code verwendet PonyORM, um mit der Blog-Datenbank zu interagieren und die Python-Objekte und -Methoden der SQL-Datenbank zuzuordnen.
Der folgende Code führt die folgenden Operationen aus:
vom Pony.orm-Import *Datum/Uhrzeit importieren
Datenbank = Datenbank ()
db_params = dict(provider='kakerlake', user='admin',
host='localhost', port=26257, database='blog')
Klasse Benutzer(Datenbank.Entität):
Vorname = Erforderlich (Unicode)
blogs = Set("Blog")
Klasse Blog(Datenbank.Entität):
Benutzername = Erforderlich (Benutzer)
Titel = Erforderlich (Unicode)
publish_date = Erforderlich (datetime.Datum)
Kategorie = Erforderlich (Unicode)
set_sql_debug(Wahr)
Datenbank.bind(**db_params)
Datenbank.genere_mapping(create_tables=True)
@db_session
def create_blog():
user = Benutzer(vorname=u"Admin")
blog = Blog (Benutzername=Benutzer,
title=u"Hallo Welt",
publish_date=datetime.Datum(2021, 1, 1),
Kategorie=u"Entwurf")
Blogs = [
"Benutzer": Benutzer,
"title": "Hallo Welt 1",
"publish_date": Datum/Uhrzeit.Datum(2021, 1, 2),
"Kategorie": "Entwurf"
,
"Benutzer": Benutzer,
"title": "Hallo Welt 2",
"publish_date": Datum/Uhrzeit.Datum(2021, 1, 3),
"Kategorie": "Entwurf"
,
"Benutzer": Benutzer,
"title": "Hallo Welt 3",
"publish_date": Datum/Uhrzeit.Datum(2021,1,4),
"Kategorie": "Entwurf"
]
für Blog in Blogs:
b_ = Blog(**Blog)
if __name__ == "__main__":
Blog erstellen()
b_ = Benutzer("Admin")
Sobald Sie die App ausführen, sollten Sie eine Ausgabe ähnlich der unten gezeigten sehen:
ERHALTEN SIE NEUE VERBINDUNGVERBINDUNG FREIGEBEN
VERBINDUNG VOM LOKALEN POOL ERHALTEN
SCHALTEN SIE IN DEN AUTOCOMMIT-MODUS
TABELLE ERSTELLEN "Benutzer" (
"ID" SERIELLER PRIMÄRSCHLÜSSEL,
"vorname" TEXT NICHT NULL
)
TABELLEN „Blog“ ERSTELLEN (
„ID“ SERIELLER PRIMÄRSCHLÜSSEL,
„Benutzername“ INT8 NICHT NULL,
„Titel“ TEXT NICHT NULL,
„publish_date“ DATUM NICHT NULL,
„Kategorie“ TEXT NICHT NULL
)
INDEX ERSTELLEN "idx_blog__username" AUF "blog" ("Benutzername")
ALTER TABLE "blog" ADD CONSTRAINT "fk_blog__username" FOREIGN KEY ("username") REFERENCES "user" ("id") ON DELETE CASCADE
WÄHLEN Sie "Blog"."id", "blog"."Benutzername", "Blog"."Titel", "Blog"."publish_date", "blog"."Kategorie"
VON "Blog" "Blog"
WO 0 = 1
Wähle den Benutzer"."id", "Benutzer"."Vorname"
VON "Benutzer" "Benutzer"
WO 0 = 1
Fazit
Mit der obigen App haben wir eine einfache Blog-Anwendung erstellt, die einen Benutzer erstellt und dem Benutzernamen Blogs zuordnet. Anschließend haben wir die Daten in die Datenbank aufgenommen, die wir mit SQL-Abfragen abfragen können. Obwohl die App einfach ist, veranschaulicht sie, wie wir CockroachDB und PonyORM verwenden können, um eine Python-App zu erstellen.