Tutorial: Membuat API untuk akun Cassandra di Azure Cosmos DB dengan menggunakan aplikasi Java untuk menyimpan data kunci/nilai

BERLAKU UNTUK: Cassandra

Sebagai pengembang, Anda mungkin memiliki aplikasi yang menggunakan pasangan kunci/nilai. Anda dapat menggunakan API untuk akun Cassandra di Azure Cosmos DB untuk menyimpan data kunci/nilai. Tutorial ini menjelaskan cara menggunakan aplikasi Java untuk membuat API untuk akun Cassandra di Azure Cosmos DB, menambahkan database (juga disebut keyspace), dan menambahkan tabel. Aplikasi Java menggunakan driver Java untuk membuat database pengguna yang berisi detail seperti ID pengguna, nama pengguna, dan kota pengguna.

Tutorial ini mencakup tugas-tugas berikut:

  • Membuat akun database Cassandra
  • Mendapatkan string koneksi akun
  • Membuat proyek dan dependensi Maven
  • Menambahkan database dan tabel
  • Menjalankan aplikasi

Prasyarat

Membuat akun database

  1. Dari menu portal Microsoft Azure atau Beranda, pilih Buat sumber daya.

  2. Pada halaman Baru, cari dan pilih Azure Cosmos DB.

  3. Pada halaman Azure Cosmos DB, pilih Buat.

  4. Pada halaman API , pilih Buat di bawah bagian Cassandra .

    API akan menentukan jenis akun yang akan dibuat. Azure Cosmos DB menyediakan lima API: NoSQL untuk database dokumen, Gremlin untuk database grafik, MongoDB untuk database dokumen, Azure Table, dan Cassandra. Anda harus membuat akun terpisah untuk setiap API.

    Pilih Cassandra, karena dalam mulai cepat ini Anda membuat tabel yang berfungsi dengan API untuk Cassandra.

    Pelajari selengkapnya tentang API untuk Cassandra.

  5. Di halaman Buat Akun Azure Cosmos DB , masukkan pengaturan dasar untuk akun Azure Cosmos DB baru.

    Pengaturan Nilai Deskripsi
    Langganan Langganan Anda Pilih langganan Azure yang ingin Anda gunakan untuk akun Azure Cosmos DB ini.
    Grup Sumber Daya Buat baru

    Lalu masukkan nama yang sama dengan Nama Akun
    Pilih Buat baru. Lalu masukkan nama grup sumber daya baru untuk akun Anda. Agar lebih sederhana, gunakan nama yang sama dengan nama akun Azure Cosmos DB Anda.
    Nama Akun Masukkan nama yang unik Masukkan nama unik untuk mengidentifikasi akun Azure Cosmos DB Anda. URI akun Anda akan cassandra.cosmos.azure.com ke nama akun unik Anda.

    Nama akun hanya dapat menggunakan huruf kecil, angka, dan tanda hubung (-), dan panjangnya harus antara 3 dan 31 karakter.
    Lokasi Wilayah yang paling dekat dengan pengguna Anda Pilih lokasi geografis untuk menghosting akun Azure Cosmos DB Anda. Gunakan lokasi yang paling dekat dengan pengguna Anda untuk memberi mereka akses tercepat ke data.
    Mode kapasitas Throughput yang disediakan atau Tanpa Server Pilih Throughput yang disediakan untuk membuat akun dalam mode throughput yang disediakan. Pilih Tanpa server untuk membuat akun dalam mode tanpa server.
    Terapkan diskon tingkat gratis Azure Cosmos DB Terapkan atau Jangan terapkan Dengan tingkat gratis Azure Cosmos DB, Anda akan mendapatkan 1000 RU/dtk pertama dan penyimpanan 25 GB secara gratis pada akun. Pelajari lebih lanjut tentang tingkat gratis.
    Membatasi throughput akun total Pilih untuk membatasi throughput akun Ini berguna jika Anda ingin membatasi total throughput akun ke nilai tertentu.

    Catatan

    Anda dapat memiliki hingga satu akun Azure Cosmos DB tingkat gratis per langganan Azure dan harus ikut serta saat membuat akun. Jika Anda tidak melihat opsi untuk menerapkan diskon tingkat gratis, ini berarti akun lain dalam langganan telah diaktifkan dengan tingkat gratis.

    Halaman akun baru untuk Azure Cosmos DB for Apache Cassandra

  6. Pada tab Distribusi Global, konfigurasikan detail berikut. Anda dapat membiarkan nilai default untuk tujuan quickstart ini:

    Pengaturan Nilai Deskripsi
    Redundansi Geografis Nonaktifkan Aktifkan atau nonaktifkan distribusi global di akun Anda dengan memasangkan wilayah Anda dengan wilayah pasangan. Anda dapat menambahkan lebih banyak wilayah ke akun Anda nanti.
    Tulisan Multiwilayah Nonaktifkan Kemampuan tulisan multiwilayah memungkinkan Anda untuk mengambil keuntungan dari throughput terprovisi untuk database dan kontainer Anda di seluruh dunia.
    Zona Ketersediaan Nonaktifkan Zona Ketersediaan adalah lokasi terisolasi dalam wilayah Azure. Setiap zona terdiri dari satu atau beberapa pusat data yang dilengkapi dengan daya, pendinginan, dan jaringan yang independen.

    Catatan

    Opsi berikut ini tidak tersedia jika Anda memilih Tanpa Server sebagai mode Kapasitas:

    • Terapkan Diskon Tingkat Gratis
    • Redundansi Geografis
    • Tulisan Multiwilayah
  7. Secara opsional, Anda dapat mengonfigurasi detail tambahan di tab berikut:

    • Jaringan - Konfigurasikan akses dari jaringan virtual.
    • Kebijakan Pencadangan - Konfigurasikan kebijakan pencadangan berkala atau berkelanjutan.
    • Enkripsi - Gunakan kunci yang dikelola layanan atau kunci yang dikelola pelanggan.
    • Tag - Tag adalah pasangan nama/nilai yang memungkinkan Anda mengategorikan sumber daya dan melihat tagihan gabungan dengan menerapkan tag yang sama ke beberapa sumber daya dan grup sumber daya.
  8. Pilih Tinjau + buat.

  9. Ulas pengaturan akun, lalu pilih Buat. Dibutuhkan beberapa menit untuk membuat akun. Tunggu halaman portal untuk menampilkan Penyebaran Anda selesai.

    Panel Pemberitahuan portal Microsoft Azure

  10. Pilih Buka sumber daya untuk masuk ke halaman akun Azure Cosmos DB.

