Mengembangkan aplikasi dengan GoogleSQL untuk Bigtable

Anda dapat menggunakan GoogleSQL untuk Bigtable guna menjalankan kueri dari aplikasi Anda untuk memindahkan fungsi komputasi ke Bigtable. Hal ini mengurangi kebutuhan akan pemrosesan sisi klien. GoogleSQL adalah bahasa kueri terstruktur yang sesuai dengan ANSI dan diimplementasikan untuk Bigtable dan layanan Google Cloud lainnya. Untuk mengetahui informasi selengkapnya tentang penggunaan GoogleSQL untuk Bigtable lainnya, lihat Ringkasan GoogleSQL untuk Bigtable.

Sebelum memulai

Pastikan Anda memiliki:

Contoh skenario

Contoh dalam panduan ini menggunakan tabel weather-data contoh yang dapat Anda akses dari instance uji coba gratis di Google Cloud console. Misalkan tabel Anda menyimpan informasi dari berbagai stasiun cuaca yang diidentifikasi oleh station_id. Setiap stasiun mencatat suhu dalam skala Fahrenheit dalam kolom bernama temp_f. Daripada menghitung suhu di aplikasi, Anda dapat menggunakan kueri SQL untuk mengonversi suhu ini ke skala Celsius langsung di Bigtable sebelum mengirimkan hasilnya kembali ke aplikasi Anda. Untuk mengetahui informasi selengkapnya tentang cara membuat kueri tabel data cuaca, lihat Membuat kueri contoh data.

Praktik terbaik

Untuk mengoptimalkan performa dan penggunaan resource, pertimbangkan praktik terbaik berikut saat Anda mengembangkan aplikasi:

  • Menggunakan kembali klien: buat satu BigtableDataClient untuk aplikasi Anda. Klien menangani pengelolaan saluran gRPC dan dirancang untuk konkurensi tinggi. Sebaiknya Anda membuat klien ini sekali setelah aplikasi Anda dimulai, lalu menggunakannya kembali untuk setiap kueri.
  • Gunakan kueri berparameter: gunakan PreparedStatement untuk memisahkan logika kueri dari nilai data. Dengan begitu, Bigtable dapat meng-cache rencana eksekusi dan mencegah injeksi SQL.
  • Gunakan kembali pernyataan yang disiapkan: hanya panggil PreparedStatement satu kali per string SQL. Menyimpan dan menggunakan kembali pernyataan di beberapa permintaan.

Buat klien Bigtable

Untuk menangani koneksi antara aplikasi dan Bigtable, buat BigtableDataClient. Contoh berikut menunjukkan cara membagikan satu instance klien di seluruh aplikasi Anda untuk mengelola koneksi secara efisien:

BigtableDataSettings settings = BigtableDataSettings.newBuilder()
    .setProject(PROJECT_ID)
    .setInstance(INSTANCE_ID)
    .build();

// The client is thread-safe and should be reused.
try (BigtableDataClient dataClient = BigtableDataClient.create(settings)) {
    System.out.println("Connected to: " + INSTANCE_ID);
}

Menyiapkan kueri

Daripada memasukkan data Anda langsung ke string SQL, sebaiknya Anda menggunakan kueri berparameter. Di GoogleSQL untuk Bigtable, kueri berparameter setara dengan pernyataan yang disiapkan. Dengan demikian, Anda dapat memisahkan logika kueri dari nilai data.

Contoh berikut menunjukkan cara menentukan kueri GoogleSQL menggunakan placeholder parameter, seperti @sid. Kemudian, buat PreparedStatement dengan menentukan string SQL dan jenis untuk setiap parameter sehingga kueri dapat berjalan lebih cepat pada waktu berikutnya:

Map<String,