Hızlı Başlangıç: Apache Cassandra için Azure Cosmos DB verilerini yönetmek için java uygulaması oluşturma (v4 Sürücüsü)

ŞUNLAR IÇIN GEÇERLIDIR: Cassandra

Bu hızlı başlangıçta, Apache Cassandra için Azure Cosmos DB hesabı oluşturacak ve Java için v4.x Apache Cassandra sürücülerini kullanarak bir Cassandra veritabanı ve kapsayıcısı oluşturmak için GitHub'dan kopyalanmış bir Cassandra Java uygulaması kullanacaksınız. Azure Cosmos DB, genel dağıtım ve yatay ölçek özelliklerine sahip belge, tablo, anahtar-değer ve grafik veritabanlarını hızla oluşturmanıza ve sorgulamanıza olanak tanıyan çok modelli bir veritabanı hizmetidir.

Önkoşullar

Not

Bu, Java için açık kaynak Apache Cassandra sürücüsünün 4. sürümünü kullanan basit bir hızlı başlangıçtır. Çoğu durumda mevcut bir Apache Cassandra bağımlı Java uygulamasını, mevcut kodunuzda hiçbir değişiklik yapmadan Apache Cassandra için Azure Cosmos DB'ye bağlayabilmeniz gerekir. Ancak, daha iyi bir genel deneyim için özel yeniden deneme ve yük dengeleme ilkelerinin yanı sıra önerilen bağlantı ayarlarını içeren özel Java uzantımızı eklemenizi öneririz. Bu, gerektiğinde Azure Cosmos DB'de hız sınırlamayı ve uygulama düzeyinde yük devretmeyi işlemektir. Uzantıyı uygulayan kapsamlı bir örneği burada bulabilirsiniz.

Veritabanı hesabı oluşturma

Bir belge veritabanı oluşturmadan önce Azure Cosmos DB ile bir Cassandra hesabı oluşturmanız gerekir.

  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. API sayfasında Cassandra bölümünün altında Oluştur'u seçin.

    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.

  5. 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 Yeni oluştur

    Ardından 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.
    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 Uygulama 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.
    Toplam hesap aktarım hızını sınırla Hesabın aktarım hızını sınırlamak için seçin Hesabın toplam aktarım hızını belirli bir değerle sınırlamak istiyorsanız bu yararlı olur.

    Not

    Azure aboneliği başına en fazla bir ücretsiz katman Azure Cosmos DB hesabınız olabilir ve hesabı oluştururken 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ı

  6. 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ı kullanmanıza olanak tanır.
    Kullanılabilirlik Alanları Devre Dışı Bırak Kullanılabilirlik Alanları bir Azure bölgesi içindeki yalıtılmış konumlardır. Her alan bağımsız güç, soğutma ve ağ bağlantısı ile donatılmış bir veya daha fazla veri merkezinden oluşur.

    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
  7. İ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.
  8. Gözden geçir ve oluştur’u seçin.

  9. 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

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

Örnek uygulamayı kopyalama

Şimdi kod ile çalışmaya geçelim. GitHub’dan bir Cassandra uygulaması kopyalayalım, bağlantı dizesini ayarlayalım ve uygulamayı çalıştıralım. Verilerle program aracılığıyla çalışmanın ne kadar kolay olduğunu göreceksiniz.

  1. Bir komut istemi açın. git-samples adlı yeni bir klasör oluşturun. Ardından, komut istemini kapatın.

    md "C:\git-samples"
    
  2. Git Bash gibi bir Git terminal penceresi açın ve örnek uygulamayı yüklemek üzere yeni bir klasör olarak değiştirmek için cd komutunu kullanın.

    cd "C:\git-samples"
    
  3. Örnek depoyu kopyalamak için aşağıdaki komutu çalıştırın. Bu komut bilgisayarınızda örnek uygulamanın bir kopyasını oluşturur.

    git clone https://github.com/Azure-Samples/azure-cosmos-db-cassandra-java-getting-started-v4.git
    

Kodu gözden geçirin