Mendapatkan detail koneksi akun Anda

Dapatkan informasi string koneksi dari portal Microsoft Azure, dan salin ke file konfigurasi Java. String koneksi memungkinkan aplikasi Anda berkomunikasi dengan database yang dihosting.

  1. Dari portal Azure, buka akun Azure Cosmos DB Anda.

  2. Buka panel String Koneksi.

  3. Salin nilai TITIK KONTAK, PORT, NAMA PENGGUNA, dan KATA SANDI UTAMA untuk digunakan di langkah berikutnya.

Membuat proyek dan dependensi

Proyek sampel Java yang Anda gunakan dalam artikel ini dihosting di GitHub. Anda dapat menjalankan langkah-langkah dalam dokumen ini atau mengunduh sampel dari repositori azure-cosmos-db-cassandra-java-getting-started.

Setelah mengunduh file, perbarui informasi string koneksi dalam file java-examples\src\main\resources\config.properties dan jalankan.

cassandra_host=<FILLME_with_CONTACT POINT> 
cassandra_port = 10350 
cassandra_username=<FILLME_with_USERNAME> 
cassandra_password=<FILLME_with_PRIMARY PASSWORD> 

Gunakan langkah-langkah berikut untuk menyusun sampel dari awal:

  1. Dari terminal atau prompt perintah, buat proyek Maven baru yang disebut Cassandra-demo.

    mvn archetype:generate -DgroupId=com.azure.cosmosdb.cassandra -DartifactId=cassandra-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 
    
  2. Temukan folder cassandra-demo. Dengan menggunakan editor teks, buka file pom.xml yang dihasilkan.

    Tambahkan dependensi Cassandra dan plugin build yang diperlukan oleh proyek Anda, seperti yang ditunjukkan dalam pom.xml baru.

  3. Di folder cassandra-demo\src\main, buat folder baru bernama resources. Di folder sumber daya, tambah file config.properties dan log4j.properties:

    • File config.properties menyimpan titik akhir koneksi dan nilai kunci API untuk akun Cassandra.

    • File log4j.properties menentukan tingkat pengelogan yang diperlukan untuk berinteraksi dengan API untuk Cassandra.

  4. Telusuri folder src/main/java/com/azure/cosmosdb/cassandra/. Dalam folder cassandra, buat folder lain bernama utils. Folder baru menyimpan kelas utilitas yang diperlukan untuk terhubung ke API untuk akun Cassandra.

    Tambah kelas CassandraUtils untuk membuat kluster dan membuka dan menutup sesi Cassandra. Kluster terhubung ke API untuk akun Cassandra di Azure Cosmos DB dan mengembalikan sesi untuk diakses. Gunakan kelas Konfigurasi untuk membaca informasi string koneksi dari file config.properties.

  5. Sampel Java membuat database dengan informasi pengguna seperti nama pengguna, ID pengguna, dan kota pengguna. Anda perlu menentukan metode dapatkan dan atur untuk mengakses detail pengguna di fungsi utama.

    Buat kelas User.java di folder src/main/java/com/azure/cosmosdb/cassandra/ dengan metode dapatkan dan atur.

