hızlı başlangıç: Azure Cosmos DB SQL apı verilerini yönetmek için bir Java uygulaması oluşturma
UYGULANDıĞı YER:
SQL API
bu hızlı başlangıçta, Azure portal ve GitHub klonlanan bir Java uygulamasını kullanarak bir Azure Cosmos DB SQL apı hesabı oluşturup yönetirsiniz. ilk olarak, Azure portal kullanarak bir Azure Cosmos DB SQL apı hesabı oluşturun, ardından SQL java SDK 'sını kullanarak bir java uygulaması oluşturun ve ardından java uygulamasını kullanarak Cosmos DB hesabınıza kaynak eklersiniz. 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.
Önemli
bu hızlı başlangıç yalnızca Azure Cosmos DB Java SDK v4 içindir. daha fazla bilgi için lütfen Azure Cosmos DB java sdk v4 sürüm notları, maven deposu, Azure Cosmos DB java sdk v4 performans ipuçlarıve Azure Cosmos DB java sdk v4 sorun giderme kılavuzunu görüntüleyin. şu anda v4 'den daha eski bir sürüm kullanıyorsanız, v4 'ye yükseltme konusunda yardım için Azure Cosmos DB Java SDK 'sı v4 kılavuzu ' na bakın.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz bir tane oluşturun. veya Azure aboneliği olmadan ücretsiz Azure Cosmos DB deneyin . ayrıca, bir urı ve anahtar ile Azure Cosmos DB Emulator de kullanabilirsiniz
https://localhost:8081C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==. - Java Development Kit (JDK) 8.
JAVA_HOMEOrtam değişkeninizi JDK 'nin yüklü olduğu klasöre işaret edin. - Maven ikili Arşivi. Ubuntu 'da,
apt-get install mavenMaven 'yi yüklemek için komutunu çalıştırın. - Git. Ubuntu 'da git 'i
sudo apt-get install gityüklemek için komutunu çalıştırın.
Giriş notları
Cosmos DB hesabının yapısı. apı veya programlama dilinden bağımsız olarak, bir Cosmos DB hesabı sıfır veya daha fazla veritabanı içerir, bir veritabanı (DB) sıfır veya daha fazla kapsayıcı içerir ve bir kapsayıcı , aşağıdaki diyagramda gösterildiği gibi sıfır veya daha fazla öğe içerir:
Burada veritabanları, kapsayıcılar ve öğeler hakkında daha fazla bilgi edinebilirsiniz . Birkaç önemli özellik, kapsayıcı düzeyinde, sağlanan aktarım hızı ve bölüm anahtarı arasında tanımlanır.
Sağlanan aktarım hızı, parasal bir fiyata sahip olan Istek birimleri (ru) cinsinden ölçülür ve hesabın işletim maliyetinde faktörü önemli ölçüde belirler. Sağlanan aktarım hızı kapsayıcı başına ayrıntı düzeyi veya veritabanı başına ayrıntı düzeyinde seçilebilir, ancak kapsayıcı düzeyinde üretilen iş belirtimi genellikle tercih edilir. Burada üretilen iş sağlama hakkında daha fazla bilgi alabilirsiniz .
öğeler bir Cosmos DB kapsayıcısına eklendikçe, istekleri işlemek için daha fazla depolama ve işlem eklenerek veritabanı yatay olarak artar. Depolama ve işlem kapasitesi, bölümler olarak bilinen ayrı birimlere eklenir ve belgelerinizdeki bir alanı her belgeyi bir bölüme eşleyen bölüm anahtarı olacak şekilde seçmeniz gerekir. Bölümlerin yönetilme şekli, her bölüme bölüm anahtarı değerlerinin aralığından kabaca eşit bir dilim atanabileceği; Bu nedenle, görece rastgele veya eşit olarak dağıtılan bir bölüm anahtarı seçmeniz önerilir. Aksi halde, bazı bölümler önemli ölçüde daha az istek *(*soğuk bölüm) görür ve bu da kaçınılmaz. Buradabölümlendirme hakkında daha fazla bilgi edinebilirsiniz.
Veritabanı hesabı oluşturma
Bir belge veritabanı oluşturmadan önce Azure Cosmos DB ile bir SQL API hesabı oluşturmanız gerekir.
Kaynak Azure portal veya Giriş sayfasında Kaynak oluştur'a tıklayın.
Yeni sayfasında Azure veritabanı için arama Cosmos seçin.
Azure veritabanı Cosmos Oluştur'a tıklayın.
Azure Cosmos DB Hesabı Oluştur sayfasında, yeni Azure veritabanı hesabı için temel Cosmos girin.
Ayar Değer Açıklama Abonelik Abonelik adı Bu Azure Cosmos hesabı için kullanmak istediğiniz Azure aboneliğini seçin. Kaynak Grubu Kaynak grubu adı Bir kaynak grubu seçin veya Yeni oluştur seçeneğini belirleyin ve yeni kaynak grubu için benzersiz bir ad girin. Hesap Adı Benzersiz bir ad Azure Cosmos hesabınızı tanımlayan bir ad girin. URI’nizi oluşturmak için sağladığınız ada documents.azure.com ekleneceği için benzersiz bir ad kullanın.
Ad yalnızca küçük harf, sayı ve kısa çizgi (-) karakterini içerebilir. 3-44 karakter uzunluğunda olmalıdır.API Oluşturulacak hesap türü SQL söz dizimini kullanarak belge veritabanı ve sorgusu oluşturmak için Cekirdek (SQL) seçeneğini belirleyin.
API, oluşturulacak hesap türünü belirler. Azure Cosmos DB beş API sağlar: Belge verileri için Çekirdek (SQL) ve MongoDB, graf verileri için Gremlin, Azure Tablosu ve Cassandra. Şu anda, her API için farklı bir hesap oluşturmanız gerekir.
SQL API’si 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 bir 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 katman azure Cosmos DB hesabınız 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.
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
İsteğe bağlı olarak, aşağıdaki sekmelerde ek ayrıntıları yapılandırabilirsiniz:
- Ağ - 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 anahtarı kullanın.
- Etiketler- Etiketler, kaynakları kategorilere ayırmayı ve aynı etiketi birden çok kaynağa ve kaynak gruplarına uygulayarak birleştirilmiş faturalamayı görüntülemenizi sağlayan ad/değer çiftleridir.
Gözden geçir ve oluştur’u seçin.
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 Cosmos DB hesabı sayfasına gitmek için Kaynağa git seçeneğini belirleyin.
Kapsayıcı ekleme
Artık veritabanı ve kapsayıcı Veri Gezgini için Azure portal aracı kullanabilirsiniz.
Yeni > Veri Gezgini'ı seçin.
Kapsayıcı Ekle alanı en sağda görüntülenir, görmek için sağa kaydırmanız gerekir.
Kapsayıcı ekle sayfasında yeni kapsayıcının ayarlarını girin.
Ayar Önerilen değer Açıklama Veritabanı Kimliği ToDoList Yeni veritabanınızın adı olarak Görevler girin. Veritabanı adları 1 ile 255 karakter arasında olmalı ve , veya /, \\, #, ?sonda boşluk içeremez. Aktarım hızını kapsayıcılar arasında paylaş seçeneğini işaretleyin. Bu seçenek, veritabanında sağlanan aktarım hızını veritabanındaki tüm kapsayıcılar arasında paylaşmaya olanak sağlar. Bu seçenek, maliyet tasarrufları için de yardımcı olur.Veritabanı aktarım hızı Otomatik Ölçeklendirme veya El ile aktarım hızı s sağlanmasını sebilirsiniz. El ile aktarım hızı RU/sn'leri kendiniz ölçeklendirmeye olanak sağlarken, otomatik ölçeklendirme aktarım hızı sistemin RU/sn'leri kullanıma göre ölçeklendirmelerine olanak sağlar. Bu örnek için El ile'yi seçin.
Aktarım hızını saniye başına 400 istek birimi (RU/sn) olarak bırakın. Gecikme süresini azaltmak için, kapasite hesaplayıcısı ile gerekli RU/sn'leri tahmin ederek aktarım hızının ölçeğini artırabilirsiniz.
Not: Bu ayar, sunucusuz bir hesapta yeni bir kapsayıcı oluşturulurken kullanılamaz.Kapsayıcı Kimliği Öğeler Yeni kapsayıcınız için öğe adını girin. Kapsayıcı kimliklerinin karakter gereksinimleri, veritabanı adlarına ilişkin karakter gereksinimleri ile aynıdır. Bölüm anahtarı /kategori Bu makalede açıklanan örnekte bölüm anahtarı olarak /category kullanılır. Bu örnek için Benzersiz anahtarlar ekleme veya Analiz depolarını açma. Benzersiz anahtarlar, bölüm anahtarı başına bir veya daha fazla değerin benzersiz olmasını sağlayarak veritabanına bir veri bütünlüğü katmanı eklemenize izin verir. Daha fazla bilgi için bkz. Azure Cosmos DB. Analiz deposu, işlemsel iş yüklerinizi etkilemeden operasyonel verilere karşı büyük ölçekli analizler sağlamak için kullanılır.
Tamam’ı seçin. Veri Gezgini, yeni veritabanını ve kapsayıcıyı görüntüler.
Örnek verileri ekleme
Artık Veri Gezgini kullanarak yeni kapsayıcınıza veri ekleyebilirsiniz.
Veri Gezgini, Görevler veritabanını genişletin, öğeler kapsayıcısını genişletin. Öğeler' i ve sonra Yeni öğe' yi seçin.

