hızlı başlangıç: Azure Cosmos DB Cassandra API verilerini (v4 sürücüsü) yönetmek için bir Java uygulaması oluşturma

Uygulama hedefı: Cassandra API

bu hızlı başlangıçta, bir Azure Cosmos DB Cassandra API hesabı oluşturur ve java için v4. x Apache cassandra sürücülerini kullanarak cassandra veritabanı ve kapsayıcısı oluşturmak için GitHub 'den kopyalanmış bir cassandra java uygulaması kullanırsınız. Azure Cosmos DB, genel dağıtım ve yatay ölçeklendirme özellikleri ile belge, tablo, anahtar değer ve grafik veritabanlarını hızlıca oluşturmanıza ve sorgulamanızı sağlayan çok modelli bir veritabanı hizmetidir.

Önkoşullar

Not

Bu, Java için açık kaynaklı Apache Cassandra sürücüsünün 4 sürümünü kullanan basit bir hızlı başlangıç. çoğu durumda, var olan bir Apache cassandra bağımlı Java uygulamasını mevcut kodunuzda herhangi bir değişiklik yapmadan Azure Cosmos DB Cassandra API bağlayabilmelisiniz. Ancak, daha iyi bir genel deneyim için özel yeniden deneme ve yük dengeleme ilkelerinin yanı sıra önerilen bağlantı ayarlarını da içeren özel Java uzantımızeklenmesini öneririz. bu, gerekli olduğunda Azure Cosmos DB ' de hız sınırlandırma ve uygulama düzeyinde yük devretmeyi idare etmek için kullanılır. Uzantıyı buradauygulayan kapsamlı bir örnek bulabilirsiniz.

Veritabanı hesabı oluşturma

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

  1. Kaynak Azure portal veya Giriş sayfasında Kaynak oluştur'a tıklayın.

  2. Yeni sayfasında Azure veritabanı için arama Cosmos seçin.

  3. Azure veritabanı Cosmos Oluştur'a tıklayın.

  4. Azure veritabanı Cosmos hesabı oluştur sayfasında, yeni Azure veritabanı hesabı için temel Cosmos 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 hesap adınızla aynı Cosmos kullanın.
    Hesap Adı Benzersiz bir ad girin Azure Cosmos DB hesabınızı tanımlayan benzersiz bir ad girin. Hesap URI'niz cassandra.cosmos.azure.com benzersiz hesap adınıza eklenir.

    Hesap adı yalnızca küçük harf, rakam ve kısa çizgi (-) kullanabilir ve 3 ila 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 çekirdek (SQL), 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 verilerle çalışan bir tablo Cassandra API.

    Cassandra 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ı'ı seçin. Sunucusuz modda bir hesap oluşturmak için Sunucusuz'ı seçin.
    Azure Cosmos DB ücretsiz katmanı indirimini uygulama Uygula veya Uygula Azure Cosmos DB ücretsiz katmanı ile bir hesapta ilk 1000 RU/sn ve 25 GB depolama alanı ücretsiz olarak elde edilir. Ücretsiz katman hakkında daha fazla bilgi.

    Not

    Azure aboneliği başına en fazla bir ücretsiz azure Cosmos DB hesabına sahip olabilir ve hesabı oluştururken kabul etmek zorundasınız. Ücretsiz katman indirimi uygulama seçeneğini görmüyorsanız bu, abonelikte başka bir hesabın ücretsiz katmanla zaten etkinleştirilmiştir anlamına gelir.

    Azure Cosmos DB veritabanı için yeni Cassandra API

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

    Ayar Değer Açıklama
    Coğrafi Yedeklilik Devre Dışı Bırak Bölgenizi bir çift bölgeyle eşleştirerek hesabınız üzerinde genel dağıtımı etkinleştirin veya devre dışı bırakma. Hesabınıza daha sonra daha fazla bölge ekebilirsiniz.
    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 için sağlanan aktarım hızından yararlanmanızı sağlar.

    Not

    Kapasite modu olarak Sunucusuz seçeneğini belirtirsanız 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ırma.
    • Yedekleme İlkesi - Düzenli veya sürekli yedekleme ilkesi yapılandırma.
    • Şifreleme - Hizmet tarafından yönetilen anahtar veya müşteri tarafından yönetilen bir anahtar kullanın.
    • Etiketler- Etiketler, birden çok kaynağa ve kaynak gruplarına 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.

Ö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ınmıştır.

  • CqlSessionAzure Cosmos DB Cassandra API bağlanır ve erişim için bir oturum döndürür ( Cluster v3 sürücüsünden nesne artık kullanılmıyor). Cassandra Konağı, 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/depo/UserRepository. Java dosyasından alınır.

  • Önceki bir çalıştırınızdan 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ırlanan bir ifade 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 sorgulayı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ı bilgilerini almak için sorgulayın.

    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 portalAzure 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. ILETIŞIM noktası 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-examples\src\main\resources klasöründeki 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 2. satırı şuna benzer görünmelidir

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

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

    Config. Properties 3. satırı şuna benzer görünmelidir

    cassandra_username=cosmos-db-quickstart

  6. Portala geri dönün ve parola 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...==

    1. satırda, belirli bir TLS/SSL sertifikası kullanmak istiyorsanız, bunu <SSL key store file location> TLS/SSL sertifikasının konumuyla değiştirin. Bir değer sağlanmamışsa, <JAVA_HOME>/jre/lib/security/cacerts konumuna yüklenen JDK sertifikası kullanılır.
    1. satırı belirli bir TLS/SSL sertifikası kullanacak şekilde değiştirdiyseniz, bu sertifikanın parolasını kullanmak için 7. satırı güncelleştirin.
  7. Kişi noktası için varsayılan bölgeyi (örn.) eklemeniz gerektiğini unutmayın West US . Örneğin,

    region=West US

    Bunun nedeni, v. 4x sürücüsünün yalnızca bir yerel DC 'nin iletişim noktasıyla eşlenme olanağı sağlar. varsayılan dışında bir bölge eklemek istiyorsanız (Cosmos DB hesabı ilk oluşturulduğunda verilen bölgedir), kişi noktası eklerken bölgesel son ek kullanmanız gerekir, host-westus.cassandra.cosmos.azure.com örn.

  8. 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 için CTRL + C tuşlarına basın ve konsol penceresini kapatı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 Azure Cosmos DB verileri görüntüleme

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

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

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

  1. Hesap gezinti Cosmos DB Ölçümler'i seçin.

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

    Azure Cosmos DB ölçüm paketi

  3. Diğer sekmelerde ölçümleri gözden geçirme.

Kaynakları temizleme

Uygulama ve hesap hesabınızla Azure Cosmos DB, daha fazla ücret ödemeden oluşturduğunuz Azure kaynaklarını silebilirsiniz. Kaynakları silmek için:

  1. Arama Azure portal kaynak grupları için arama ve seçimlerini kullanın.

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

    Silinecek kaynak grubunu seçin

  3. Kaynak grubunun 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 API sahip bir Azure Cosmos DB hesabı oluşturmayı ve cassandra veritabanı ve kapsayıcısı oluşturan cassandra Java uygulamasını çalıştırmayı öğrendiniz. artık Azure Cosmos DB hesabınıza daha fazla veri aktarabilirsiniz.