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.
Mümkün olduğunda, karma küme yapılandırarak mevcut kümenizdeki verileri Apache Cassandra için Azure Yönetilen Örneği'ne geçirmek için Apache Cassandra yerel çoğaltmasını kullanmanızı öneririz. Bu yaklaşım, kaynak veri merkezinizdeki verileri yeni yönetilen örnek veri merkezinize çoğaltmak için Apache Cassandra'nın dedikodu protokollerini kullanır. Ancak, kaynak veritabanı sürümünüzün uyumlu olmadığı veya karma küme kurulumunun mümkün olmadığı bazı senaryolar olabilir.
Bu öğreticide, Cassandra Spark Bağlayıcısı'nı ve Apache Spark için Azure Databricks'i kullanarak verileri çevrimdışı bir şekilde Apache Cassandra için Azure Yönetilen Örneğine geçirme açıklanmaktadır.
Önkoşullar
Azure portalını veya Azure CLI'yı kullanarak Apache Cassandra kümesi için Azure Yönetilen Örneği sağlayın ve CQLSH ile kümenize bağlanabildiğinizden emin olun.
Yönetilen Cassandra sanal ağınızda bir Azure Databricks hesabı sağlayın. Kaynak Cassandra kümenize de ağ erişimi olduğundan emin olun.
Anahtar alanını/tablo düzenini kaynak Cassandra veritabanınızdan hedef Cassandra Yönetilen Örnek veritabanınıza zaten geçirdiğinizden emin olun.
Azure Databricks kümesi sağlama
Spark 3.0'ı destekleyen Databricks çalışma zamanı sürüm 7.5'i seçmenizi öneririz.
Bağımlılık ekleme
Hem yerel hem de Azure Cosmos DB Cassandra uç noktalarına bağlanmak için kümenize Apache Spark Cassandra Bağlayıcı kitaplığını ekleyin. Kümenizde KitaplıklarYeni>> Yükle'yi seçin ve ardından Maven koordinatlarını ekleyin.com.datastax.spark:spark-cassandra-connector-assembly_2.12:3.0.0
Yükle'yi seçin ve yükleme tamamlandığında kümeyi yeniden başlatın.
Not
Cassandra Bağlayıcı kitaplığı yüklendikten sonra Databricks kümesini yeniden başlattığınızdan emin olun.
Geçiş için Scala Not Defteri oluşturma
Databricks'te Scala Not Defteri oluşturun. Kaynak ve hedef Cassandra yapılandırmalarınızı ilgili kimlik bilgileriyle, kaynak ve hedef anahtar alanlarıyla tablolarla değiştirin. Ardından aşağıdaki kodu çalıştırın:
import com.datastax.spark.connector._
import com.datastax.spark.connector.cql._
import org.apache.spark.SparkContext
// source cassandra configs
val sourceCassandra = Map(
"spark.cassandra.connection.host" -> "<Source Cassandra Host>",
"spark.cassandra.connection.port" -> "9042",
"spark.cassandra.auth.username" -> "<USERNAME>",
"spark.cassandra.auth.password" -> "<PASSWORD>",
"spark.cassandra.connection.ssl.enabled" -> "false",
"keyspace" -> "<KEYSPACE>",
"table" -> "<TABLE>"
)
//target cassandra configs
val targetCassandra = Map(
"spark.cassandra.connection.host" -> "<Source Cassandra Host>",
"spark.cassandra.connection.port" -> "9042",
"spark.cassandra.auth.username" -> "<USERNAME>",
"spark.cassandra.auth.password" -> "<PASSWORD>",
"spark.cassandra.connection.ssl.enabled" -> "true",
"keyspace" -> "<KEYSPACE>",
"table" -> "<TABLE>",
//throughput related settings below - tweak these depending on data volumes.
"spark.cassandra.output.batch.size.rows"-> "1",
"spark.cassandra.output.concurrent.writes" -> "1000",
"spark.cassandra.connection.remoteConnectionsPerExecutor" -> "10",
"spark.cassandra.concurrent.reads" -> "512",
"spark.cassandra.output.batch.grouping.buffer.size" -> "1000",
"spark.cassandra.connection.keep_alive_ms" -> "600000000"
)
//Read from source Cassandra
val DFfromSourceCassandra = sqlContext
.read
.format("org.apache.spark.sql.cassandra")
.options(sourceCassandra)
.load
//Write to target Cassandra
DFfromSourceCassandra
.write
.format("org.apache.spark.sql.cassandra")
.options(targetCassandra)
.mode(SaveMode.Append) // only required for Spark 3.x
.save
Not
Her satırın özgün writetime değerini korumanız gerekiyorsa cassandra migrator örneğine bakın.