Öğretici: Anahtar/değer verilerini depolamak için Java uygulaması kullanarak Azure Cosmos DB'de Cassandra hesabı için API oluşturma

ŞUNLAR IÇIN GEÇERLIDIR: Cassandra

Geliştirici olarak anahtar/değer çiftleri kullanan uygulamalarınız olabilir. Anahtar/değer verilerini depolamak için Azure Cosmos DB'de Cassandra hesabı için API kullanabilirsiniz. Bu öğreticide, Azure Cosmos DB'de Cassandra hesabı için API oluşturmak, veritabanı (anahtar alanı olarak da adlandırılır) eklemek ve tablo eklemek için Java uygulamasının nasıl kullanılacağı açıklanır. Java uygulaması Java sürücüsünü kullanarak kullanıcı kimliği, kullanıcı adı ve kullanıcı şehri gibi ayrıntıları içeren bir kullanıcı veritabanı oluşturur.

Bu öğretici aşağıdaki görevleri kapsar:

  • Cassandra veritabanı hesabı oluşturma
  • Hesabın bağlantı dizesini alma
  • Maven projesi ve bağımlılıkları oluşturma
  • Veritabanı ve tablo ekleme
  • Uygulamayı çalıştırma

Ön koşullar

Veritabanı hesabı oluşturma

  1. Azure portal menüsünden veya Giriş sayfasındaKaynak oluştur'u seçin.

  2. Yeni sayfasında Azure Cosmos DB'yi arayın ve seçin.

  3. Azure Cosmos DB sayfasında Oluştur'u seçin.

  4. Azure Cosmos DB Hesabı Oluştur sayfasında yeni Azure Cosmos DB hesabının temel ayarlarını girin.

    Ayar Değer Açıklama
    Abonelik Aboneliğiniz Bu Azure Cosmos DB hesabı için kullanmak istediğiniz Azure aboneliğini seçin.
    Kaynak Grubu Create newThen, Hesap Adı ile aynı adı girin Yeni oluştur’u seçin. Ardından hesabınız için yeni bir kaynak grubu adı girin. Kolaylık olması için Azure Cosmos DB hesap adınızla aynı adı kullanın.
    Hesap Adı Benzersiz bir ad girin Azure Cosmos DB hesabınızı tanımlayan benzersiz bir ad girin. Hesap URI'niz benzersiz hesap adınızın sonuna cassandra.cosmos.azure.com eklenir. Hesap adı yalnızca küçük harf, sayı ve kısa çizgi (-) kullanabilir ve 3 ile 31 karakter uzunluğunda olmalıdır.
    API Cassandra API, oluşturulacak hesap türünü belirler. Azure Cosmos DB beş API sağlar: Belge veritabanları için NoSQL, graf veritabanları için Gremlin, belge veritabanları için MongoDB, Azure Tablosu ve Cassandra. Her API için ayrı bir hesap oluşturmanız gerekir. Cassandra'yı seçin çünkü bu hızlı başlangıçta Cassandra API'siyle çalışan bir tablo oluşturuyorsunuz. Cassandra IÇIN API hakkında daha fazla bilgi edinin.
    Konum Kullanıcılarınıza en yakın bölge Azure Cosmos DB hesabınızın barındırılacağı coğrafi konumu seçin. Verilere en hızlı erişimi sağlamak için kullanıcılarınıza en yakın olan konumu kullanın.
    Kapasite modu Sağlanan aktarım hızı veya Sunucusuz Sağlanan aktarım hızı modunda hesap oluşturmak için Sağlanan aktarım hızı'na tıklayın. Sunucusuz modda hesap oluşturmak için Sunucusuz'u seçin.
    Azure Cosmos DB ücretsiz katman indirimi uygulama Uygula veya Uygula Azure Cosmos DB ücretsiz katmanı ile bir hesapta ilk 1000 RU/sn ve 25 GB depolama alanını ücretsiz olarak alırsınız. Ücretsiz katman hakkında daha fazla bilgi edinin.

    Not

    Azure aboneliği başına en fazla bir ücretsiz katman Azure Cosmos DB hesabınız olabilir ve hesabı oluştururken bu hesabı kabul etmeniz gerekir. Ücretsiz katman indirimini uygulama seçeneğini görmüyorsanız bu, abonelikteki başka bir hesabın ücretsiz katmanla zaten etkinleştirildiği anlamına gelir.

    Apache Cassandra için Azure Cosmos DB'nin yeni hesap sayfası

  5. Genel Dağıtım sekmesinde aşağıdaki ayrıntıları yapılandırın. Bu hızlı başlangıcın amacı için varsayılan değerleri bırakabilirsiniz:

    Ayar Değer Açıklama
    Coğrafi Yedeklilik Devre Dışı Bırak Bölgenizi bir çift bölgeyle eşleştirerek hesabınızda genel dağıtımı etkinleştirin veya devre dışı bırakın. Daha sonra hesabınıza daha fazla bölge ekleyebilirsiniz.
    Birden Çok Bölgeli Yazmalar Devre Dışı Bırak Çok bölgeli yazma özelliği, dünya genelindeki veritabanlarınız ve kapsayıcılarınız için sağlanan aktarım hızının avantajlarından yararlanmanızı sağlar.

    Not

    Kapasite modu olarak Sunucusuz seçeneğini belirlediğinizde aşağıdaki seçenekler kullanılamaz:

    • Ücretsiz Katman İndirimi Uygula
    • Coğrafi yedeklilik
    • Birden Çok Bölgeli Yazmalar
  6. İsteğe bağlı olarak, aşağıdaki sekmelerde ek ayrıntıları yapılandırabilirsiniz:

    • - Sanal ağdan erişimi yapılandırın.
    • Yedekleme İlkesi - Düzenli veya sürekli yedekleme ilkesini yapılandırın.
    • Şifreleme - Hizmet tarafından yönetilen anahtar veya müşteri tarafından yönetilen anahtar kullanın.
    • Etiketler - Etiketler, birden çok kaynağa ve kaynak grubuna aynı etiketi uygulayarak kaynakları kategorilere ayırmanızı ve birleştirilmiş faturalamayı görüntülemenizi sağlayan ad/değer çiftleridir.
  7. Gözden geçir ve oluştur’u seçin.

  8. Hesap ayarlarını gözden geçirip Oluştur seçeneğini belirleyin. Hesabın oluşturulması birkaç dakika sürer. Portal sayfasında Dağıtımınız tamamlandı iletisinin görüntülenmesini bekleyin.

    Azure portaldaki Bildirimler bölmesi

  9. Azure Cosmos DB hesabı sayfasına gitmek için Kaynağa git seçeneğini belirleyin.

