Aracılığıyla paylaş


Azure Data Factory veya Synapse Analytics kullanarak Cassandra'dan veri kopyalama

GEÇERLİ OLDUĞU YERLER: Azure Data Factory Azure Synapse Analytics

Tavsiye

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

Bu makalede, Cassandra veritabanından veri kopyalamak için Azure Data Factory veya Synapse Analytics işlem hattında Kopyalama Etkinliği'nin nasıl kullanılacağı özetlenmiştir. Kopyalama etkinliğine genel bir bakış sunan kopyalama etkinliği genel bakışı makalesinin üzerine inşa eder.

Önemli

Cassandra bağlayıcısı sürüm 1.0 kaldırma aşamasındadır. Cassandra bağlayıcısını sürüm 1.0'dan 2.0'a yükseltmeniz önerilir.

Desteklenen özellikler

Bu Cassandra bağlayıcısı aşağıdaki özellikler için desteklenir:

Desteklenen özellikler Kızılötesi
Kopyalama etkinliği (kaynak/-) (1) (2)
Arama etkinliği (1) (2)

(1) Azure tümleştirme çalışma zamanı (2) Kendi barındırılan tümleştirme çalışma zamanı

Kaynak/havuz olarak desteklenen veri depolarının listesi için Desteklenen veri depoları tablosuna bakın.

Bu Cassandra bağlayıcısı özellikle şunları destekler:

  • Cassandra sürüm 2.0 için 3.x.x ve 4.x.x sürümleri.
  • Cassandra sürüm 1.0 için 2.x ve 3.x sürümleri.
  • Temel veya Anonim kimlik doğrulaması kullanarak verileri kopyalama.

Dikkat

Kendi Barındırılan Entegrasyon Çalışma Zamanı'nda çalıştırılan etkinlik için, Integration Runtime (IR) sürüm 3.7 ve üzeri ile birlikte Cassandra 3.x desteklenir.

Önkoşullar

Veri deponuz bir şirket içi ağ, Azure sanal ağı veya Amazon Sanal Özel Bulut içinde bulunuyorsa, şirket içinde barındırılan tümleştirme çalışma zamanını buna bağlanmak için yapılandırmanız gerekir.

Veri deponuz yönetilen bir bulut veri hizmetiyse Azure Integration Runtime'ı kullanabilirsiniz. Erişim, güvenlik duvarı kurallarında onaylanan IP'ler ile sınırlıysa Azure Integration Runtime IP'lerini izin verme listesine ekleyebilirsiniz.

Azure Data Factory'de yerleşik sanal ağ tümleştirme çalışma zamanı özelliğini kullanarak, kendinden barındırılan tümleştirme çalışma zamanı yüklemeden ve yapılandırmadan yerel ağa erişebilirsiniz.

Data Factory tarafından desteklenen ağ güvenlik mekanizmaları ve seçenekleri hakkında daha fazla bilgi için bkz . Veri erişim stratejileri.

Integration Runtime yerleşik bir Cassandra sürücüsü sağlar, bu nedenle Cassandra'dan/Cassandra'dan veri kopyalarken herhangi bir sürücüyü el ile yüklemeniz gerekmez.

Başlangıç Yapmak

Kopyalama etkinliğini bir işlem hattıyla gerçekleştirmek için aşağıdaki araçlardan veya SDK'lardan birini kullanabilirsiniz:

Kullanıcı arabirimini kullanarak Cassandra'ya bağlı hizmet oluşturma

Azure portalı kullanıcı arabiriminde Cassandra'ya bağlı bir hizmet oluşturmak için aşağıdaki adımları kullanın.

  1. Azure Data Factory veya Synapse çalışma alanınızda Yönet sekmesine göz atın ve Bağlı Hizmetler'i seçin, ardından Yeni'ye tıklayın:

  2. Cassandra'yı arayın ve Cassandra bağlayıcısını seçin.

    Cassandra bağlayıcısının ekran görüntüsü.

  3. Hizmet ayrıntılarını yapılandırın, bağlantıyı test edin ve yeni bağlı hizmeti oluşturun.

    Cassandra için bağlı hizmet yapılandırmasının ekran görüntüsü.