Bu adım isteğe bağlıdır. Kodun veritabanı kaynaklarını nasıl oluşturduğunu öğrenmek istiyorsanız aşağıdaki kod parçacıklarını gözden geçirebilirsiniz. Aksi durumda, Bağlantı dizenizi güncelleştirme bölümüne atlayabilirsiniz. Bu kod parçacıklarının tümü src/main/java/com/azure/cosmosdb/cassandra/util/CassandraUtils.java dosyasından alınır.

  • , CqlSession Apache Cassandra için Azure Cosmos DB'ye bağlanır ve erişecek bir oturum döndürür (Cluster v3 sürücüsünden gelen nesne artık kullanım dışıdır). Cassandra Ana Bilgisayarı, Bağlantı Noktası, Kullanıcı adı ve parola, Azure portal bağlantı dizesi sayfası kullanılarak ayarlanır.

        this.session = CqlSession.builder().withSslContext(sc)
                .addContactPoint(new InetSocketAddress(cassandraHost, cassandraPort)).withLocalDatacenter(region)
                .withAuthCredentials(cassandraUsername, cassandraPassword).build();
    

Aşağıdaki kod parçacıkları src/main/java/com/azure/cosmosdb/cassandra/repository/UserRepository.java dosyasından alınıyor .

  • Önceki bir çalıştırmadan zaten varsa anahtar alanını bırakın.

    public void dropKeyspace() {
        String query = "DROP KEYSPACE IF EXISTS "+keyspace+"";
        session.execute(query);
        LOGGER.info("dropped keyspace '"+keyspace+"'");
    } 
    
  • Yeni bir anahtar alanı oluşturulur.

    public void createKeyspace() {
        String query = "CREATE KEYSPACE "+keyspace+" WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 }";
        session.execute(query);
        LOGGER.info("Created keyspace '"+keyspace+"'");
    }
    
  • Yeni bir tablo oluşturulur.

      public void createTable() {
          String query = "CREATE TABLE "+keyspace+"."+table+" (user_id int PRIMARY KEY, user_name text, user_bcity text)";
          session.execute(query);
          LOGGER.info("Created table '"+table+"'");
      }
    
  • Kullanıcı varlıkları, hazırlanmış bir deyim nesnesi kullanılarak eklenir.

    public String prepareInsertStatement() {
        final String insertStatement = "INSERT INTO  "+keyspace+"."+table+" (user_id, user_name , user_bcity) VALUES (?,?,?)";
        return insertStatement;
    }
    
    public void insertUser(String preparedStatement, int id, String name, String city) {
        PreparedStatement prepared = session.prepare(preparedStatement);
        BoundStatement bound = prepared.bind(id, city, name).setIdempotent(true);
        session.execute(bound);
    }
    
  • Tüm Kullanıcı bilgilerini almak için sorguyu çalıştırın.

    public void selectAllUsers() {
        final String query = "SELECT * FROM "+keyspace+"."+table+"";
        List<Row> rows = session.execute(query).all();
    
        for (Row row : rows) {
            LOGGER.info("Obtained row: {} | {} | {} ", row.getInt("user_id"), row.getString("user_name"), row.getString("user_bcity"));
        }
    }
    
  • Tek bir Kullanıcı bilgisi almak için sorgu.

    public void selectUser(int id) {
        final String query = "SELECT * FROM "+keyspace+"."+table+" where user_id = 3";
        Row row = session.execute(query).one();
    
        LOGGER.info("Obtained row: {} | {} | {} ", row.getInt("user_id"), row.getString("user_name"), row.getString("user_bcity"));
    }
    

Bağlantı dizenizi güncelleştirme

Bu adımda Azure portalına dönerek bağlantı dizesi bilgilerinizi kopyalayıp uygulamaya ekleyin. Bağlantı dizesi ayrıntıları, uygulamanızın barındırılan veritabanıyla iletişim kurmasına olanak tanır.

  1. Azure portal Azure Cosmos DB hesabınızda Bağlantı Dizesi'ni seçin.

    Azure portalı, Bağlantı Dizesi sayfasından kullanıcı adını görüntüleme ve kopyalama

  2. CONTACT POINT değerini kopyalamak için ekranın sağ tarafındaki düğmeyi kullanın.

  3. C:\git-samples\azure-cosmosdb-cassandra-java-getting-started\java-samples\src\main\resources klasöründen config.properties dosyasını açın.

  4. Portaldan CONTACT POINT değerini 2. satırdaki <Cassandra endpoint host> üzerine yapıştırın.

    config.properties'in 2. satırı şuna benzer görünmelidir:

    cassandra_host=cosmos-db-quickstart.cassandra.cosmosdb.azure.com

  5. Portala Geri dön ve USERNAME değerini kopyalayın. Portaldan USERNAME değerini 4. satırdaki <cassandra endpoint username> üzerine yapıştırın.

    config.properties'in 4. satırı şuna benzer görünmelidir:

    cassandra_username=cosmos-db-quickstart

  6. Portala Geri dön ve PASSWORD değerini kopyalayın. Portaldan PASSWORD değerini 5. satırdaki <cassandra endpoint password> üzerine yapıştırın.

    config.properties'in 5. satırı şuna benzer görünmelidir:

    cassandra_password=2Ggkr662ifxz2Mg...==

  7. 6. satırda, belirli bir TLS/SSL sertifikası kullanmak istiyorsanız değerini TLS/SSL sertifikasının konumuyla değiştirin <SSL key store file location> . Bir değer sağlanmazsa, JAVA_HOME>/jre/lib/security/cacerts konumunda <yüklenen JDK sertifikası kullanılır.

  8. 6. satırı belirli bir TLS/SSL sertifikası kullanacak şekilde değiştirdiyseniz, 7. satırı bu sertifikanın parolasını kullanacak şekilde güncelleştirin.

  9. Kişi noktası için varsayılan bölgeyi (ör. West US) eklemeniz gerektiğini unutmayın; örneğin,

    region=West US

    Bunun nedeni, v.4x sürücüsünün yalnızca bir yerel DC'nin kişi noktasıyla eşleştirilmesine izin vermesidir. Varsayılandan başka bir bölge eklemek istiyorsanız (Azure Cosmos DB hesabı ilk oluşturulduğunda verilen bölgedir), iletişim noktası eklerken bölgesel sonek kullanmanız gerekir; örneğin host-westus.cassandra.cosmos.azure.com. .

  10. config.properties dosyasını kaydedin.

Java uygulamasını çalıştırma

  1. Git terminal penceresinde, azure-cosmosdb-cassandra-java-getting-started-v4 klasörüne cd.

    cd "C:\git-samples\azure-cosmosdb-cassandra-java-getting-started-v4"
    
  2. Git terminal penceresinde, cosmosdb-cassandra-examples.jar dosyasını oluşturmak için aşağıdaki komutları kullanın.

    mvn clean install
    
  3. Git terminal penceresinde, Java uygulamasını başlatmak için aşağıdaki komutu çalıştırın.

    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. Daha sonra tablodaki tüm kullanıcıları seçip döndürür ve çıktıyı gösterir, ardından kimliğe göre bir satır seçip değeri gösterir.

    Programın yürütülmesini durdurmak ve konsol penceresini kapatmak için Ctrl+C tuşlarına basın.

  4. Azure portalında bu yeni verileri sorgulamak, değiştirmek ve birlikte çalışmak için Veri Gezgini'ni açın.

    Veri Gezgini'de verileri görüntüleme - Azure Cosmos DB

Azure portalında SLA'ları gözden geçirme

Azure portal Azure Cosmos DB hesabınızın aktarım hızını, depolama alanını, kullanılabilirliğini, gecikme süresini ve tutarlılığını izler. Azure Cosmos DB Hizmet Düzeyi Sözleşmesi (SLA) ile ilişkili ölçümler için grafikler, gerçek performansla karşılaştırıldığında SLA değerini gösterir. Bu ölçüm paketi, SLA'larınızı izlemeyi saydam hale getirir.

Ölçümleri ve SLA'ları gözden geçirmek için:

  1. Azure Cosmos DB hesabınızın gezinti menüsünde Ölçümler'i seçin.

  2. Gecikme süresi gibi bir sekme seçin ve sağ tarafta bir zaman çerçevesi seçin. Grafiklerdeki Gerçek ve SLA çizgilerini karşılaştırın.

    Azure Cosmos DB ölçüm paketi

  3. Diğer sekmelerdeki ölçümleri gözden geçirin.

Kaynakları temizleme

Uygulamanız ve Azure Cosmos DB hesabınızla işiniz bittiğinde daha fazla ücret ödemeden oluşturduğunuz Azure kaynaklarını silebilirsiniz. Kaynakları silmek için:

  1. Azure portal Arama çubuğunda Kaynak grupları'nı arayın ve seçin.

  2. Listeden bu hızlı başlangıç için oluşturduğunuz kaynak grubunu seçin.

    Silinecek kaynak grubunu seçin

  3. Kaynak grubuna Genel Bakış sayfasında Kaynak grubunu sil'i seçin.

    Kaynak grubunu silme

  4. Sonraki pencerede, silinecek kaynak grubunun adını girin ve sil'i seçin.

Sonraki adımlar

Bu hızlı başlangıçta Cassandra için API ile Azure Cosmos DB hesabı oluşturmayı ve Cassandra veritabanı ve kapsayıcısı oluşturan bir Cassandra Java uygulaması çalıştırmayı öğrendiniz. Artık Azure Cosmos DB hesabınıza ek veriler aktarabilirsiniz.