Dolt: Membuat SQL Terasa Seperti Git

BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00kode Anda memiliki git, data Anda memiliki apa sebenarnya? Itulah masalahnya, satu CSV yang buruk, satu baris konfigurasi
00:00:07satu editan spreadsheet dan sekarang aplikasi Anda rusak, tidak ada diff yang bersih, tidak ada pull request cabang, tidak ada
00:00:13rollback yang jelas. Inilah Dolt, basis data SQL yang bekerja seperti git, Anda dapat membuat cabang tabel
00:00:20mengedit baris, melakukan diff pada perubahan, commit, dan menggabungkannya kembali, kontrol versi nyata untuk data nyata. Saya akan
00:00:26menunjukkan cara menjalankan ini dan cara memulainya dalam beberapa menit ke depan
00:00:35sekarang kita tahu sebagian besar waktu basis data hebat dalam hal menjadi basis data, mereka menyimpan data, mereka membiarkan
00:00:41Anda melakukan kueri dengan SQL tetapi mereka tidak hebat dalam alur kerja yang kita gunakan setiap hari, yaitu percabangan
00:00:47meninjau, melakukan diff, menggabungkan, melakukan rollback, melihat dengan tepat siapa yang mengubah apa, jadi seringkali kita memilih
00:00:54satu dari dua pilihan buruk. Pilihan pertama adalah Anda menyimpan data di basis data nyata, Anda mendapatkan indeks SQL
00:01:00kendala dan struktur, tetapi ketika data berubah, proses peninjauannya biasanya tidak ada
00:01:07lalu pilihan kedua adalah kita memasukkan data ke dalam CSV, JSON, atau YAML agar git dapat melacaknya, sekarang Anda mendapatkan
00:01:13commit dan pull request, tetapi Anda kehilangan hal-hal yang sebenarnya bagus dari basis data, tidak ada SQL nyata, lemahnya
00:01:20penegakan skema, diff dan merge yang menyakitkan, dan ketika seseorang bertanya siapa yang mengubah catatan ini, yah jawabannya
00:01:27pada dasarnya adalah orang yang sama dengan akses basis data, itu bukanlah alur kerja yang nyata
00:01:32tapi sekarang bayangkan ini sebagai gantinya, bagaimana jika Anda bisa menjalankan perintah cabang, “dolt branch fix this data”
00:01:39dolt diff, dolt commit, dolt merge, sekarang ini adalah perintah yang sudah kita gunakan, tapi kita menggunakannya
00:01:46terhadap tabel basis data Anda yang sebenarnya, itulah yang dilakukan Dolt, ini adalah kontrol versi untuk basis data kita
00:01:52jika Anda menikmati perangkat pengkodean untuk mempercepat alur kerja Anda, pastikan untuk berlangganan, kami memiliki video yang akan keluar
00:01:57setiap saat, cukup bicara, kita punya pilihan, ada Dolt untuk SQL lite, Postgres, sebut saja, mari kita lakukan
00:02:04versi cepat dari ini, saya akan cd ke sini dan saya akan mengkloning dolt hub untuk memulai dari github
00:02:10saya akan cd ke folder sekarang, pertama kloning basis data Dolt publik dan saya akan menjalankan “dolt sql”, sekarang kita
00:02:18berada di dalam SQL, jadi saya bisa menjalankan perintah SQL tepat di sini di terminal, oke keren, saya akan membuat perubahan kecil
00:02:27dan kita akan menjalankan “dolt diff”, dan ini adalah momen “tunggu, apa yang baru saja terjadi di sini”
00:02:34Dolt tidak mengatakan ada file yang berubah, ia menunjukkan diff tabel yang sebenarnya, baris mana yang berubah, kolom mana yang
00:02:43berubah, nilai lama dan nilai baru, saya bisa melihatnya tepat di sini, sekarang kita bisa melakukan commit, jadi “dolt add”
00:02:50lalu saya bisa menjalankan “dolt commit -m”, saya akan menambahkan komentar, saya bisa membuat seluruh cabang dari ini dengan menggunakan
00:02:56checkout, dan kita akan menjalankan “checkout -b” beri nama cabang Anda, jika saya membuat perubahan lain di atas ini, saya bisa
00:03:03melakukan diff lagi dengan dolt diff, saya bisa melakukan commit lagi, dan kemudian saya bisa menambahkannya lagi, sekarang jika saya kembali dan
00:03:10menggabungkan, saya bisa melakukan checkout main dan saya bisa menjalankan “dolt merge”, semua perintah yang sudah kita ketahui, kita hanya melakukannya
00:03:17sekarang dengan SQL, pada akhirnya Anda bisa menjalankan “dolt log”, sekarang basis data Anda memiliki riwayat commit, bukan cadangan
00:03:24bukan file dump, dan bukan log edit spreadsheet, ini basis data versi nyata, itulah ide inti di sini
00:03:31alur kerja git tapi untuk tabel, sekarang mari kita tarik semuanya dan lihat bagaimana semua ini sebenarnya bekerja
00:03:37pada awalnya Dolt terasa familiar dengan sengaja, Anda memiliki perintah seperti dolt status, diff, add, commit, branch
00:03:44checkout, jika Anda tahu git, otak Anda sudah mengerti bentuk dari seluruh alur kerja ini
00:03:48yang mereka tuju untuk Dolt adalah tidak melacak file, ia melacak tabel relasional, Anda dapat menggunakannya dari
00:03:55baris perintah atau Anda dapat menjalankan “dolt sql-server”, dengan melakukan itu Anda sekarang dapat menghubungkannya menggunakan klien yang kompatibel dengan MySQL
00:04:01ORM, alat BI, atau kode aplikasi, sehingga aplikasi Anda dapat memperlakukan Dolt seperti basis data SQL normal, tetapi Anda
00:04:09mendapatkan kontrol versi di sekitar data, itulah bagian pentingnya, Anda tidak memilih antara yang nyata
00:04:14basis data dan alur kerja git, Anda mendapatkan keduanya di tempat yang sama, Dolt menggunakan sesuatu yang disebut Prolly Tree, versi mudah
00:04:22dari Prolly Tree di sini adalah basis data normal menggunakan struktur seperti pohon untuk membuat bacaan dan tulisan
00:04:29cepat, Dolt menggunakan struktur seperti pohon yang juga baik dalam versi, jadi alih-alih menyalin seluruh
00:04:36basis data setiap kali Anda melakukan commit, Dolt dapat berbagi bagian yang tetap sama dan melacak bagian yang
00:04:42sebenarnya berubah, sekarang kita tidak hanya menanyakan hal-hal seperti hei apa nilai saat ini, kita bisa benar-benar bertanya
00:04:47hal-hal seperti seperti apa baris ini sebelum sesuatu terjadi, itu hal besar di sini
00:04:52karena ketika sesuatu rusak kita tidak ingin harus menebak, Anda ingin memeriksa riwayat, saya sekarang bisa
00:04:56meninjau diff, Anda dapat melihat perubahannya, dan jika perlu Anda dapat melakukan rollback, ini adalah kontrol versi
00:05:02untuk data terstruktur, cabang, commit, diff, merge, riwayat Anda untuk baris dan kolom, jadi di mana Dolt
00:05:10sebenarnya cocok dalam alur hal-hal, karena ini semua terdengar hebat tetapi di sinilah mungkin menjadi
00:05:15membingungkan, Anda mungkin mendengar git untuk data dan Anda mungkin berpikir oke yah lihat kita sudah memiliki
00:05:21alat untuk itu, ya kita agak memiliki alat untuk itu tetapi mereka memecahkan masalah yang berbeda, Anda bisa menaruh CSV
00:05:28dan file JSON di git, itu berhasil ketika datanya kecil dan sederhana, git tidak memahami skema Anda
00:05:35ia tidak tahu kunci utama Anda dan ia tidak akan menegakkan kendala, ia tidak bisa menjalankan join pada CSV Anda
00:05:41kecuali Anda menambahkan lebih banyak alat, jadi git memberi Anda kontrol versi tetapi itu tidak benar-benar untuk basis data
00:05:47lalu ada DVC, DVC hebat untuk alur kerja ML terutama kumpulan data besar dan artefak model tetapi
00:05:53itu tidak mencoba menjadi basis data relasional langsung Anda, ya Anda punya LakeFS yang membawa ide seperti git ke
00:06:00penyimpanan objek dan data lake, sangat berguna pada skala danau tetapi sekali lagi itu adalah lapisan yang sama sekali berbeda, itu
00:06:07itu bukan hal yang sama dengan mengatakan cabang tabel SQL, ubah beberapa baris, jalankan diff, dan gabungkan kembali
00:06:13basis data tradisional juga memiliki alat riwayat, tabel temporal, log audit, CDC, tetapi kebanyakan dari mereka
00:06:20tidak terasa seperti alur kerja normal, mereka tidak memberi Anda perulangan bersih cabang, ubah, diff, gabungkan, rollback
00:06:27saya tidak akan secara membabi buta menjatuhkan Dolt ke setiap sistem produksi, bukan itu intinya di sini, intinya adalah ini
00:06:33jika pekerjaan Anda melibatkan data terstruktur yang berubah dari waktu ke waktu dan perubahan itu benar-benar dapat merusak hal-hal
00:06:40saya pikir Dolt layak dicoba, pertama kali ia menyelamatkan Anda dari satu perubahan data buruk yang diam, alur kerjanya
00:06:46mulai terasa sedikit lebih jelas, kita punya git mengapa kita tidak punya sesuatu untuk data, sekarang kita agak memilikinya, jika
00:06:52Anda menikmati alat pengkodean seperti ini pastikan untuk berlangganan ke saluran Better Stack, sampai jumpa di video lain
00:06:57video