Menambahkan database dan tabel

Bagian ini menjelaskan cara menambahkan database (keyspace) dan tabel dengan menggunakan CQL.

  1. Di folder src\main\java\com\azure\cosmosdb\cassandra, buat folder baru bernama repository.

  2. Buat kelas Java UserRepository dan tambah kode berikut ke dalamnya:

    package com.azure.cosmosdb.cassandra.repository; 
    import java.util.List; 
    import com.datastax.driver.core.BoundStatement; 
    import com.datastax.driver.core.PreparedStatement; 
    import com.datastax.driver.core.Row; 
    import com.datastax.driver.core.Session; 
    import org.slf4j.Logger; 
    import org.slf4j.LoggerFactory; 
    
    /** 
     * Create a Cassandra session 
     */ 
    public class UserRepository { 
    
        private static final Logger LOGGER = LoggerFactory.getLogger(UserRepository.class); 
        private Session session; 
        public UserRepository(Session session) { 
            this.session = session; 
        } 
    
        /** 
        * Create keyspace uprofile in cassandra DB 
         */ 
    
        public void createKeyspace() { 
             final String query = "CREATE KEYSPACE IF NOT EXISTS uprofile WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 }"; 
            session.execute(query); 
            LOGGER.info("Created keyspace 'uprofile'"); 
        } 
    
        /** 
         * Create user table in cassandra DB 
         */ 
    
        public void createTable() { 
            final String query = "CREATE TABLE IF NOT EXISTS uprofile.user (user_id int PRIMARY KEY, user_name text, user_bcity text)"; 
            session.execute(query); 
            LOGGER.info("Created table 'user'"); 
        } 
    } 
    
  3. Temukan folder src\main\java\com\azure\cosmosdb\cassandra, dan buat subfolder baru bernama examples.

  4. Buat kelas Java UserProfile. Kelas ini berisi metode utama yang memanggil metode createKeyspace dan createTable yang Anda tentukan sebelumnya:

    package com.azure.cosmosdb.cassandra.examples; 
    import java.io.IOException; 
    import com.azure.cosmosdb.cassandra.repository.UserRepository; 
    import com.azure.cosmosdb.cassandra.util.CassandraUtils; 
    import com.datastax.driver.core.PreparedStatement; 
    import com.datastax.driver.core.Session; 
    import org.slf4j.Logger; 
    import org.slf4j.LoggerFactory; 
    
    /** 
     * Example class which will demonstrate following operations on Cassandra Database on CosmosDB 
     * - Create Keyspace 
     * - Create Table 
     * - Insert Rows 
     * - Select all data from a table 
     * - Select a row from a table 
     */ 
    
    public class UserProfile { 
    
        private static final Logger LOGGER = LoggerFactory.getLogger(UserProfile.class); 
        public static void main(String[] s) throws Exception { 
            CassandraUtils utils = new CassandraUtils(); 
            Session cassandraSession = utils.getSession(); 
    
            try { 
                UserRepository repository = new UserRepository(cassandraSession); 
                //Create keyspace in cassandra database 
                repository.createKeyspace(); 
                //Create table in cassandra database 
                repository.createTable(); 
    
            } finally { 
                utils.close(); 
                LOGGER.info("Please delete your table after verifying the presence of the data in portal or from CQL"); 
            } 
        } 
    } 
    

Menjalankan aplikasi

  1. Buka prompt perintah atau jendela terminal. Tempelkan blok kode berikut.

    Kode ini mengubah direktori (cd) ke jalur folder tempat Anda membuat proyek. Kemudian, kode menjalankan perintah mvn clean install untuk membuat file cosmosdb-cassandra-examples.jar dalam folder target. Akhirnya, kode menjalankan aplikasi Java.

    cd cassandra-demo
    
    mvn clean install 
    
    java -cp target/cosmosdb-cassandra-examples.jar com.azure.cosmosdb.cassandra.examples.UserProfile 
    

    Jendela terminal menampilkan pemberitahuan bahwa keyspace dan tabel dibuat.

  2. Sekarang, di portal Microsoft Azure, buka Data Explorer untuk mengonfirmasi bahwa keyspace dan tabel dibuat.

Langkah berikutnya

Dalam tutorial ini, Anda telah mempelajari cara membuat API untuk akun Cassandra di Azure Cosmos DB, database, dan tabel dengan menggunakan aplikasi Java. Sekarang Anda dapat melanjutkan ke artikel berikutnya: