Azure Data Factory veya Synapse Analytics kullanarak Spark'tan veri kopyalama

ŞUNLARA UYGULANIR: Azure Data Factory Azure Synapse Analytics

Tavsiye

Microsoft Fabric'daki Data Factory, daha basit bir mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip yeni nesil Azure Data Factory. Veri tümleştirmeyi yeni kullanmaya başladıysanız Fabric Data Factory ile başlayın. Mevcut ADF iş yükleri veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltebilir.

Bu makalede, Spark'tan veri kopyalamak için bir Azure Data Factory veya Synapse Analytics işlem hattında Kopyalama Etkinliğinin nasıl kullanılacağı özetlenmiştir. Kopyalama etkinliğine genel bir bakış sunan kopyalama etkinliği genel bakış makalesine dayanır.

Önemli

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

Desteklenen özellikler

Bu Spark 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) Yerel barındırılan tümleştirme çalışma zamanı

Kopyalama etkinliği tarafından kaynak/havuz olarak desteklenen veri depolarının listesi için Desteklenen veri depoları tablosuna bakın.

Hizmet, bağlantıyı etkinleştirmek için yerleşik bir sürücü sağlar, bu nedenle bu bağlayıcıyı kullanarak herhangi bir sürücüyü el ile yüklemeniz gerekmez.

Önkoşullar

Veri deponuz bir yerel ağ, Azure sanal ağ veya Amazon Sanal Özel Bulut içinde bulunuyorsa, ona bağlanmak için kendinden barındırılan bir tümleştirme çalışma zamanı 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, izin verme listesine Azure Integration Runtime IP ekleyebilirsiniz.

Şirket içi ağa erişmek için, şirket içinde barındırılan tümleştirme çalışma zamanı yüklemeden ve yapılandırmadan Azure Data Factory 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.

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 Spark'a bağlı hizmet oluşturma

Azure portalı kullanıcı arabiriminde Spark'a 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ızdaki Yönet sekmesine göz atın ve Bağlı Hizmetler'i seçin, ardından Yeni'ye tıklayın:

    Azure Data Factory UI ile yeni bir bağlı hizmet oluşturma ekranının ekran görüntüsü.

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

    Spark 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.

    Spark 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, Spark 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

Spark bağlayıcısı artık 2.0 sürümünü destekliyor. Spark bağlayıcısı sürümünüzü sürüm 1.0'dan yükseltmek için bu bölüme bakın. Özellik ayrıntıları için ilgili bölümlere bakın.

Sürüm 2.0

Spark bağlı hizmet sürüm 2.0 için aşağıdaki özellikler desteklenir:

Mülkiyet Açıklama Gerekli
tür Tür özelliği şu şekilde ayarlanmalıdır: Spark Evet
Sürüm Belirttiğiniz sürüm. Bu durumda değer 2.0 olur. Evet
ev sahibi Spark sunucusunun IP adresi veya ana bilgisayar adı Evet
liman Spark sunucusunun istemci bağlantılarını dinlemek için kullandığı TCP bağlantı noktası. Azure HDInsight bağlanırsanız bağlantı noktasını 443 olarak belirtin. Evet
sunucu türü Spark sunucusunun türü.
İzin verilen değer: SparkThriftServer
Hayı
thriftTaşımaProtokolü Thrift katmanında kullanılacak aktarım protokolü.
İzin verilen değer: HTTP
Hayı
kimlik doğrulama türü Spark sunucusuna erişmek için kullanılan kimlik doğrulama yöntemi.
İzin verilen değerler şunlardır: Anonymous, UsernameAndPassword, WindowsAzureHDInsightService
Evet
kullanıcı adı Spark Server'a erişmek için kullandığınız kullanıcı adı. Hayı
şifre Kullanıcıya karşılık gelen parola. Bu alanı güvenli bir şekilde depolamak için SecureString olarak işaretleyin veya Azure Key Vault içinde depolanan bir gizli anahtara referans verin. Hayı
httpPath Spark sunucusuna karşılık gelen kısmi URL.
WindowsAzureHDInsightService kimlik doğrulama türü için varsayılan değer olur /sparkhive2.
Hayı
SSL'yi etkinleştir Sunucu bağlantılarının TLS kullanılarak şifrelenip şifrelenmediğini belirtir. Varsayılan değer true değeridir. Hayı
Sunucu Sertifikası Doğrulamasını Etkinleştir Bağlandığınızda sunucu SSL sertifika doğrulamasının etkinleştirilip etkinleştirilmeyeceğini belirtin.
Her zaman Sistem Güven Deposu kullanın. Varsayılan değer true değeridir.
Hayı
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ı