Hesabınızın bağlantı ayrıntılarını alma

bağlantı dizesi bilgilerini Azure portal alın ve Java yapılandırma dosyasına kopyalayın. Bağlantı dizesi, uygulamanızın barındırılan veritabanıyla iletişim kurmasına olanak tanır.

  1. Azure portal Azure Cosmos DB hesabınıza gidin.

  2. Bağlantı Dizesi bölmesini açın.

  3. TEMAS NOKTASI, BAĞLANTI NOKTASI, KULLANICI ADI ve BİRİNCİL PAROLA değerlerini sonraki adımlarda kullanmak üzere kopyalayın.

Projeyi ve bağımlılıkları oluşturma

Bu makalede kullandığınız Java örnek projesi GitHub'da barındırılır. Bu belgedeki adımları çalıştırabilir veya örneği azure-cosmos-db-cassandra-java-getting-started deposundan indirebilirsiniz.

Dosyaları indirdikten sonra dosyadaki bağlantı dizesi bilgilerini güncelleştirin java-examples\src\main\resources\config.properties ve çalıştırın.

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

Örneği sıfırdan oluşturmak için aşağıdaki adımları kullanın:

  1. Terminalden veya komut isteminden, Cassandra-demo adlı yeni bir Maven projesi oluşturun.

    mvn archetype:generate -DgroupId=com.azure.cosmosdb.cassandra -DartifactId=cassandra-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 
    
  2. cassandra-demo klasörünü bulun. Metin düzenleyicisi kullanarak, oluşturulmuş olan pom.xml dosyasını açın.

    pom.xml dosyasında gösterildiği gibi, projeniz için gereken Cassandra bağımlılıklarını ve derleme eklentilerini ekleyin.

  3. cassandra-demo\src\main klasörünün altında resources adlı yeni bir klasör oluşturun. Resources klasörünün altına config.properties ve log4j.properties dosyalarını ekleyin:

    • config.properties dosyası, Cassandra hesabı için API'nin bağlantı uç noktasını ve anahtar değerlerini depolar.

    • log4j.properties dosyası, Cassandra API'siyle etkileşim için gereken günlük düzeyini tanımlar.

  4. Klasöre src/main/java/com/azure/cosmosdb/cassandra/ göz atın. Cassandra klasörünün içinde utils adlı başka bir klasör oluşturun. Yeni klasör, Cassandra hesabı için API'ye bağlanmak için gereken yardımcı program sınıflarını depolar.

    Kümeyi oluşturmak ve Cassandra oturumlarını açıp kapatmak için CassandraUtils sınıfını ekleyin. Küme, Azure Cosmos DB'de Cassandra hesabı için API'ye bağlanır ve erişecek bir oturum döndürür. Config.properties dosyasından bağlantı dizesi bilgisini okumak için Configurations sınıfını kullanın.

  5. Java örneği kullanıcı adı, kullanıcı kimliği ve kullanıcı şehri gibi kullanıcı bilgilerini içeren bir veritabanı oluşturur. Main işlevindeki kullanıcı ayrıntılarına erişmek için get ve set yöntemlerini tanımlamanız gerekir.

    get ve set yöntemleriyle klasörün altında src/main/java/com/azure/cosmosdb/cassandra/ bir User.java sınıfı oluşturun.

