Cara Membuat Aplikasi Python dengan CockroachDB dan PonyORM

Dalam panduan ini, kami akan memperkenalkan Anda ke CockroachDB dan PonyORM menggunakan Python. Kami akan mulai dengan membahas apa itu teknologi ini dan kemudian membahas cara kerjanya.

Sebelum kita mulai membangun aplikasi Python dengan CockroachDB dan PonyORM, mari kita pahami apa itu teknologi:

Apa itu CockroachDB

CockroachDB adalah database SQL terdistribusi yang sangat skalabel, open-source, yang menggunakan penyimpanan nilai kunci yang transaksional dan konsisten.

CockroachDB sangat efisien sebagai metode untuk memastikan persistensi dan pemulihan data jika terjadi kegagalan. Jika terjadi kegagalan perangkat keras dan perangkat lunak, ia dapat menyimpan data dengan menggunakan replikasi data yang kuat dan konsisten dan perbaikan otomatis. Menggunakan SQL API, CockroachDB memungkinkan Anda untuk membuat kueri, menyusun, dan memanipulasi data menggunakan kueri SQL.

Menggunakan SQL API, CockroachDB memberi pengembang transisi yang mudah karena mereka mendapatkan konsep yang sama. Karena sudah memiliki driver SQL untuk sebagian besar bahasa pemrograman, menggunakannya menjadi lebih nyaman.

Kami sarankan Anda memeriksa dokumentasi CockroachDB untuk pemahaman yang lebih baik.

https://linkfy.to/cockroachDocs

Apa itu PonyORM?

PonyORM adalah Python Object-Relational Mapper tingkat lanjut. Meskipun ada Python ORM lain seperti Django dan SQLAlchemy, PonyORM menguntungkan karena memiliki fitur seperti dukungan untuk kunci komposit, optimisasi kueri otomatis, dan sintaks kueri intuitif dan langsung.

ORM hanyalah alat yang memungkinkan Anda bekerja dengan database SQL menggunakan bahasa pemrograman pilihan Anda. Ini memberi pengembang kemampuan untuk bekerja dengan data dalam Database dalam bentuk objek; karenanya, Anda dapat menggunakan OOP agar bahasa Anda bekerja dengan data.

Menggunakan library PonyORM, kita dapat menggunakan bahasa Python untuk bekerja dengan data di CockroachDB dalam bentuk objek database relasional.

Anda dapat menggunakan dokumentasi PonyORM untuk referensi. Berikut tautannya:

https://docs.ponyorm.org/toc.html

Cara Menginstal CockroachDB Di Linux

Untuk menginstal CockroachDB pada sistem Linux, ikuti langkah-langkah dalam panduan ini, dan, tergantung pada konfigurasi sistem Anda, Anda harus memiliki akses root atau menjadi user sudo.

Langkah pertama adalah memastikan bahwa sistem Anda mutakhir dan kemudian menginstal dependensi yang diperlukan. Berikut perintah untuk itu:

sudo apt-get update && sudo apt-get upgrade

sudo apt-get install glibc libncurses tzdata -y

Langkah selanjutnya adalah mendownload binari CockroachDB menggunakan wget, seperti pada perintah di bawah ini:

wget -qO- <a href="https://binaries.cockroachdb.com/cockroach-v20.2.3.linux-amd64.tgz">https://binaries.cockroachdb.com/cockroach-v20.2.3.linux-amd64.tgz

Setelah biner didownload, ekstrak file.

tar -xvf cockroach-v20.2.3.linux-amd64.tgz

Untuk meluncurkan perintah CockroachDB dari shell apa pun, tambahkan biner ke jalur Anda:

cp -i cockroach-v20.2.3. linux-amd64/cockroach /usr/bin/

Copy perpustakaan yang diperlukan:

mkdir -p /usr/lib/cockroach

cp -i cockroach-v20.2.3.linux-amd64/lib/libgeos.so /usr/lib/cockroach/

cp -i cockroach-v20.2.3.linux-amd64/lib/libgeos_c.so /usr/lib/cockroach/

Setelah selesai, konfirmasikan bahwa Anda telah menginstal Kecoa:

which cockroach

/usr/bin/cockroach

Mulai cluster sementara dalam memori menggunakan perintah:

cockroach demo

Di dalam cluster, Anda dapat menjalankan shell SQL interaktif untuk memasukkan kueri SQL yang valid:

SHOW TABLES;

Cara Menginstal PonyORM

Untuk menginstal PonyORM, Anda harus memiliki versi Python yang diinstal dan dijalankan. Anda dapat menggunakan Python 2 (mati) atau Python 3.

