Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Yapılandırılmamış verileri depolamak, yönetmek ve sorgulamak için Python için Apache Cassandra için Azure Cosmos DB istemci kitaplığını kullanmaya başlayın. Yeni bir hesap oluşturmak, Python istemci kitaplığı yüklemek, hesaba bağlanmak, yaygın işlemler gerçekleştirmek ve son örnek verilerinizi sorgulamak için bu kılavuzdaki adımları izleyin.
API başvuru belgeleri | Kitaplık kaynak kodu | Paket (PyPI)
Önkoşullar
Azure aboneliği
- Eğer bir Azure aboneliğiniz yoksa, başlamadan önce ücretsiz bir hesap oluşturun.
Azure Cloud Shell'deAzure CLI'nın en son sürümü.
- CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız komutunu kullanarak
az loginAzure CLI'da oturum açın.
- CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız komutunu kullanarak
- Python 3.12 veya üzeri
Kurulum
İlk olarak, bu kılavuz için hesap ve geliştirme ortamını ayarlayın. Bu bölümde hesap oluşturma, kimlik bilgilerini alma ve geliştirme ortamınızı hazırlama işlemi boyunca size yol gösterilir.
Hesap oluştur
Apache Cassandra hesabı için bir API oluşturarak başlayın. Hesap oluşturulduktan sonra anahtar alanını ve tablo kaynaklarını oluşturun.
Henüz bir hedef kaynak grubunuz yoksa, aboneliğinizde yeni bir kaynak grubu oluşturmak için komutunu kullanın
az group create.az group create \ --name "<resource-group-name>" \ --location "<location>"Varsayılan ayarlarla
az cosmosdb createApache Cassandra için yeni bir Azure Cosmos DB hesabı oluşturmak için komutunu kullanın.az cosmosdb create \ --resource-group "<resource-group-name>" \ --name "<account-name>" \ --locations "regionName=<location>" \ --capabilities "EnableCassandra"az cosmosdb cassandra keyspace createkullanarakcosmicworksadlı yeni bir anahtar alanı oluşturun.az cosmosdb cassandra keyspace create \ --resource-group "<resource-group-name>" \ --account-name "<account-name>" \ --name "cosmicworks"Çok satırlı bash komutunu kullanarak şemanızı temsil eden yeni bir JSON nesnesi oluşturun. Ardından komutunu kullanarak
az cosmosdb cassandra table createadlıproductsyeni bir tablo oluşturun.schemaJson=$(cat <<EOF { "columns": [ { "name": "id", "type": "text" }, { "name": "name", "type": "text" }, { "name": "category", "type": "text" }, { "name": "quantity", "type": "int" }, { "name": "price", "type": "decimal" }, { "name": "clearance", "type": "boolean" } ], "partitionKeys": [ { "name": "id" } ] } EOF )az cosmosdb cassandra table create \ --resource-group "<resource-group-name>" \ --account-name "<account-name>" \ --keyspace-name "cosmicworks" \ --name "product" \ --schema "$schemaJson"
Kimlik bilgilerini alma
Şimdi, son oluşturulan hesaba bağlantı oluşturmak için kullanılacak istemci kitaplığının parolasını alın.
Hesabın iletişim noktası ve kullanıcı adını almak için
az cosmosdb showkullanın.az cosmosdb show \ --resource-group "<resource-group-name>" \ --name "<account-name>" \ --query "{username:name,contactPoint:documentEndpoint}"Önceki komutların çıkışındaki
contactPointveusernameözelliklerinin değerlerini kaydedin. Bu özelliklerin değerleri, bu kılavuzun devamında kitaplığa bağlanmak için kullandığınız kişi noktası ve kullanıcı adıdır .az cosmosdb keys list, hesabın anahtarlarını almak için kullanın.az cosmosdb keys list \ --resource-group "<resource-group-name>" \ --name "<account-name>" \ --type "keys"Önceki komutların çıkışından
primaryMasterKeyözelliğinin değerini kaydedin. Bu özelliğin değeri, bu kılavuzun ilerleyen bölümlerinde kitaplığa bağlanmak için kullandığınız paroladır .
Geliştirme ortamını hazırlama
Ardından geliştirme ortamınızı yeni bir proje ve istemci kitaplığıyla yapılandırın. Bu adım, bu kılavuzun geri kalanına geçmeden önce gereken son önkoşuldur.
Boş bir klasörde başlayın.
cassandra-driverPaketi Python Paket Dizini'nden (PyPI) içeri aktarın.pip install cassandra-driverapp.py dosyasını oluşturun.
Nesne modeli
| Açıklama | |
|---|---|
Cluster |
Kümeye belirli bir bağlantıyı temsil eder |
Kod örnekleri
İstemcinin kimliğini doğrulama
Bu kılavuzda daha önce toplanan kimlik bilgilerini kullanarak istemcinin kimliğini doğrulayarak başlayın.
tümleşik geliştirme ortamınızda (IDE) app.py dosyasını açın.
Modülden aşağıdaki türleri içeri aktarın
cassandra-driver:cassandra.cluster.Clustercassandra.auth.PlainTextAuthProvider
from cassandra.cluster import Cluster from cassandra.auth import PlainTextAuthProviderModülden aşağıdaki türleri içeri aktarın
ssl:ssl.PROTOCOL_TLS_CLIENTssl.SSLContextssl.CERT_NONE
from ssl import PROTOCOL_TLS_CLIENT, SSLContext, CERT_NONEBu kılavuzun önceki bölümlerinde toplanan kimlik bilgileri için dize değişkenleri oluşturun. Değişkenleri
username,passwordvecontactPointolarak adlandırın.username = "<username>" password = "<password>" contactPoint = "<contact-point>"SSLContextadlıssl_contextyeni bir değişken oluşturarak, protokolPROTOCOL_TLS_CLIENTolarak ayarlayın, konak adı denetimini devre dışı bırakın ve doğrulama modunu olarakCERT_NONEayarlayın.ssl_context = SSLContext(PROTOCOL_TLS_CLIENT) ssl_context.check_hostname = False ssl_context.verify_mode = CERT_NONEÖnceki adımlarda belirtilen kimlik bilgileriyle yeni
PlainTextAuthProviderbir nesne oluşturun. Sonucu adlıauth_providerbir değişkende depolayın.auth_provider = PlainTextAuthProvider(username=username, password=password)Önceki adımlarda oluşturulan kimlik bilgilerini ve yapılandırma değişkenlerini kullanarak bir
Clusternesne oluşturun. Sonucu adlıclusterbir değişkende depolayın.cluster = Cluster([contactPoint], port=10350, auth_provider=auth_provider, ssl_context=ssl_context)Kümeye bağlanın.
session = cluster.connect("cosmicworks")
Uyarı
Kimlik doğrulamasını basitleştirmek için bu kılavuzda tam aktarım katmanı güvenliği (TLS) doğrulaması devre dışı bırakılmıştır. Üretim dağıtımları için doğrulamayı tam olarak etkinleştirin.
Verileri ekleme ve güncelleme
Ardından, yeni verileri bir tabloya ekle. Yükseltme, aynı verilerin tabloda zaten var olup olmadığına bağlı olarak verilerin uygun şekilde oluşturulmasını veya değiştirilmesini sağlar.
Yeni satır eklemek için Cassandra Sorgu Dili (CQL) sorgusuyla adlı
insertQueryyeni bir dize değişkeni oluşturun.insertQuery = """ INSERT INTO product (id, name, category, quantity, price, clearance) VALUES (%(id)s, %(name)s, %(category)s, %(quantity)s, %(price)s, %(clearance)s) """Yeni bir ürünün çeşitli özelliklerine sahip yeni bir nesne oluşturun ve adlı
paramsbir değişkende depolayın.params = { "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "name": "Yamba Surfboard", "category": "gear-surf-surfboards", "quantity": 12, "price": 850.00, "clearance": False }Sorguyu
executebelirtilen parametrelerle çalıştırmak için işlevini kullanın.session.execute(insertQuery, params)
Veriyi oku
Ardından, tabloya daha önce yüklenmiş olan verileri okuyun.
Aynı
readQueryalana sahip öğelerle eşleşen bir CQL sorgusuyla adlıidyeni bir dize değişkeni oluşturun.readQuery = "SELECT * FROM product WHERE id = %s LIMIT 1"Bu kılavuzun önceki bölümlerinde oluşturulan ürünle aynı değere sahip adlı
idbir dize değişkeni oluşturun.id = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"executeişlevini,readQuerydeğişkenini bağımsız değişken olarak geçirerek depolananidsorgusunu çalıştırmak için kullanın. Sonucu adlıreadResultsbir değişkende depolayın.readResults = session.execute(readQuery, (id,))İşlevi
onekullanarak beklenen tek sonucu alın. Bu tek sonucu adlımatchedProductbir değişkende depolayın.matchedProduct = readResults.one()
Sorgu verileri
Son olarak, tablodaki belirli bir filtreyle eşleşen tüm verileri bulmak için bir sorgu kullanın.
"
findQueryvecategoryadında, CQL sorgusu ve gerekli parametrelerle dize değişkenleri oluşturun."findQuery = "SELECT * FROM product WHERE category = %s ALLOW FILTERING" category = "gear-surf-surfboards"Birden çok sonucu sorgulamak için iki dize değişkenini
executeve işlevini kullanın. Bu sorgunun sonucunu adlıfindResultsbir değişkende depolayın.findResults = session.execute(findQuery, (category,))Sorgu sonuçlarını yinelemek için bir
fordöngü kullanın.for row in findResults: # Do something here with each result
Kodu çalıştır
Uygulama dizininizde bir terminal kullanarak yeni oluşturulan uygulamayı çalıştırın.
python app.py
Kaynakları temizle
Hesaba artık ihtiyacınız kalmadığında, kaynağı silerek hesabı Azure aboneliğinizden kaldırın.
az cosmosdb delete \
--resource-group "<resource-group-name>" \
--name "<account-name>"