Key Takeaway

Dolt menghadirkan kontrol versi sejati bagi basis data SQL dengan menerapkan mekanisme percabangan, diff, dan commit yang bekerja langsung pada level baris dan kolom tabel.

Highlights

  • Dolt menerapkan alur kerja kontrol versi seperti Git secara langsung pada tabel basis data relasional.

  • Perintah standar seperti dolt diff, dolt commit, dolt branch, dan dolt merge bekerja langsung pada data SQL.

  • Dolt melacak perubahan baris dan kolom secara mendetail, menampilkan nilai lama dan baru saat terjadi perubahan data.

  • Struktur Prolly Tree memungkinkan Dolt melacak riwayat commit basis data tanpa harus menyalin seluruh dataset setiap kali perubahan dilakukan.

  • Dolt menyediakan server SQL yang kompatibel dengan klien MySQL, sehingga aplikasi dapat berinteraksi dengan basis data ini layaknya SQL standar.

  • Pemanfaatan Dolt meminimalkan risiko kerusakan aplikasi akibat perubahan data yang buruk melalui kemampuan rollback yang jelas.

Timeline

Masalah pada Alur Kerja Data Tradisional

  • Basis data tradisional gagal menyediakan fitur alur kerja seperti peninjauan, diff, dan rollback.
  • Penyimpanan data dalam format file seperti CSV atau JSON memungkinkan kontrol versi Git tetapi kehilangan fitur SQL dan integritas skema.
  • Pelacakan siapa yang mengubah data seringkali terbatas pada akses basis data umum tanpa detail perubahan baris yang spesifik.

Penggunaan basis data konvensional seringkali mengakibatkan perubahan data yang tidak terdeteksi dan merusak aplikasi karena kurangnya fitur diff. Sebagai alternatif, menempatkan data di Git melalui CSV mengorbankan fungsionalitas SQL seperti join dan penegakan skema yang diperlukan untuk aplikasi nyata.

Menerapkan Git pada SQL dengan Dolt

  • Dolt memungkinkan eksekusi perintah Git seperti branch, diff, dan merge terhadap tabel basis data.
  • Riwayat perubahan tersimpan dalam bentuk commit pada basis data, bukan sekadar cadangan file.
  • Perubahan pada tabel dapat ditinjau melalui perbedaan baris dan kolom secara langsung di terminal.

Dolt mengintegrasikan alur kerja Git ke dalam terminal SQL. Pengguna dapat membuat cabang untuk melakukan perbaikan data, menjalankan perintah diff untuk melihat perubahan spesifik pada nilai baris, dan menggabungkan perubahan tersebut kembali ke cabang utama dengan riwayat commit yang terjaga.

Mekanisme Kerja dan Kasus Penggunaan

  • Dolt menggunakan struktur data Prolly Tree untuk efisiensi penyimpanan saat melakukan commit versi.
  • Sistem ini kompatibel dengan klien MySQL, alat BI, dan ORM melalui mode server SQL.
  • Dolt ditargetkan untuk data terstruktur yang sering berubah dan memerlukan audit serta rollback yang akurat.

Teknologi Prolly Tree memungkinkan efisiensi dengan hanya melacak bagian data yang berubah alih-alih menduplikasi seluruh basis data. Meskipun alat seperti DVC atau LakeFS ada untuk data besar atau penyimpanan objek, Dolt mengisi celah spesifik untuk basis data relasional yang membutuhkan kemampuan edit dan merge pada tingkat baris.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video