Menggunakan pip, instal Pony:

pip3 install pony

Untuk menguji apakah Anda telah menginstal Pony, buka penerjemah Python dan masukkan kodenya.

>>> from pony. orm import *

Karena kita akan menggunakan PonyORM dengan CockroachDB, kita perlu menginstal driver yang diperlukan. Untuk kasus ini, kita perlu menginstal psycopg2. Gunakan perintah pip untuk menginstal dri
ver yang diperlukan.

pip install psycopg2-binary

Periksa apakah Anda telah menginstal Psycopg menggunakan sesi python interaktif dan masukkan perintah:

import psycopg

Setelah semuanya terinstal, Anda dapat melanjutkan dan mulai bekerja dengan CochroachDB dan PonyORM:

Cara Membuat Aplikasi Python Dengan CockroachDB Dan PonyORM

Untuk membangun aplikasi python, mulailah dengan meluncurkan shell SQL interaktif menggunakan perintah.

cockroach SQL

Langkah selanjutnya adalah membuat database dan user untuk berinteraksi, yang dapat Anda lakukan dengan menggunakan perintah:

CREATE USER IF NOT EXISTS admin;

CREATE DATABASE blog;

Tambahkan hak istimewa yang diperlukan ke user admin menggunakan perintah:

GRANT ALL ON DATABASE blog TO admin;

q;

Sekarang untuk bagian aplikasi:

Kode di bawah ini menggunakan PonyORM untuk berinteraksi dengan database blog dan memetakan objek dan metode Python ke database SQL.

Kode di bawah ini melakukan operasi berikut:

from pony.orm import *

import datetime

database = Database ()

db_params = dict(provider='cockroach', user='admin',

                 host='localhost', port=26257, database='blog')

class User(database.Entity):

    first_name = Required(unicode)

    blogs = Set("Blog")

class Blog(database.Entity):

    username = Required (User)

    title = Required(unicode)

    publish_date = Required(datetime.date)

    category = Required(unicode)

set_sql_debug(True)

database.bind(**db_params)

database.generate_mapping(create_tables=True)

@db_session

def create_blog():

    user = User(first_name=u"Admin")

    blog = Blog (username=user,

                title=u"Hello world",

                publish_date=datetime.date(2021, 1, 1),

                category=u"Draft")

    blogs = [

        {

            "user": user,

            "title": "Hello world 1",

            "publish_date": datetime.date(2021, 1, 2),

            "category": "Draft"

         },

        {

            "user": user,

            "title": "Hello world 2",

            "publish_date": datetime.date(2021, 1, 3),

            "category": "Draft"

        },

        {

            "user": user,

            "title": "Hello world 3",

            "publish_date": datetime.date(2021,1,4),

            "category": "Draft"

        }

        ]

    for blog in blogs:

        b_ = Blog(**blog)

if __name__ == "__main__":

    create_blog()

    b_ = User("Admin")

Setelah Anda menjalankan aplikasi, Anda akan melihat output yang mirip dengan yang ditunjukkan di bawah ini:

GET NEW CONNECTION

RELEASE CONNECTION

GET CONNECTION FROM THE LOCAL POOL

SWITCH TO AUTOCOMMIT MODE

CREATE TABLE "user" (

  "id" SERIAL PRIMARY KEY,

  "first_name" TEXT NOT NULL

)


CREATE TABLE “blog” (

  “id” SERIAL PRIMARY KEY,

  “username” INT8 NOT NULL,

  “title” TEXT NOT NULL,

  “publish_date” DATE NOT NULL,

  “category” TEXT NOT NULL

)


CREATE INDEX "idx_blog__username" ON "blog" ("username")


ALTER TABLE "blog" ADD CONSTRAINT "fk_blog__username" FOREIGN KEY ("username") REFERENCES "user" ("id") ON DELETE CASCADE

SELECT "blog"."id", "blog"."username", "blog"."title", "blog"."publish_date", "blog"."category"

FROM "blog" "blog"

WHERE 0 = 1

SELECT "user"."id", "user"."first_name"

FROM "user" "user"

WHERE 0 = 1

Kesimpulan

Dengan menggunakan aplikasi di atas, kami membuat aplikasi blog sederhana yang membuat user dan menetapkan blog ke nama user. Kami kemudian menambahkan data ke dalam database, yang dapat kami kueri menggunakan kueri SQL. Meskipun aplikasinya sederhana, ini menggambarkan bagaimana kita dapat menggunakan CockroachDB dan PonyORM untuk membuat aplikasi Python.

Related Posts