Şimdi aşağıdaki yapıyla kapsayıcıya bir belge ekleyin.
{ "id": "1", "category": "personal", "name": "groceries", "description": "Pick up apples and strawberries.", "isComplete": false }JSON 'u Belgeler sekmesine ekledikten sonra Kaydet' i seçin.

idözelliği için benzersiz bir değer eklediğiniz yerde bir veya daha fazla belge oluşturun ve kaydedin ve diğer özellikleri uygun şekilde değiştirin. Azure Cosmos DB, verilerinizin bir şemaya uygun olmasını şart koşmadığı için yeni belgelerinizin yapısını istediğiniz şekilde oluşturabilirsiniz.
Verilerinizi sorgulayın
Verilerinizi almak ve filtrelemek Veri Gezgini sorgular kullanabilirsiniz.
Dosyanın Öğeler sekmesinin üst kısmında Veri Gezgini sorgusunu gözden
SELECT * FROM cgeçirebilirsiniz. Bu sorgu, kapsayıcıdan kimlikle sıra edilen tüm belgeleri alın ve görüntüler.
Sorguyu değiştirmek için Filtreyi Düzenle'yi seçin, varsayılan sorguyu ile değiştirin
ORDER BY c._ts DESCve ardından Filtre Uygula'ya tıklayın.
Değiştirilen sorgu, belgeleri zaman damgalarına göre azalan düzende görüntüler, bu nedenle şimdi ilk olarak ikinci belgeniz listelenir.
SQL söz dizimi hakkında bilgi sahibiysiniz, sorgu önkatesi kutusuna desteklenen tüm SQL sorgularını girebilirsiniz. Sunucu tarafı iş mantığı Veri Gezgini saklı yordamlar, UFS'ler ve tetikleyiciler oluşturmak için de bu yordamları kullanabilirsiniz.
Veri Gezgini API'lerde Azure portal yerleşik programlı veri erişimi özelliklerine kolay erişim ve erişim sağlar. Ayrıca aktarım hızını ölçeklendirmek, anahtarları ve bağlantı dizelerini almak ve hesap hesabınız için ölçümleri ve SLA'Azure Cosmos DB kullanırsınız.
Örnek uygulamayı kopyalama
Şimdi kod ile çalışmaya geçelim. GitHub'dan bir SQL API'si 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.
Ö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-java-getting-started.git
Kodu gözden geçirin
Bu adım isteğe bağlıdır. Veritabanı kaynaklarının kodda nasıl oluşturulduğunu öğrenmekle ilgileniyorsanız, aşağıdaki kod parçacıklarını gözden geçirebilirsiniz. Aksi takdirde, Uygulamayı çalıştırma konusuna atlayabilirsiniz.
Zaman uyumlu (eşitleme) API 'sini kullanarak veritabanı kaynaklarını yönetme
CosmosClientbaşlatma. ,CosmosClientAzure Cosmos veritabanı hizmeti için istemci tarafı mantıksal temsili sağlar. Bu istemci, istekleri hizmete göre yapılandırmak ve çalıştırmak için kullanılır.client = new CosmosClientBuilder() .endpoint(AccountSettings.HOST) .key(AccountSettings.MASTER_KEY) // Setting the preferred location to Cosmos DB Account region // West US is just an example. User should set preferred location to the Cosmos DB region closest to the application .preferredRegions(Collections.singletonList("West US")) .consistencyLevel(ConsistencyLevel.EVENTUAL) .buildClient();CosmosDatabaseoluşturulurken.CosmosDatabaseResponse cosmosDatabaseResponse = client.createDatabaseIfNotExists(databaseName); database = client.getDatabase(cosmosDatabaseResponse.getProperties().getId());CosmosContaineroluşturulurken.CosmosContainerProperties containerProperties = new CosmosContainerProperties(containerName, "/lastName"); // Create container with 400 RU/s CosmosContainerResponse cosmosContainerResponse = database.createContainerIfNotExists(containerProperties, ThroughputProperties.createManualThroughput(400)); container = database.getContainer(cosmosContainerResponse.getProperties().getId());Yöntemini kullanarak öğe oluşturma
createItem.// Create item using container that we created using sync client // Use lastName as partitionKey for cosmos item // Using appropriate partition key improves the performance of database operations CosmosItemRequestOptions cosmosItemRequestOptions = new CosmosItemRequestOptions(); CosmosItemResponse<Family> item = container.createItem(family, new PartitionKey(family.getLastName()), cosmosItemRequestOptions);Nokta okumaları yöntemi kullanılarak gerçekleştirilir
readItem.try { CosmosItemResponse<Family> item = container.readItem(family.getId(), new PartitionKey(family.getLastName()), Family.class); double requestCharge = item.getRequestCharge(); Duration requestLatency = item.getDuration(); logger.info("Item successfully read with id {} with a charge of {} and within duration {}", item.getItem().getId(), requestCharge, requestLatency); } catch (CosmosException e) { logger.error("Read Item failed with", e); }JSON üzerinden SQL sorguları, yöntemi kullanılarak gerçekleştirilir
queryItems.// Set some common query options CosmosQueryRequestOptions queryOptions = new CosmosQueryRequestOptions(); //queryOptions.setEnableCrossPartitionQuery(true); //No longer necessary in SDK v4 // Set query metrics enabled to get metrics around query executions queryOptions.setQueryMetricsEnabled(true); CosmosPagedIterable<Family> familiesPagedIterable = container.queryItems( "SELECT * FROM Family WHERE Family.lastName IN ('Andersen', 'Wakefield', 'Johnson')", queryOptions, Family.class); familiesPagedIterable.iterableByPage(10).forEach(cosmosItemPropertiesFeedResponse -> { logger.info("Got a page of query result with {} items(s) and request charge of {}", cosmosItemPropertiesFeedResponse.getResults().size(), cosmosItemPropertiesFeedResponse.getRequestCharge()); logger.info("Item Ids {}", cosmosItemPropertiesFeedResponse .getResults() .stream() .map(Family::getId) .collect(Collectors.toList())); });
Uygulamayı çalıştırma
Bu adımda Azure portala dönerek bağlantı dizesi bilgilerinizi alın ve uç nokta bilgileriyle uygulamayı çalıştırın. Bu, uygulamanızın barındırılan veritabanıyla iletişim kurmasına olanak tanır.
git terminal penceresinde
cdkomutuyla örnek kod klasörüne gidin.cd azure-cosmos-java-getting-startedGit terminal penceresinde aşağıdaki komutu kullanarak gerekli Java paketlerini yükleyin.
mvn packageGit Terminal penceresinde, Java uygulamasını başlatmak için aşağıdaki komutu kullanın. (SYNCASYNCMODE '
syncı ile veyaasyncçalıştırmak istediğiniz örnek koda göre değiştirin, YOUR_COSMOS_DB_HOSTNAME, portaldan ALıNTı yapılan URI değeri ile değiştirin ve YOUR_COSMOS_DB_MASTER_KEY, portaldan alıntı yapılan birincil anahtarla değiştirin)mvn exec:java@SYNCASYNCMODE -DACCOUNT_HOST=YOUR_COSMOS_DB_HOSTNAME -DACCOUNT_KEY=YOUR_COSMOS_DB_MASTER_KEYTerminal penceresinde, FamilyDB veritabanının oluşturulduğunu belirten bir bildirim görüntülenir.
Uygulama, adında bir veritabanı oluşturur
AzureSampleFamilyDBUygulama, adı olan bir kapsayıcı oluşturur
FamilyContainerUygulama, nesne kimliklerini ve bölüm anahtarı değerini (örneğimizde soyadı olan) kullanarak nokta okuma işlemleri gerçekleştirir.
Uygulama, içindeki soyadı (' Andersen ', ' Wakefield ', ' Johnson ') olan tüm aileleri almak için öğeleri sorgular.
Uygulama, oluşturulan kaynakları silmez. Kaynakları temizlemek için portala dönün. Ücret oluşmaması için kaynakları hesabınızdan silin.
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:
Hesap gezinti Cosmos DB Ölçümler'i seçin.
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.

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:
Arama Azure portal kaynak grupları için arama ve seçimlerini kullanın.
Listeden bu hızlı başlangıç için oluşturduğunuz kaynak grubunu seçin.

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

Sonraki pencerede, silinecek kaynak grubunun adını girin ve Sil'i seçin.
Sonraki adımlar
bu hızlı başlangıçta, bir Azure Cosmos DB SQL apı hesabı oluşturmayı, Veri Gezgini kullanarak bir belge veritabanı ve kapsayıcı oluşturmayı ve aynı şeyi programlı bir şekilde yapmak için bir Java uygulamasını çalıştırmayı öğrendiniz. artık Azure Cosmos DB hesabınıza daha fazla veri aktarabilirsiniz.
Azure Cosmos DB'ye geçiş için kapasite planlaması yapmaya mı çalışıyorsunuz? Kapasite planlaması için mevcut veritabanı kümeniz hakkında bilgi kullanabilirsiniz.
- Mevcut veritabanı kümenizin sanal çekirdek ve sunucu sayısıyla ilgili tüm bilginiz varsa, sanal çekirdek veya vCPUS kullanarak istek birimlerini tahmin hakkında bilgi edinebilirsiniz
- Geçerli veritabanı iş yükünüz için tipik istek oranlarını biliyorsanız Azure Cosmos DB kapasite planlayıcısı kullanarak istek birimlerini tahmin hakkında bilgi edinin