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

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

Bahşiş

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 genel bakış sunan kopyalama etkinliğine genel bakış makalesini oluşturur.

Desteklenen özellikler

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

Desteklenen özellikler IR
Kopyalama etkinliği (kaynak/-) ① ②
Arama etkinliği ① ②

(1) Azure tümleştirme çalışma zamanı (2) Şirket içinde 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'nın 2.x ve 3.x sürümleri.
  • Temel veya Anonim kimlik doğrulaması kullanarak verileri kopyalama.

Dekont

Şirket İçinde Barındırılan Tümleştirme Çalışma Zamanı'nda çalıştırılan etkinlik için, IR sürüm 3.7 ve üzeri sürümden itibaren 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.

Şirket içinde barındırılan tümleştirme çalışma zamanı yüklemeden ve yapılandırmadan şirket içi ağa erişmek için Azure Data Factory'deki yönetilen sanal ağ tümleştirme çalışma zamanı özelliğini de kullanabilirsiniz.

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şlarken

İşlem hattıyla Kopyalama etkinliği 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.

    Screenshot of the Cassandra connector.

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

    Screenshot of linked service configuration for Cassandra.

Bağlan veya 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:

Özellik Açıklama Gerekli
type Tür özelliği şu şekilde ayarlanmalıdır: Cassandra Evet
host 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
port Cassandra sunucusunun istemci bağlantılarını dinlemek için kullandığı TCP bağlantı noktası. Hayır (varsayılan değer 9042'dir)
authenticationType Cassandra veritabanına bağlanmak için kullanılan kimlik doğrulama türü.
İzin verilen değerler şunlardır: Temel ve Anonim.
Evet
username Kullanıcı hesabı için kullanıcı adını belirtin. Evet, authenticationType Temel olarak ayarlandıysa.
password 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. No

Dekont

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

Örnek:

{
    "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:

Özellik Açıklama Gerekli
type 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)
tableName 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 İşlem 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 kopyalama etkinliğindeki kaynak türünü CassandraSource olarak ayarlayın. Kopyalama etkinliği kaynağı bölümünde aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
type Kopyalama etkinliği kaynağının type özelliği şu şekilde ayarlanmalıdır: CassandraSource Evet
query Verileri okumak için özel sorguyu kullanın. SQL-92 sorgusu veya CQL sorgusu. Bkz. CQL başvurusu.

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).
consistencyLevel 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 veriler için belirtilen sayıda çoğaltmayı denetler. Ayrıntılar için bkz . Veri tutarlılığını yapılandırma.

İzin verilen değerler şunlardır: BİR, İkİ, ÜÇ, ÇEKIRDEK, 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"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

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ü
ASCII String
BİGİNT Int64
BLOB Bayt[]
BOOLEAN Boolean
ON -DA -LIK Decimal
ÇİFT Çift
FLOAT Tekli
INET String
INT Int32
METİN String
TIMESTAMP DateTime
TIMEUUID Guid
UUID Guid
VARCHAR String
VARINT Ondalık

Dekont

Koleksiyon türleri (harita, küme, liste vb.) için 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.

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 normalleştirilmiş 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 List Harita StringSet
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 List_index List_value
1 0 1
1 Kategori 1 2
1 2 3
3 0 100
3 1 101
3 2 102
3 3 103

Tablo "ExampleTable_vt_Map":

pk_int Map_key Map_value
1 S1 A
1 S2 b
3 S1 t

Tablo "ExampleTable_vt_StringSet":

pk_int StringSet_value
1 A
1 K
1 C
3 A
3 E

Arama etkinliği özellikleri

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

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