Bağlayıcı yapılandırma ayrıntıları

Aşağıdaki bölümlerde Cassandra bağlayıcısına özgü Data Factory varlıklarını tanımlamak için kullanılan özelliklerle ilgili ayrıntılar sağlanır.

Bağlı hizmet özellikleri

Cassandra bağlı hizmeti için aşağıdaki özellikler desteklenir:

Mülk Açıklama Gerekli
tür Tür özelliği şu şekilde ayarlanmalıdır: Cassandra Evet
Sürüm Belirttiğiniz sürüm. Sürüm 2.0 için evet.
ev sahibi Cassandra sunucularının bir veya daha fazla IP adresi veya ana bilgisayar adı.
Tüm sunuculara eşzamanlı olarak bağlanmak için ip adreslerinin veya konak adlarının virgülle ayrılmış bir listesini belirtin.
Evet
liman Cassandra sunucusunun istemci bağlantılarını dinlemek için kullandığı TCP bağlantı noktası. Hayır (varsayılan değer 9042'dir)
kimlik doğrulama türü Cassandra veritabanına bağlanmak için kullanılan kimlik doğrulama türü.
İzin verilen değerler şunlardır: Temel ve Anonim.
Evet
kullanıcı adı Kullanıcı hesabı için kullanıcı adını belirtin. Evet, authenticationType Temel olarak ayarlandıysa.
şifre Kullanıcı hesabı için parola belirtin. Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin veya Azure Key Vault'ta depolanan bir gizli diziye başvurun. Evet, authenticationType Temel olarak ayarlandıysa.
connectVia Veri deposuna bağlanmak için kullanılacak Integration Runtime. Önkoşullar bölümünden daha fazla bilgi edinin. Belirtilmezse, varsayılan Azure Integration Runtime'ı kullanır. Hayır

Dikkat

Şu anda TLS kullanılarak Cassandra bağlantısı desteklenmiyor.

Örnek: sürüm 2.0

{
    "name": "CassandraLinkedService",
    "properties": {
        "type": "Cassandra",
        "version": "2.0", 
        "typeProperties": {
            "host": "<host>",
            "authenticationType": "Basic",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Örnek: sürüm 1.0

{
    "name": "CassandraLinkedService",
    "properties": {
        "type": "Cassandra",
        "typeProperties": {
            "host": "<host>",
            "authenticationType": "Basic",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Veri kümesi özellikleri

Veri kümelerini tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için veri kümeleri makalesine bakın. Bu bölümde Cassandra veri kümesi tarafından desteklenen özelliklerin listesi sağlanır.

Cassandra'dan veri kopyalamak için veri kümesinin tür özelliğini CassandraTable olarak ayarlayın. Aşağıdaki özellikler desteklenir:

Mülk Açıklama Gerekli
tür Veri kümesinin tür özelliği şu şekilde ayarlanmalıdır: CassandraTable Evet
anahtar alanı Cassandra veritabanındaki anahtar alanının veya şemanın adı. Hayır ("CassandraSource" için "sorgu" belirtilirse)
tabloAdı Cassandra veritabanındaki tablonun adı. Hayır ("CassandraSource" için "sorgu" belirtilirse)

Örnek:

{
    "name": "CassandraDataset",
    "properties": {
        "type": "CassandraTable",
        "typeProperties": {
            "keySpace": "<keyspace name>",
            "tableName": "<table name>"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Cassandra linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Kopyalama etkinliğinin özellikleri

Etkinlikleri tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için Boru Hatları makalesine bakın. Bu bölümde Cassandra kaynağı tarafından desteklenen özelliklerin listesi sağlanır.

Kaynak olarak Cassandra

Cassandra'dan veri kopyalamak için 2.0 sürümünü kullanıyorsanız kopyalama etkinliğindeki kaynak türünü CassandraSource olarak ayarlayın. Kopyalama etkinliği kaynağı bölümünde aşağıdaki özellikler desteklenir:

Mülk Açıklama Gerekli
tür Kopyalama etkinliği kaynağının type özelliği şu şekilde ayarlanmalıdır: CassandraSource Evet
sorgu Verileri okumak için özel sorguyu kullanın. CQL sorgusu, bkz. CQL başvurusu. Hayır (veri kümesinde "tableName" ve "keyspace" belirtilirse).
tutarlılık düzeyi Tutarlılık düzeyi, istemci uygulamasına veri döndürmeden önce okuma isteğine kaç çoğaltmanın yanıt vermesi gerektiğini belirtir. Cassandra, okuma isteğini karşılamak için verilerin belirtilen sayıda replika içerdiğini kontrol eder. Ayrıntılar için bkz . Veri tutarlılığını yapılandırma.

İzin verilen değerler şunlardır: BİR, İKİ, ÜÇ, QUORUM, TÜMÜ, LOCAL_QUORUM, EACH_QUORUM ve LOCAL_ONE.
Hayır (varsayılan değer )ONE

Örnek:

"activities":[
    {
        "name": "CopyFromCassandra",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Cassandra input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "CassandraSource",
                "query": "select id, firstname, lastname from mykeyspace.mytable",
                "consistencyLevel": "one"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Cassandra'dan veri kopyalamak için sürüm 1.0 kullanıyorsanız kopyalama etkinliğindeki kaynak türünü CassandraSource olarak ayarlayın. Kopyalama etkinliği kaynağı bölümünde aşağıdaki özellikler desteklenir:

Mülk Açıklama Gerekli
tür Kopyalama etkinliği kaynağının type özelliği şu şekilde ayarlanmalıdır: CassandraSource Evet
sorgu Verileri okumak için özel sorguyu kullanın. SQL-92 sorgusu veya CQL sorgusu. Bkz. CQL referansı.

SQL sorgusu kullanırken, sorgulamak istediğiniz tabloyu temsil etmek için keyspace name.table name değerini belirtin.
Hayır (veri kümesinde "tableName" ve "keyspace" belirtilirse).
tutarlılık düzeyi Tutarlılık düzeyi, istemci uygulamasına veri döndürmeden önce okuma isteğine kaç çoğaltmanın yanıt vermesi gerektiğini belirtir. Cassandra, okuma isteğini karşılamak için verilerin belirtilen sayıda replika içerdiğini kontrol eder. Ayrıntılar için bkz . Veri tutarlılığını yapılandırma.

İzin verilen değerler şunlardır: BİR, İKİ, ÜÇ, QUORUM, TÜMÜ, LOCAL_QUORUM, EACH_QUORUM ve LOCAL_ONE.
Hayır (varsayılan değer )ONE

Cassandra için veri türü eşlemesi

Cassandra'dan veri kopyalarken, Cassandra veri türlerinden hizmet içinde dahili olarak kullanılan ara veri türlerine aşağıdaki eşlemeler kullanılır. Kopyalama etkinliğinin kaynak şemayı ve veri türünü havuza nasıl eşlediğini öğrenmek için bkz . Şema ve veri türü eşlemeleri .

Cassandra veri türü Ara hizmet veri türü (sürüm 2.0 için) Ara hizmet veri türü (sürüm 1.0 için)
ASCII Dize Dize
BIGINT Int64 Int64
BLOB (İkili Büyük Nesne) Bayt[] Bayt[]
boolean Boolean (Boole Mantığı) Boolean (Boole Mantığı)
TARİH Tarih ve Saat Tarih ve Saat
ONDALIK Ondalık Ondalık
ÇİFT İki kat İki kat
yüzmek Bekâr Bekâr
INET Dize Dize
INT Int32 Int32
SMALLINT (Küçük Tamsayı) Kısa Int16
METİN Dize Dize
ZAMAN DAMGASI Tarih ve Saat Tarih ve Saat
TIMEUUID Kılavuz Kılavuz
TINYINT SByte Int16
UUID Kılavuz Kılavuz
VARCHAR Dize Dize
VARINT Ondalık Ondalık

Dikkat

Sürüm 1.0'ın altındaki koleksiyon türleri (harita, küme, liste vb.) için Sürüm 1.0 kullanırken sanal tablo kullanarak Cassandra koleksiyon türleriyle çalışma bölümüne bakın.

Kullanıcı tanımlı türler desteklenmez.

İkili Sütun ve Dize Sütunu uzunluklarının uzunluğu 4000'den büyük olamaz.

Sürüm 2.0 kullanırken koleksiyonlarla çalışma

Cassandra veritabanınızdan veri kopyalamak için sürüm 2.0 kullanırken koleksiyon türleri için sanal tablo oluşturulmaz. Kaynak tabloyu havuza özgün türünde JSON biçiminde kopyalayabilirsiniz.

Örnek

Örneğin, aşağıdaki "ExampleTable", "pk_int" adlı bir tamsayı birincil anahtar sütunu, değer adlı bir metin sütunu, liste sütunu, harita sütunu ve bir küme sütunu ("StringSet" adlı) içeren bir Cassandra veritabanı tablosudur.

pk_int Değer Liste Harita DizeKümesi
1 "örnek değer 1" ["1", "2", "3"] {"S1": "a", "S2": "b"} {"A", "B", "C"}
3 "örnek değer 3" ["100", "101", "102", "105"] {"S1": "t"} {"A", "E"}

Veriler doğrudan bir kaynak tablodan okunabilir ve sütun değerleri, aşağıdaki tabloda gösterildiği gibi özgün türlerinde JSON biçiminde korunur:

pk_int Değer Liste Harita DizeKümesi
1 "örnek değer 1" ["1", "2", "3"] {"S1": "a", "S2": "b"} ["A", "B", "C"]
3 "örnek değer 3" ["100", "101", "102", "105"] {"S1": "t"} ["A", "E"]

Sürüm 1.0 kullanırken sanal tablo kullanarak koleksiyonlarla çalışma

Hizmet, Cassandra veritabanınıza bağlanmak ve bu veritabanından veri kopyalamak için yerleşik bir ODBC sürücüsü kullanır. Harita, küme ve liste gibi koleksiyon türleri için sürücü verileri karşılık gelen sanal tablolara yeniden normalleştirir. Özellikle, bir tablo herhangi bir koleksiyon sütunu içeriyorsa, sürücü aşağıdaki sanal tabloları oluşturur:

  • Koleksiyon sütunları dışında gerçek tabloyla aynı verileri içeren temel tablo. Temel tablo, temsil ettiği gerçek tabloyla aynı adı kullanır.
  • İç içe verileri genişleten her koleksiyon sütunu için bir sanal tablo. Koleksiyonları temsil eden sanal tablolar, gerçek tablonun adı, ayırıcı "vt" ve sütunun adı kullanılarak adlandırılır.

Sanal tablolar gerçek tablodaki verilere başvurur ve sürücünün denormalize edilmiş verilere erişmesini sağlar. Ayrıntılar için Örnek bölüme bakın. Sanal tabloları sorgulayıp birleştirerek Cassandra koleksiyonlarının içeriğine erişebilirsiniz.

Örnek

Örneğin, aşağıdaki "ExampleTable", "pk_int" adlı bir tamsayı birincil anahtar sütunu, değer adlı bir metin sütunu, liste sütunu, harita sütunu ve bir küme sütunu ("StringSet" adlı) içeren bir Cassandra veritabanı tablosudur.

pk_int Değer Liste Harita DizeKümesi
1 "örnek değer 1" ["1", "2", "3"] {"S1": "a", "S2": "b"} {"A", "B", "C"}
3 "örnek değer 3" ["100", "101", "102", "105"] {"S1": "t"} {"A", "E"}

Sürücü, bu tek tabloyu temsil eden birden çok sanal tablo oluşturur. Sanal tablolardaki yabancı anahtar sütunları, gerçek tablodaki birincil anahtar sütunlarına başvurur ve sanal tablo satırının hangi gerçek tablo satırına karşılık geldiğini belirtir.

İlk sanal tablo, aşağıdaki tabloda "ExampleTable" adlı temel tablodur:

pk_int Değer
1 "örnek değer 1"
3 "örnek değer 3"

Temel tablo, bu tablodan atlanan ve diğer sanal tablolarda genişletilen koleksiyonlar dışında özgün veritabanı tablosuyla aynı verileri içerir.

Aşağıdaki tablolarda List, Map ve StringSet sütunlarındaki verileri yeniden normalleştiren sanal tablolar gösterilmektedir. "_index" veya "_key" ile biten adlara sahip sütunlar, verilerin özgün liste veya harita içindeki konumunu gösterir. "_value" ile biten adlara sahip sütunlar, koleksiyondaki genişletilmiş verileri içerir.

Tablo "ExampleTable_vt_List":

pk_int Liste_indeksi Liste Değeri
1 0 1
1 1 2
1 2 3
3 0 100
3 1 101
3 2 102
3 3 103

Tablo "ExampleTable_vt_Map":

pk_int Harita Anahtarı Harita_değeri
1 S1 A
1 S2 b
3 S1 t

Tablo "ExampleTable_vt_StringSet":

pk_int StringSet_değer
1 A
1 B
1 C
3 A
3 E

Arama faaliyeti özellikleri

Özellikler hakkında ayrıntılı bilgi edinmek için Arama etkinliği'ne bakın.

Cassandra bağlayıcısını yükseltme

Cassandra bağlayıcısını yükseltmenize yardımcı olacak adımlar şunlardır:

  1. Bağlı hizmeti düzenle sayfasında sürüm 2.0'ı seçin ve Bağlı hizmet özelliklerine başvurarak bağlı hizmeti yapılandırın.

  2. Sürüm 2.0'da, query kopyalama etkinliği kaynağında sql-92 sorgusunu değil yalnızca CQL sorgusunu destekler. Daha fazla bilgi için bkz. Kaynak olarak Cassandra.

  3. Sürüm 2.0 için veri türü eşlemesi, sürüm 1.0'dan farklıdır. En son veri türü eşlemesini öğrenmek için bkz. Cassandra için veri türü eşleme.

Cassandra sürüm 2.0 ile sürüm 1.0 arasındaki farklar

Cassandra bağlayıcısı sürüm 2.0 yeni işlevler sunar ve sürüm 1.0'ın çoğu özelliğiyle uyumludur. Aşağıdaki tabloda sürüm 2.0 ile sürüm 1.0 arasındaki özellik farklılıkları gösterilmektedir.

Sürüm 2.0 Sürüm 1.0
CQL sorgusunu destekleyin. SQL-92 sorgusunu veya CQL sorgusunu destekleyin.
Veri kümesinde keyspace ve tableName'i ayrı ayrı belirtme desteği. Veri setinde tablo adını elle girerken keyspace düzenleme desteği sağlayın.
Koleksiyon türleri için sanal tablo oluşturulmaz. Daha fazla bilgi için bkz. Sürüm 2.0 kullanırken koleksiyonlarla çalışma. Sanal tablolar koleksiyon türleri için oluşturulur. Daha fazla bilgi için bkz. Sürüm 1.0 kullanırken sanal tablo kullanarak Cassandra koleksiyon türleriyle çalışma.
Cassandra veri türlerinden ara hizmet veri türüne aşağıdaki eşlemeler kullanılır.

SMALLINT -> Kısa
TINYINT -> SByte
Cassandra veri türlerinden ara hizmet veri türüne aşağıdaki eşlemeler kullanılır.

SMALLINT -> Int16
TINYINT -> Int16

Kopyalama etkinliği tarafından kaynak ve havuz olarak desteklenen veri depolarının listesi için bkz . desteklenen veri depoları.