Veritabanı ve tablo ekleme

Bu bölümde, CQL kullanarak veritabanı (keyspace) ve tablo ekleme işlemleri açıklanmaktadır.

  1. src\main\java\com\azure\cosmosdb\cassandra klasörünün altında repository adlı yeni bir klasör oluşturun.

  2. Java sınıfını UserRepository oluşturun ve aşağıdaki kodu ekleyin:

    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. src\main\java\com\azure\cosmosdb\cassandra klasörünü bulun ve examples adlı yeni bir alt klasör oluşturun.

  4. Java sınıfını UserProfile oluşturun. Bu sınıf, daha önce tanımladığınız createKeyspace ve createTable yöntemlerini çağıran main yöntemini içerir:

    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"); 
            } 
        } 
    } 
    

Uygulamayı çalıştırma

  1. Bir komut istemi veya terminal penceresi açın. Aşağıdaki kod bloğunu yapıştırın.

    Bu kod, dizini (cd) projeyi oluşturduğunuz klasör yoluna değiştirir. Ardından hedef klasörde cosmosdb-cassandra-examples.jar dosyasını oluşturmak için mvn clean install komutunu çalıştırır. Son olarak, Java uygulamasını çalıştırır.

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

    Terminal penceresinde anahtar alanı ve tablonun oluşturulduğuna yönelik bildirimler gösterilir.

  2. Şimdi, keyspace'in ve tablonun oluşturulduğunu onaylamak için Azure portalda Veri Gezgini'ni açın.

Sonraki adımlar

Bu öğreticide, Java uygulaması kullanarak Azure Cosmos DB'de Cassandra hesabı, veritabanı ve tablo için API oluşturmayı öğrendiniz. Şimdi bir sonraki makaleye geçebilirsiniz: