Checkpoint
Create test data for the Firestore Database
/ 50
Import test data into the Firestore Database
/ 50
Mengimpor Data ke Database Firestore
GSP642
Ringkasan
Dua belas tahun yang lalu, Lily memulai jaringan klinik hewan Pet Theory. Dalam beberapa tahun terakhir, jaringan Pet Theory telah berkembang pesat. Namun, sistem penjadwalan janji temu lama mereka tidak mampu menangani beban yang meningkat, jadi Lily meminta Anda untuk membangun sistem berbasis cloud yang dapat diskalakan dengan lebih baik dibandingkan solusi lama.
Karena Pet Theory hanya memiliki satu staf operasional, yaitu Patrick, mereka membutuhkan solusi yang tidak perlu banyak pemeliharaan berkelanjutan. Mereka memutuskan memilih teknologi serverless.
Ruby dipekerjakan sebagai konsultan untuk membantu Pet Theory melakukan transisi ke serverless. Setelah membandingkan beberapa opsi database serverless, mereka memutuskan memilih Cloud Firestore. Karena Firestore bersifat serverless, kapasitas tidak perlu disediakan sebelumnya. Artinya, tidak akan ada risiko batas penyimpanan atau operasi. Firestore menjaga data Anda selalu sinkron di seluruh aplikasi klien melalui pemroses real-time dan menawarkan dukungan offline untuk perangkat seluler dan web. Dengan demikian, Anda dapat membangun aplikasi responsif yang tetap berfungsi terlepas dari faktor latensi jaringan atau konektivitas internet.
Di lab ini, Anda akan membantu Patrick mengupload data Pet Theory yang ada ke database Cloud Firestore. Untuk melakukannya, Patrick akan bekerja sama dengan Ruby.
Arsitektur
Diagram ini memberikan ringkasan layanan yang akan Anda gunakan dan bagaimana layanan tersebut terhubung satu sama lain:
Tujuan
Di lab ini, Anda akan mempelajari cara:
- Menyiapkan Firestore di Google Cloud.
- Menulis kode impor database.
- Membuat koleksi data pelanggan untuk pengujian.
- Mengimpor data uji pelanggan ke Firestore.
Prasyarat
Ini adalah lab tingkat pendahuluan. Di lab ini, Anda dianggap telah memahami Konsol Cloud dan lingkungan shell. Pengalaman dalam menggunakan Firebase akan bermanfaat, tetapi tidak wajib.
Anda juga harus sudah terbiasa mengedit file. Anda dapat menggunakan editor teks favorit (seperti nano
, vi
, dll.) atau juga dapat meluncurkan editor kode dari Cloud Shell, yang dapat ditemukan di menu atas:
Setelah Anda siap, scroll ke bawah dan ikuti langkah-langkah berikut untuk menyiapkan lingkungan lab Anda.
Penyiapan dan persyaratan
Sebelum mengklik tombol Mulai Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer, yang dimulai saat Anda mengklik Start Lab, akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab praktik ini dapat Anda gunakan untuk melakukan sendiri aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Cara memulai lab dan login ke Google Cloud Console
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, jendela pop-up akan terbuka untuk memilih metode pembayaran. Di sebelah kiri adalah panel Lab Details dengan info berikut:
- Tombol Open Google Cloud console
- Waktu tersisa
- Kredensial sementara yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
-
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account. -
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}} Anda juga dapat menemukan Username di panel Lab Details.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}} Anda juga dapat menemukan Password di panel Lab Details.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda. Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan. -
Klik halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan mendaftar uji coba gratis.
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Mengaktifkan Cloud Shell
Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.
- Klik Activate Cloud Shell di bagian atas konsol Google Cloud.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke PROJECT_ID Anda. Output berisi baris yang mendeklarasikan PROJECT_ID untuk sesi ini:
gcloud
adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
- (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
-
Klik Authorize.
-
Output Anda sekarang akan terlihat seperti ini:
Output:
- (Opsional) Anda dapat menampilkan daftar project ID dengan perintah ini:
Output:
Contoh output:
gcloud
yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Tugas 1. Menyiapkan Firestore di Google Cloud
Tugas Patrick adalah mengupload data Pet Theory yang ada ke database Cloud Firestore. Untuk melakukannya, ia akan bekerja sama dengan Ruby. Ruby menerima pesan dari Patrick di IT...
Patrick, Admin IT |
Halo Ruby, Langkah pertama kita untuk beralih ke serverless adalah membuat database Firestore dengan Google Cloud. Dapatkah Anda membantu mengerjakan tugas ini? Saya tidak begitu terbiasa dengan pekerjaan ini. Patrick |
Ruby, Konsultan Software |
Halo Patrick, Tentu saja, saya akan dengan senang hati membantu Anda. Saya akan mengirimkan beberapa resource untuk memulai. Silakan hubungi saya kembali setelah Anda selesai membuat database. Ruby |
Bantu Patrick menyiapkan database Firestore melalui Konsol Cloud.
-
Di Konsol Cloud, buka Navigation menu, lalu pilih Firestore.
-
Klik +Create database.
-
Pilih opsi Native mode, lalu klik Continue.
- Native Mode sesuai untuk memungkinkan banyak pengguna mengakses data yang sama pada waktu yang sama. Mode ini juga memiliki fitur-fitur seperti update real-time dan koneksi langsung antara database Anda dan klien web/seluler.
- Datastore Mode memberi penekanan pada throughput tinggi (banyak tugas baca dan tulis).
- Pada menu dropdown Region, pilih region
lalu klik Create Database.
Setelah tugas selesai, Ruby mengirim email kepada Patrick...
Ruby, Konsultan Software |
Halo Patrick, Anda berhasil menyiapkan database Firestore. Untuk mengelola akses database, kita akan menggunakan Akun Layanan yang dibuat secara otomatis dengan izin akses yang diperlukan. Sekarang kita siap bermigrasi dari database lama ke Firestore. Ruby |
Patrick, Admin IT |
Halo Ruby, Terima kasih atas bantuannya. Penyiapan database Firestore sangat mudah. Saya harap proses impor database akan lebih mudah dibandingkan dengan database lama, yang cukup rumit dan membutuhkan banyak langkah. Patrick |
Tugas 2. Menulis kode impor database
Database Cloud Firestore yang baru sudah ada, tetapi masih kosong. Data pelanggan Pet Theory masih berada di database lama.
Patrick mengirimkan pesan kepada Ruby...
Patrick, Admin IT |
Halo Ruby, Manajer saya ingin mulai memigrasikan data pelanggan ke database Firestore yang baru. Saya telah mengekspor file CSV dari database lama kami, tetapi saya tidak tahu bagaimana cara mengimpor data ini ke Firestore. Dapatkah Anda membantu saya? Patrick |
Ruby, Konsultan Software |
Halo Patrick, Tentu saja. Ayo kita adakan rapat untuk membahas apa saja yang harus dilakukan. Ruby |
Seperti yang dikatakan Patrick, data pelanggan akan tersedia dalam file CSV. Bantu Patrick membuat aplikasi yang membaca kumpulan data pelanggan dari file CSV dan menuliskannya ke Firestore. Karena Patrick terbiasa bekerja dengan JavaScript, bangun aplikasi ini menggunakan runtime Node.js JavaScript.
- Di Cloud Shell, jalankan perintah berikut untuk membuat clone repositori Pet Theory:
- Gunakan Editor Kode Cloud Shell (atau editor pilihan Anda) untuk mengedit file Anda. Dari menu atas sesi Cloud Shell Anda, klik Open Editor, dan tab baru akan terbuka. Jika diminta, klik Open in a new window untuk meluncurkan editor kode:
- Kemudian ubah direktori kerja Anda saat ini menjadi
lab01
:
Di direktori tersebut, Anda dapat melihat package.json
milik Patrick. File ini berisi daftar paket yang menjadi dependensi project Node.js Anda dan membuat build Anda dapat direproduksi, sehingga lebih mudah untuk dibagikan kepada orang lain.
Berikut contoh package.json
:
Setelah Patrick mengimpor kode sumber, ia menghubungi Ruby untuk mengetahui paket apa saja yang ia perlukan agar migrasi berhasil.
Patrick, Admin IT |
Halo Ruby, Kode yang saya gunakan untuk database lama cukup sederhana, hanya membuat CSV yang siap untuk proses impor. Adakah yang perlu saya download sebelum memulai? Patrick |
Ruby, Konsultan Software |
Halo Patrick, Saya sarankan untuk menggunakan salah satu dari sekian banyak paket Node @google-cloud untuk berinteraksi dengan Firestore. Kita hanya perlu melakukan sedikit perubahan pada kode yang ada karena pekerjaan yang berat telah ditangani. Ruby |
Untuk mengizinkan kode Patrick menulis ke database Firestore, Anda perlu menginstal beberapa dependensi pembanding tambahan.
- Jalankan perintah berikut untuk melakukannya:
- Agar aplikasi dapat menulis log ke Cloud Logging, instal modul tambahan:
Setelah perintah berhasil diselesaikan, package.json
akan otomatis diupdate untuk menyertakan dependensi pembanding baru, dan akan terlihat seperti ini.
Sekarang saatnya melihat skrip yang membaca file CSV pelanggan dan menulis satu kumpulan data di Firestore untuk tiap baris dalam file CSV. Aplikasi asli Patrick tampak seperti berikut:
Aplikasi ini mengambil output dari file CSV input dan mengimpornya ke dalam database lama. Berikutnya, perbarui kode ini untuk menulis ke Firestore.
- Buka file
pet-theory/lab01/importTestData.js
.
Untuk merujuk Firestore API melalui aplikasi, Anda perlu menambahkan dependensi pembanding ke codebase yang ada.
- Tambahkan dependensi Firestore berikut ke baris 3 dari file:
Pastikan bagian atas file terlihat seperti berikut:
Integrasi dengan database Firestore dapat dicapai dengan beberapa baris kode. Ruby telah membagikan beberapa kode template kepada Anda dan Patrick untuk integrasi tersebut.
- Tambahkan kode berikut di bawah baris 34, atau setelah kondisional
if (process.argv.length < 3)
:
Cuplikan kode di atas mendeklarasikan objek database baru, yang merujuk database yang telah dibuat sebelumnya di lab. Fungsi ini menggunakan proses batch di mana tiap kumpulan data diproses secara bergantian dan diberi rujukan dokumen berdasarkan ID yang ditambahkan. Pada akhir fungsi, konten batch di-commit (ditulis) ke database.
- Update fungsi
importCsv
untuk menambahkan panggilan fungsi untuk writeToFirestore dan hapus panggilan untuk writeToDatabase. Kodenya akan terlihat seperti berikut:
- Tambahkan logging untuk aplikasi. Untuk merujuk Logging API melalui aplikasi, tambahkan dependensi pembanding ke codebase yang ada. Tambahkan baris berikut persis di bawah pernyataan require lainnya di bagian atas file:
Pastikan bagian atas file terlihat seperti berikut:
- Tambahkan beberapa variabel konstan dan lakukan inisialisasi pada klien Logging. Tambahkan persis di bawah baris yang tercantum di atas dalam file (~baris 5), seperti ini:
- Tambahkan kode untuk menulis log dalam fungsi
importCsv
persis di bawah baris "console.log(Wrote ${records.length} records
);" yang seharusnya akan terlihat seperti berikut:
Setelah semua update ini, blok kode fungsi importCsv
Anda seharusnya akan terlihat seperti berikut:
Sekarang saat kode aplikasi dijalankan, database Firestore akan diupdate dengan konten file CSV. Fungsi importCsv
memerlukan nama file dan mengurai konten secara baris per baris. Tiap baris yang diproses kini dikirim ke fungsi Firestore writeToFirestore
, tempat tiap kumpulan data baru ditulis ke database "customer".
Tugas 3. Membuat data pengujian
Saatnya mengimpor sejumlah data. Patrick menghubungi Ruby terkait kekhawatirannya menggunakan data pelanggan sebenarnya untuk pengujian...
Patrick, Admin IT |
Halo Ruby, Saya pikir sebaiknya kita tidak menggunakan data pelanggan untuk pengujian. Kita perlu menjaga privasi pelanggan, tetapi kita juga harus yakin bahwa skrip impor data kita bekerja dengan benar. Apakah Anda punya usulan cara alternatif untuk melakukan pengujian? Patrick |
Ruby, Konsultan Software |
Halo Patrick, Benar sekali, Patrick. Ini adalah perkara yang rumit, karena data pelanggan dapat mencakup informasi identitas pribadi, atau PII. Saya akan membagikan beberapa kode awal kepada Anda untuk membuat data pseudo pelanggan. Nanti kita dapat menggunakan data ini untuk menguji skrip impor. Ruby |
Bantu Patrick agar generator data pseudo-random ini dapat berjalan.
- Pertama, instal library “faker” yang akan digunakan oleh skrip yang menghasilkan data pelanggan palsu. Jalankan perintah berikut untuk mengupdate dependensi dalam
package.json
:
- Sekarang buka file bernama createTestData.js dengan editor kode dan periksa kodenya. Pastikan terlihat seperti berikut:
- Tambahkan Logging untuk codebase. Pada baris 3, tambahkan rujukan berikut untuk modul Logging API dari kode aplikasi:
Kini bagian atas file akan terlihat seperti ini:
- Sekarang, tambahkan beberapa variabel konstan dan lakukan inisialisasi pada klien Logging. Tambahkan persis di bawah pernyataan
const
:
- Tambahkan kode untuk menulis log dalam fungsi createTestData persis di bawah baris "console.log(
Created file ${fileName} containing ${recordCount} records.
);" yang akan terlihat seperti berikut:
- Setelah diupdate, blok kode fungsi
createTestData
seharusnya akan terlihat seperti berikut:
- Jalankan perintah berikut di Cloud Shell untuk membuat file
customers_1000.csv
, yang akan menampung 1.000 kumpulan data uji:
Anda akan melihat output seperti ini:
- Buka file
customers_1000.csv
dan verifikasi bahwa data uji telah dibuat.
Uji tugas yang sudah selesai
Klik Check my progress untuk memverifikasi tugas yang telah dijalankan. Jika Anda telah berhasil membuat sampel data uji untuk Database Firestore, Anda akan melihat skor penilaian.
Tugas 4. Mengimpor data pelanggan untuk pengujian
- Untuk menguji kapabilitas impor, gunakan skrip impor dan data uji yang telah dibuat sebelumnya:
Anda akan melihat output seperti ini:
- Jika Anda menerima error seperti berikut:
Jalankan perintah berikut untuk menambahkan paket csv-parse
ke lingkungan Anda:
- Kemudian jalankan perintah tersebut kembali. Anda akan menerima output berikut:
Dalam beberapa bagian sebelumnya, Anda telah melihat bagaimana Patrick dan Ruby berhasil membuat data uji dan skrip untuk mengimpor data ke dalam Firestore. Kini Patrick merasa lebih percaya diri untuk mengupload data pelanggan ke dalam database Firestore.
Uji tugas yang sudah selesai
Klik Check my progress untuk memverifikasi tugas yang telah dijalankan. Jika Anda telah berhasil mengimpor sampel data uji ke dalam Database Firestore, Anda akan melihat skor penilaian.
Tugas 5. Memeriksa data di Firestore
Dengan sedikit bantuan Anda dan Ruby, Patrick kini telah berhasil memigrasikan data uji ke database Firestore. Buka Firestore dan lihat hasilnya.
- Kembalilah ke tab Konsol Cloud. Pada Navigation menu, klik Firestore. Setelah terbuka, klik ikon pensil.
-
Ketikkan
/customers
, lalu tekan Enter. -
Muat ulang tab browser Anda dan Anda akan melihat daftar pelanggan yang berhasil dimigrasi:
Selamat!
Di sepanjang kursus lab ini, Anda telah menerima praktik interaktif dengan Firestore. Setelah membuat kumpulan data pelanggan untuk pengujian, Anda menjalankan skrip yang mengimpor data ke dalam Firestore. Kemudian, Anda belajar cara memanipulasi data di Firestore melalui Konsol Cloud.
Sertifikasi dan pelatihan Google Cloud
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui pada 28 Februari 2024
Lab Terakhir Diuji pada 28 Februari 2024
Hak cipta 2024 Google LLC Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.