Örnek:

{
    "name": "SparkLinkedService",
    "properties": {
        "type": "Spark",
        "version": "2.0",
        "typeProperties": {
            "host": "<cluster>.azurehdinsight.net",
            "port": "<port>",
            "authenticationType": "WindowsAzureHDInsightService",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        }
    }
}

Sürüm 1.0

Spark bağlı hizmet sürüm 1.0 için aşağıdaki özellikler desteklenir:

Mülkiyet Açıklama Gerekli
tür Tür özelliği şu şekilde ayarlanmalıdır: Spark Evet
ev sahibi Spark sunucusunun IP adresi veya ana bilgisayar adı Evet
liman Spark sunucusunun istemci bağlantılarını dinlemek için kullandığı TCP bağlantı noktası. Azure HDInsight bağlanırsanız bağlantı noktasını 443 olarak belirtin. Evet
sunucu türü Spark sunucusunun türü.
İzin verilen değerler şunlardır: SharkServer, SharkServer2, SparkThriftServer
Hayı
thriftTaşımaProtokolü Thrift katmanında kullanılacak aktarım protokolü.
İzin verilen değerler şunlardır: İkili, SASL, HTTP
Hayı
kimlik doğrulama türü Spark sunucusuna erişmek için kullanılan kimlik doğrulama yöntemi.
İzin verilen değerler şunlardır: Anonim, Kullanıcı Adı, KullanıcıAdıAndPassword, WindowsAzureHDInsightService
Evet
kullanıcı adı Spark Server'a erişmek için kullandığınız kullanıcı adı. Hayı
şifre Kullanıcıya karşılık gelen parola. Bu alanı güvenli bir şekilde depolamak için SecureString olarak işaretleyin veya Azure Key Vault içinde depolanan bir gizli anahtara referans verin. Hayı
httpPath Spark sunucusuna karşılık gelen kısmi URL. Hayı
SSL'yi etkinleştir Sunucu bağlantılarının TLS kullanılarak şifrelenip şifrelenmediğini belirtir. Varsayılan değer yanlıştır. Hayı
trustedCertPath TLS üzerinden bağlanırken sunucuyu doğrulamak için güvenilen CA sertifikalarını içeren .pem dosyasının tam yolu. Bu özellik yalnızca şirket içinde barındırılan IR üzerinde TLS kullanılırken ayarlanabilir. Varsayılan değer, IR ile yüklenen cacerts.pem dosyasıdır. Hayı
Sistem Güven Deposu Kullan Sistem güven deposundan veya belirtilen PEM dosyasından CA sertifikası kullanılıp kullanılmayacağını belirtir. Varsayılan değer yanlıştır. Hayı
allowHostNameCNHataliEslesmesineIzinVer TLS üzerinden bağlanırken sunucunun ana bilgisayar adıyla eşleşmesi için CA tarafından verilen tls/SSL sertifika adının gerekip gerekmediğini belirtir. Varsayılan değer yanlıştır. Hayı
Kendi İmzaladığınız Sunucu Sertifikasına İzin Ver Sunucudan otomatik olarak imzalanan sertifikalara izin verilip verilmeyeceğini belirtir. Varsayılan değer yanlıştır. Hayı
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ı

Örnek:

{
    "name": "SparkLinkedService",
    "properties": {
        "type": "Spark",
        "typeProperties": {
            "host": "<cluster>.azurehdinsight.net",
            "port": "<port>",
            "authenticationType": "WindowsAzureHDInsightService",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        }
    }
}

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 Spark veri kümesi tarafından desteklenen özelliklerin listesi sağlanır.

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

Mülkiyet Açıklama Gerekli
tür Veri kümesinin type özelliği şu şekilde ayarlanmalıdır: SparkObject Evet
şema Şemanın adı. Hayır (etkinlik kaynağında "sorgu" belirtilirse)
tablo Tablonun adı. Hayır (etkinlik kaynağında "sorgu" belirtilirse)
tabloAdı Şema içeren tablonun adı. Bu özellik geriye dönük uyumluluk için desteklenir. Yeni iş yükü için schema ve table kullanın. Hayır (etkinlik kaynağında "sorgu" belirtilirse)

Örnek

{
    "name": "SparkDataset",
    "properties": {
        "type": "SparkObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Spark linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Kopyalama etkinliği özellikleri

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

Kaynak olarak Spark

Spark'tan veri kopyalamak için kopyalama etkinliğindeki kaynak türünü SparkSource olarak ayarlayın. Kopyalama etkinliği kaynağı bölümünde aşağıdaki özellikler desteklenir:

Mülkiyet Açıklama Gerekli
tür Kopyalama etkinliği kaynağının type özelliği şu şekilde ayarlanmalıdır: SparkSource Evet
sorgu Verileri okumak için özel SQL sorgusunu kullanın. Örneğin: "SELECT * FROM MyTable". Hayır (veri kümesinde "tableName" belirtilirse)

Örnek:

"activities":[
    {
        "name": "CopyFromSpark",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Spark input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SparkSource",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

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

Spark'tan ve Spark'a veri kopyaladığınızda, hizmet içinde aşağıdaki ara veri türü eşlemeleri 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.

Spark 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)
BooleanType Boolean Boolean
BaytTürü Sbyte Int16
ShortType Int16 Int16
TamsayıTürü Int32 Int32
LongType Int64 Int64
KayanTip Tek Tek
DoubleType Çift Çift
Tarih Türü TarihSaat TarihSaat
Zaman Damgası Türü TarihSaatOfseti TarihSaat
DiziTipi Dizgi Dizgi
İkiliTür Bayt[] Bayt[]
Decimal Türü On -da -lık On -da -lık
Dize (hassasiyet > 28)
DiziTürü Dizgi Dizgi
StructType Dizgi Dizgi
Harita Türü Dizgi Dizgi
TimestampNTZType (Zaman Damgası NTZ Türü) TarihSaat TarihSaat
YılAyAralığıTipi Dizgi Desteklenmiyor. 
GünZamanAralığıTürü Dizgi Desteklenmiyor.

Arama faaliyeti özellikleri

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

Spark bağlayıcısı yaşam döngüsü ve yükseltmesi

Aşağıdaki tabloda Spark bağlayıcısının farklı sürümleri için yayın aşaması ve değişiklik günlükleri gösterilmektedir:

Sürüm Yayın aşaması Değişiklik Kaydı
Sürüm 1.0 Removed Uygulanamaz.
Sürüm 2.0 Ga sürümü kullanılabilir enableServerCertificateValidation desteklenir.

• varsayılan değeri enableSSL true'dur.

• WindowsAzureHDInsightService kimlik doğrulama türü için varsayılan değeri httpPath olur /sparkhive2.

• DecimalType, Ondalık veri türü olarak okunur. 

• TimestampType, DateTimeOffset veri türü olarak okunur.

• YearMonthIntervalType, DayTimeIntervalType Dize veri türü olarak okunur.

trustedCertPath, useSystemTrustStoreallowHostNameCNMismatch ve allowSelfSignedServerCert desteklenmez.

• SharkServer ve SharkServer2 için serverType desteklenmez.

• İkili ve SASL için thriftTransportProtocl desteklenmez.

• Kullanıcı adı kimlik doğrulama türü desteklenmiyor.

Spark bağlayıcısını sürüm 1.0'dan sürüm 2.0'a yükseltme

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

  2. Spark bağlı hizmet 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. Spark için veri türü eşleme.

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