Azure Data Factory veya Synapse işlem hatlarını kullanarak Azure Synapse Analytics verileri kopyalama ve dönüştürme

ŞUNLARA UYGULANIR: Azure Data Factory Azure Synapse Analytics

İpucu

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, Azure Data Factory veya Synapse işlem hatlarında 'Copy Activity' kullanarak verileri Azure Synapse Analytics'e ve Azure Synapse Analytics'den kopyalamak ve Azure Data Lake Storage 2. Nesil'de verileri dönüştürmek için 'Veri Akışı' kullanma adımları açıklanmıştır. Azure Data Factory hakkında bilgi edinmek için introductory makalesini okuyun.

Not

Bu bağlayıcı Microsoft Fabric'daki Data Factory'de de kullanılabilir. Fabric özgü yapılandırma ve özellikler için Fabric Azure Synapse Analytics bağlayıcı belgelerine bakın.

Desteklenen özellikler

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

Desteklenen özellikler Kızılötesi Yönetilen özel uç nokta
Kopyalama etkinliği (kaynak/havuz) (1) (2)
Veri akışının haritalanması (kaynak/hedef) (1)
Arama etkinliği (1) (2)
GetMetadata etkinliği (1) (2)
Betik etkinliği (1) (2)
Saklı yordam 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 için bu Azure Synapse Analytics bağlayıcısı şu işlevleri destekler:

  • SQL kimlik doğrulaması ve Microsoft Entra Uygulama belirteci kimlik doğrulamasını kullanarak, Azure kaynakları için bir hizmet sorumlusu veya yönetilen kimliklerle verileri kopyalayın.
  • Kaynak olarak, SQL sorgusu veya saklı yordam kullanarak verileri alın. Ayrıca Azure Synapse Analytics kaynağından paralel kopyalamayı da seçebilirsiniz. Detaylar için Azure Synapse Analytics'ten Paralel Kopya bölümüne bakın.
  • Veri yükleme ortamı olarak COPY deyimini, PolyBase'i veya toplu eklemeyi kullanarak verileri yükleyin. Daha iyi kopyalama performansı için COPY deyimini veya PolyBase'i öneririz. Bağlayıcı ayrıca, kaynak şemaya göre mevcut değilse DISTRIBUTION = ROUND_ROBIN ile otomatik olarak hedef tablo oluşturmayı da destekler.

Önemli

Verileri bir Azure Integration Runtime kullanarak kopyalarsanız, Azure hizmetlerinin mantıksal SQL sunucusuna erişebilmesi için bir sunucu düzeyi güvenlik duvarı kuralı yapılandırın. Şirket içinde barındırılan tümleştirme çalışma zamanı kullanarak verileri kopyalarsanız, güvenlik duvarını uygun IP aralığına izin verecek şekilde yapılandırın. Bu aralık, Azure Synapse Analytics bağlanmak için kullanılan makinenin IP'sini içerir.

Kullanmaya başlayın

İpucu

En iyi performansı elde etmek için PolyBase veya COPY deyimini kullanarak verileri Azure Synapse Analytics yükleyin. PolyBase kullanarak Azure Synapse Analytics'e veri yükleme ve COPY deyimini kullanarak Azure Synapse Analytics'e veri yükleme bölümlerinde ayrıntıları bulunur. Kullanım örneği içeren bir rehber için bkz. 1 TB'yi Azure Data Factory ile 15 dakikadan daha kısa bir sürede Azure Synapse Analytics'e yükleme.

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 Azure Synapse Analytics bağlı hizmet oluşturma

Azure portalı kullanıcı arabiriminde Azure Synapse Analytics 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. Synapse'i arayın ve Azure Synapse Analytics bağlayıcısını seçin.

    Azure Synapse Analytics 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.

    Azure Synapse Analytics'e bağlı bir hizmetin 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, bir Azure Synapse Analytics bağlayıcısına özgü Data Factory ve Synapse işlem hattı varlıklarını tanımlayan özellikler hakkında ayrıntılar sağlanır.

Bağlı hizmet özellikleri

Azure Synapse Analytics bağlayıcısı Recommended sürümü TLS 1.3'i destekler. Azure Synapse Analytics bağlayıcınızın sürümünü Legacy sürümünden yükseltmek için bu bölüme bakın. Özellik ayrıntıları için ilgili bölümlere bakın.

İpucu

Azure portalından Azure Synapse serverless SQL havuzu için bağlı hizmet oluştururken:

  1. Hesap Seçim Yöntemi için Manuel olarak girin seçeneğini seçin.
  2. Sunucusuz uç noktanın tam nitelikli alan adını yapıştırın. Bunu Synapse çalışma alanınızın Azure portalı Genel Bakış sayfasında, Sunucusuz SQL uç noktası altındaki özelliklerde bulabilirsiniz. Örneğin, myserver-ondemand.sql-azuresynapse.net.
  3. Veritabanı adı için sunucusuz SQL havuzunda veritabanı adını belirtin.

İpucu

"UserErrorFailedToConnectToSqlServer" hata kodu ve "Veritabanı için oturum sınırı XXX'tir ve bu sınır aşılmıştır." gibi bir mesajla hatayla karşılaşırsanız, bağlantı dizesine Pooling=false ekleyin ve yeniden deneyin.

Bu genel özellikler, Recommended sürümünü uyguladığınızda Azure Synapse Analytics bağlı bir hizmet için desteklenir:

Özellik Açıklama Gerekli
Tip type özelliği AzureSqlDW olarak ayarlanmalıdır. Yes
sunucu Bağlanmak istediğiniz SQL server örneğinin adı veya ağ adresi. Yes
veritabanı Veritabanının adı. Yes
kimlik doğrulama türü Kimlik doğrulaması için kullanılan tür. İzin verilen değerler SQL (varsayılan), ServicePrincipal, SystemAssignedManagedIdentity, UserAssignedManagedIdentity değerleridir. Belirli özellikler ve önkoşullar hakkında ilgili kimlik doğrulaması bölümüne gidin. Yes
şifreleme İstemci ile sunucu arasında gönderilen tüm veriler için TLS şifrelemesinin gerekli olup olmadığını belirtin. Seçenekler: zorunlu (doğru için, varsayılan)/isteğe bağlı (yanlış için)/katı. Hayır
trustServerCertificate Güveni doğrulamak için sertifika zinciri atlanırken kanalın şifrelenip şifrelenmediğini belirtin. Hayır
SertifikadakiAnaMakineAdı Bağlantı için sunucu sertifikası doğrulanırken kullanılacak ana bilgisayar adı. Belirtilmediğinde, sunucu adı sertifika doğrulaması için kullanılır. Hayır
connectVia Veri deposuna bağlanmak için kullanılacak tümleştirme çalışma zamanı . Azure Integration Runtime veya şirket içinde barındırılan bir integration runtime (veri deponuz özel bir ağda bulunuyorsa) kullanabilirsiniz. Belirtilmezse, varsayılan Azure Integration Runtime kullanır. Hayır

Ek bağlantı özellikleri için aşağıdaki tabloya bakın:

Özellik Açıklama Gerekli
applicationIntent Sunucuya bağlanırken uygulama iş yükü türü. İzin verilen değerler ReadOnly ve ReadWrite. Hayır
connectTimeout Denemeyi sonlandırmadan ve hata oluşturmadan önce sunucu bağlantısını bekleme süresi (saniye cinsinden). Hayır
bağlantıTekrarDenemeSayısı Tanımlanan bir boşta bağlantı hatasından sonra denenen yeniden bağlantı girişimlerinin sayısı. Değer 0 ile 255 arasında bir tamsayı olmalıdır. Hayır
connectRetryInterval Boşta bağlantı hatası belirlendikten sonra her bir yeniden bağlanma girişimi arasındaki süre (saniye cinsinden). Değer 1 ile 60 arasında bir tamsayı olmalıdır. Hayır
loadBalanceTimeout Bağlantı yok edilmeden önce bağlantının bağlantı havuzunda yaşaması için en kısa süre (saniye cinsinden). Hayır
commandTimeout Komut yürütme girişimini sonlandırmadan ve hata oluşturmadan önce varsayılan bekleme süresi (saniye cinsinden). Hayır
integratedSecurity İzin verilen değerler true veya false'dir. tr-TR: false belirttiğinizde, bağlantıda kullanıcı adı ve şifre belirtilip belirtilmediğini belirtin. true belirtilirken, geçerli Windows hesabı kimlik bilgilerinin kimlik doğrulaması için kullanılıp kullanılmadığını gösterir. Hayır
failoverPartner Birincil sunucu çalışmıyorsa bağlanacak iş ortağı sunucusunun adı veya adresi. Hayır
maxPoolSize Belirli bir bağlantı için bağlantı havuzunda izin verilen en fazla bağlantı sayısı. Hayır
minPoolSize Belirli bir bağlantı için bağlantı havuzunda izin verilen en az bağlantı sayısı. Hayır
multipleActiveResultSets (birden fazla aktif sonuç kümesi) İzin verilen değerler true veya false'dir. belirttiğinizde true, bir uygulama birden çok etkin sonuç kümesini (MARS) koruyabilir. belirttiğinizde false, bir uygulamanın bu bağlantıdaki diğer toplu işlemleri yürütebilmesi için önce bir toplu işlemden tüm sonuç kümelerini işlemesi veya iptal etmesi gerekir. Hayır
multiSubnetFailover İzin verilen değerler true veya false'dir. Uygulamanız farklı alt ağlardaki bir AlwaysOn kullanılabilirlik grubuna (AG) bağlanıyorsa, bu özelliği o anda etkin olan sunucuya true daha hızlı algılama ve bağlantı sağlayacak şekilde ayarlayın. Hayır
packetSize Sunucu örneğiyle iletişim kurmak için kullanılan ağ paketlerinin bayt cinsinden boyutu. Hayır
Toplama İzin verilen değerler true veya false'dir. "true" belirttiğinizde, bağlantı havuza alınacaktır. Bağlantıyı false olarak belirttiğinizde, bağlantı her istendiğinde açıkça açılır. Hayır

SQL kimlik doğrulaması

SQL kimlik doğrulamasını kullanmak için, önceki bölümde açıklanan genel özelliklere ek olarak aşağıdaki özellikleri belirtin:

Özellik Açıklama Gerekli
userName Sunucuya bağlanmak için kullanılan kullanıcı adı. Yes
şifre Kullanıcı adının parolası. Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin. İsterseniz Azure Key Vault içinde depolanan bir gizli anahtarı kullanabilirsiniz. Yes

Örnek: SQL kimlik doğrulaması kullanma

{
    "name": "AzureSqlDWLinkedService",
    "properties": {
        "type": "AzureSqlDW",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "SQL",
            "userName": "<user name>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Örnek: Azure Key Vault'ta parola

{
    "name": "AzureSqlDWLinkedService",
    "properties": {
        "type": "AzureSqlDW",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "SQL",
            "userName": "<user name>",
            "password": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "<Azure Key Vault linked service name>",
                    "type": "LinkedServiceReference"
                },
                "secretName": "<secretName>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Hizmet sorumlusu kimlik doğrulaması

Hizmet sorumlusu kimlik doğrulamasını kullanmak için, önceki bölümde açıklanan genel özelliklere ek olarak aşağıdaki özellikleri belirtin:

Özellik Açıklama Gerekli
servicePrincipalId Uygulamanın istemci kimliğini belirtin. Yes
servicePrincipalCredential Hizmet sorumlusu kimlik bilgileri. Uygulamanın anahtarını belirtin. Bu alanı güvenli bir şekilde depolamak için SecureString olarak işaretleyin veya Azure Key Vault'ta depolanan bir sırrı referans alın. Yes
kiracı Uygulamanızın bulunduğu kiracı bilgilerini (etki alanı adı veya kiracı kimliği) belirtin. Fareyi Azure portalın sağ üst köşesine getirerek alabilirsiniz. Yes
azureCloudType Hizmet sorumlusu kimlik doğrulaması için, Microsoft Entra uygulamanızın kaydedildiği Azure bulut ortamının türünü belirtin.
İzin verilen değerler , AzurePublic, AzureChinave AzureUsGovernmentdeğerleridirAzureGermany. Varsayılan olarak, veri fabrikası veya Synapse işlem hattının bulut ortamı kullanılır.
Hayır

Aşağıdaki adımları da izlemeniz gerekir:

  1. Azure portalından Microsoft Entra uygulaması oluşturun. Uygulama adını ve bağlı hizmeti tanımlayan aşağıdaki değerleri not edin:

    • Uygulama Kimliği
    • Uygulama anahtarı
    • Kiracı kimliği
  2. Henüz yapmadıysanız Azure portalında sunucunuz için Microsoft Entra yöneticisi sağlama. Microsoft Entra yöneticisi Microsoft Entra bir kullanıcı veya Microsoft Entra grubu olabilir. Yönetilen kimliğe sahip gruba yönetici rolü verirseniz 3. ve 4. adımları atlayın. Yönetici veritabanına tam erişime sahip olur.

  3. Hizmet sorumlusu için bağımsız veritabanı kullanıcıları oluşturun. SSMS gibi araçları kullanarak, en az ALTER ANY USER iznine sahip bir Microsoft Entra kimliğiyle, veri kopyalamak istediğiniz veya veri kopyalayacağınız veri ambarına bağlanın. Aşağıdaki T-SQL'i çalıştırın:

    CREATE USER [your_application_name] FROM EXTERNAL PROVIDER;
    
  4. SQL kullanıcıları veya diğer kullanıcılar için normalde yaptığınız gibi hizmet sorumlusuna gereken izinleri verin. Aşağıdaki kodu çalıştırın veya buradaki diğer seçeneklere bakın. Verileri yüklemek için PolyBase kullanmak istiyorsanız gerekli veritabanı iznini öğrenin.

    EXEC sp_addrolemember db_owner, [your application name];
    
  5. Azure Synapse Analytics bağlantılı hizmeti bir Azure Data Factory veya Synapse çalışma alanında yapılandırın.

Hizmet sorumlusu kimlik doğrulaması kullanan bağlı hizmet örneği

{
    "name": "AzureSqlDWLinkedService",
    "properties": {
        "type": "AzureSqlDW",
        "typeProperties": {
            "connectionString": "Server=tcp:<servername>.database.windows.net,1433;Database=<databasename>;Connection Timeout=30",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalCredential": {
                "type": "SecureString",
                "value": "<application key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Azure kaynakları kimlik doğrulaması için sistem tarafından atanan yönetilen kimlikler

Veri fabrikası veya Synapse çalışma alanı, kaynağı temsil eden Azure kaynakları için atanmış bir sistem tarafından yönetilen kimlikle ilişkilendirilebilir. Bu yönetilen kimliği Azure Synapse Analytics kimlik doğrulaması için kullanabilirsiniz. Belirlenen kaynak, bu kimliği kullanarak veri ambarınızdan veya veri ambarınıza veri erişimi sağlayabilir ve kopyalayabilir.

Sistem tarafından atanan yönetilen kimlik kimlik doğrulamasını kullanmak için, önceki bölümde açıklanan genel özellikleri belirtin ve aşağıdaki adımları izleyin.

  1. Henüz yapmadıysanız Azure portalında sunucunuz için Microsoft Entra yöneticisi sağlama. Microsoft Entra yöneticisi Microsoft Entra bir kullanıcı veya Microsoft Entra grubu olabilir. Sistem tarafından atanmış yönetilen kimlikle gruba yönetici rolü verirseniz, 3. ve 4. adımları atlayın. Yönetici veritabanına tam erişime sahip olur.

  2. Sistem tarafından atanan yönetilen kimlik için bağımsız veritabanı kullanıcıları oluşturun. SSMS gibi araçları kullanarak, en az ALTER ANY USER iznine sahip bir Microsoft Entra kimliğiyle, veri kopyalamak istediğiniz veya veri kopyalayacağınız veri ambarına bağlanın. Aşağıdaki T-SQL'i çalıştırın.

    CREATE USER [your_resource_name] FROM EXTERNAL PROVIDER;
    
  3. Sql kullanıcıları ve diğer kullanıcılar için normalde yaptığınız gibi sistem tarafından atanan yönetilen kimliğe gereken izinleri verin. Aşağıdaki kodu çalıştırın veya buradaki diğer seçeneklere bakın. Verileri yüklemek için PolyBase kullanmak istiyorsanız gerekli veritabanı iznini öğrenin.

    EXEC sp_addrolemember db_owner, [your_resource_name];
    
  4. Bir Azure Synapse Analytics bağlı hizmeti yapılandırın.

Örnek:

{
    "name": "AzureSqlDWLinkedService",
    "properties": {
        "type": "AzureSqlDW",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "SystemAssignedManagedIdentity"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Kullanıcı atanmış yönetilen kimlik doğrulaması

Veri fabrikası veya Synapse çalışma alanı, kaynağı temsil eden kullanıcı tarafından atanan yönetilen kimliklerle ilişkilendirilebilir. Bu yönetilen kimliği Azure Synapse Analytics kimlik doğrulaması için kullanabilirsiniz. Belirlenen kaynak, bu kimliği kullanarak veri ambarınızdan veya veri ambarınıza veri erişimi sağlayabilir ve kopyalayabilir.

Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulamasını kullanmak için, önceki bölümde açıklanan genel özelliklere ek olarak aşağıdaki özellikleri belirtin:

Özellik Açıklama Gerekli
kimlik bilgileri Kimlik bilgisi nesnesi olarak kullanıcı tarafından atanan yönetilen kimliği belirtin. Yes

Aşağıdaki adımları da izlemeniz gerekir:

  1. Henüz yapmadıysanız Azure portalında sunucunuz için Microsoft Entra yöneticisi sağlama. Microsoft Entra yöneticisi Microsoft Entra bir kullanıcı veya Microsoft Entra grubu olabilir. Gruba kullanıcı atamalı yönetilen kimlik için yönetici rolü verirseniz 3. adımı atlayın. Yönetici veritabanına tam erişime sahip olur.

  2. Kullanıcı tarafından atanan yönetilen kimlik için bağımsız veritabanı kullanıcıları oluşturun. SSMS gibi araçları kullanarak, en az ALTER ANY USER iznine sahip bir Microsoft Entra kimliğiyle, veri kopyalamak istediğiniz veya veri kopyalayacağınız veri ambarına bağlanın. Aşağıdaki T-SQL'i çalıştırın.

    CREATE USER [your_resource_name] FROM EXTERNAL PROVIDER;
    
  3. Kullanıcı tarafından atanan bir veya birden çok yönetilen kimlik oluşturun ve sql kullanıcıları ve diğer kullanıcılar için normalde yaptığınız gibi kullanıcı tarafından atanan yönetilen kimliğe gerekli izinleri verin. Aşağıdaki kodu çalıştırın veya buradaki diğer seçeneklere bakın. Verileri yüklemek için PolyBase kullanmak istiyorsanız gerekli veritabanı iznini öğrenin.

    EXEC sp_addrolemember db_owner, [your_resource_name];
    
  4. Veri fabrikanıza kullanıcı tarafından atanan bir veya birden çok yönetilen kimlik atayın ve kullanıcı tarafından atanan her yönetilen kimlik için kimlik bilgileri oluşturun.

  5. Bir Azure Synapse Analytics bağlı hizmeti yapılandırın.

Örnek

{
    "name": "AzureSqlDWLinkedService",
    "properties": {
        "type": "AzureSqlDW",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "UserAssignedManagedIdentity",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Eski sürüm

Bu genel özellikler, Legacy sürümünü uyguladığınızda Azure Synapse Analytics bağlı bir hizmet için desteklenir:

Özellik Açıklama Gerekli
Tip type özelliği AzureSqlDW olarak ayarlanmalıdır. Yes
bağlantı dizesi connectionString özelliğinin Azure Synapse Analytics örneğine bağlanmak için gereken bilgileri belirtin.
Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin. Ayrıca parola/hizmet sorumlusu anahtarını Azure Key Vault'a koyabilirsiniz ve SQL kimlik doğrulaması söz konusuysa password yapılandırmasını bağlantı dizesinden çıkarın. Daha fazla ayrıntı içeren Azure Key Vault makalesinde kimlik bilgilerini depolama makalesine bakın.
Yes
connectVia Veri deposuna bağlanmak için kullanılacak tümleştirme çalışma zamanı . Azure Integration Runtime veya şirket içinde barındırılan bir integration runtime (veri deponuz özel bir ağda bulunuyorsa) kullanabilirsiniz. Belirtilmezse, varsayılan Azure Integration Runtime kullanır. Hayır

Farklı kimlik doğrulama türleri için sırasıyla belirli özellikler ve önkoşullar hakkında aşağıdaki bölümlere bakın:

Eski sürüm için SQL kimlik doğrulaması

SQL kimlik doğrulamasını kullanmak için, önceki bölümde açıklanan genel özellikleri belirtin.

Eski sürüm için hizmet sorumlusu kimlik doğrulaması

Hizmet sorumlusu kimlik doğrulamasını kullanmak için, önceki bölümde açıklanan genel özelliklere ek olarak aşağıdaki özellikleri belirtin:

Özellik Açıklama Gerekli
servicePrincipalId Uygulamanın istemci kimliğini belirtin. Yes
servicePrincipalKey Uygulamanın anahtarını belirtin. 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. Yes
kiracı Uygulamanızın bulunduğu etki alanı adı veya kiracı kimliği gibi kiracı bilgilerini belirtin. Fare imlecini Azure portal'ının sağ üst köşesine getirerek erişin. Yes
azureCloudType Hizmet sorumlusu kimlik doğrulaması için, Microsoft Entra uygulamanızın kaydedildiği Azure bulut ortamının türünü belirtin.
İzin verilen değerler AzurePublic, AzureChina, AzureUsGovernment ve AzureGermany'dir. Varsayılan olarak, veri fabrikası veya Synapse işlem hattının bulut ortamı kullanılır.
Hayır

İlgili izni vermek için Hizmet sorumlusu kimlik doğrulamasındaki adımları da izlemeniz gerekir.

Eski sürüm için sistem tarafından atanan yönetilen kimlik doğrulaması

Sistem tarafından atanan yönetilen kimlik kimlik doğrulamasını kullanmak için, Sistem tarafından atanan yönetilen kimlik kimlik doğrulamasında önerilen sürüm için aynı adımı izleyin.

Eski sürüm için kullanıcı atanmış yönetilen kimlik doğrulaması

Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulamasını kullanmak için, Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması bölümünde önerilen sürüm için aynı adımı izleyin.

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.

Azure Synapse Analytics veri kümesi için aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
Tip Veri kümesinin tür özelliği AzureSqlDWTable olarak ayarlanmalıdır. Yes
şema Şemanın adı. Kaynak için Hayır, havuz için Evet
tablo Tablo/görünümün adı. Kaynak için Hayır, havuz için Evet
tabloAdı Şema içeren tablonun/görünümün adı. Bu özellik geriye dönük uyumluluk için desteklenir. Yeni iş yükü için schema ve table kullanın. Kaynak için Hayır, havuz için Evet

Veri kümesi özellikleri örneği

{
    "name": "AzureSQLDWDataset",
    "properties":
    {
        "type": "AzureSqlDWTable",
        "linkedServiceName": {
            "referenceName": "<Azure Synapse Analytics linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        }
    }
}

Kopyalama Etkinliği özellikleri

Etkinlikleri tanımlamak için kullanılabilecek tüm bölümlerin ve özelliklerin listesi için Yapılandırma Hatları makalesine bakın. Bu bölümde, Azure Synapse Analytics kaynağı ve havuzu tarafından desteklenen özelliklerin listesi sağlanır.

Kaynak olarak Azure Synapse Analytics

İpucu

Veri bölümlemeyi kullanarak verileri Azure Synapse Analytics'ten verimli bir şekilde yüklemek için Azure Synapse Analytics'ten Paralel Kopyalama hakkında daha fazla bilgi edinin.

verileri Azure Synapse Analytics kopyalamak için Kopyalama Etkinliği kaynağındaki type özelliğini SqlDWSource olarak ayarlayın. Kopyalama Etkinliği kaynağı bölümünde aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
Tip Kopyalama Etkinliği kaynağının type özelliği SqlDWSource olarak ayarlanmalıdır. Yes
sqlReaderQuery Verileri okumak için özel SQL sorgusunu kullanın. Örnek: select * from MyTable. Hayır
sqlReaderStoredProcedureName Kaynak tablodaki verileri okuyan saklı prosedürün adı. Saklı yordamda son SQL ifadesi bir SELECT deyimi olmalıdır. Hayır
saklıProsedürParametreleri Saklı yordam için parametreler.
İzin verilen değerler ad veya değer çiftleridir. Parametre adları ve büyük/küçük harf uyumu, saklı yordam parametrelerinin adları ve büyük/küçük harf uyumuyla eşleşmelidir.
Hayır
yalıtım seviyesi (isolationLevel) SQL kaynağı için işlem kilitleme davranışını belirtir. İzin verilen değerler şunlardır: ReadCommitted, ReadUncommitted, RepeatableRead, Serializable, Snapshot. Belirtilmezse, veritabanının varsayılan yalıtım düzeyi kullanılır. Daha fazla bilgi için bkz . system.data.isolationlevel. Hayır
bölüm seçenekleri Azure Synapse Analytics'dan veri yüklemek için kullanılan veri bölümleme seçeneklerini belirtir.
İzin verilen değerler şunlardır: Hiçbiri (varsayılan), PhysicalPartitionsOfTable ve DynamicRange.
Bir bölüm seçeneği etkinleştirildiğinde (None değil), bir Azure Synapse Analytics verileri eşzamanlı olarak yüklemek için paralellik derecesi, kopyalama etkinliğindeki parallelCopies ayarı tarafından denetlenilir.
Hayır
bölüm ayarları Veri bölümleme ayarlarının grubunu belirtin.
Bölüm seçeneği `None` olmadığında uygulayın.
Hayır
altında partitionSettings:
partitionColumnName Paralel kopyalama için aralık bölümleme tarafından kullanılacak kaynak sütunun adını tamsayı veya tarih/tarih saat türünde (int, smallint, bigint, date, smalldatetime, , datetime, veya datetime2datetimeoffset) belirtin. Belirtilmezse, tablonun dizini veya birincil anahtarı otomatik olarak algılanır ve bölüm sütunu olarak kullanılır.
Bölüm seçeneği DynamicRange olduğunda uygulayın. Kaynak verileri almak için bir sorgu kullanıyorsanız, ?DfDynamicRangePartitionCondition WHERE yan tümcesine bağlayın. Bir örnek için SQL veritabanından paralel kopyalama bölümüne bakın.
Hayır
bölümÜstSınır Bölüm aralığı ayırma için bölüm sütununun maksimum değeri. Bu değer, tablodaki satırları filtrelemek için değil bölüm adımlarını belirlemek için kullanılır. Tablodaki veya sorgu sonucundaki tüm satırlar bölümlenir ve kopyalanır. Belirtilmezse kopyalama etkinliği değeri otomatik olarak algılar.
Bölüm seçeneği DynamicRange olduğunda uygulayın. Bir örnek için SQL veritabanından paralel kopyalama bölümüne bakın.
Hayır
partitionLowerBound Bölüntü aralığı bölme için bölüntü sütununun en küçük değeri. Bu değer, tablodaki satırları filtrelemek için değil bölüm adımlarını belirlemek için kullanılır. Tablodaki veya sorgu sonucundaki tüm satırlar bölümlenir ve kopyalanır. Belirtilmezse kopyalama etkinliği değeri otomatik olarak algılar.
Bölüm seçeneği DynamicRange olduğunda uygulayın. Bir örnek için SQL veritabanından paralel kopyalama bölümüne bakın.
Hayır

Aşağıdaki noktaya dikkat edin:

  • Verileri almak için kaynakta saklı yordamı kullanırken, saklı yordamınızın farklı parametre değeri geçirildiğinde farklı şema döndürme olarak tasarlanıp tasarlanmadiğini, kullanıcı arabiriminden şema içeri aktarılırken veya otomatik tablo oluşturma özelliğiyle SQL veritabanına veri kopyalarken hatayla karşılaşabileceğinizi veya beklenmeyen bir sonuçla karşılaşabileceğinizi unutmayın.

Örnek: SQL sorgusu kullanma

"activities":[
    {
        "name": "CopyFromAzureSQLDW",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure Synapse Analytics input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SqlDWSource",
                "sqlReaderQuery": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Örnek: depolanmış prosedür kullanma

"activities":[
    {
        "name": "CopyFromAzureSQLDW",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure Synapse Analytics input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SqlDWSource",
                "sqlReaderStoredProcedureName": "CopyTestSrcStoredProcedureWithParameters",
                "storedProcedureParameters": {
                    "stringData": { "value": "str3" },
                    "identifier": { "value": "$$Text.Format('{0:yyyy}', <datetime parameter>)", "type": "Int"}
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Örnek saklanan prosedür:

CREATE PROCEDURE CopyTestSrcStoredProcedureWithParameters
(
    @stringData varchar(20),
    @identifier int
)
AS
SET NOCOUNT ON;
BEGIN
    select *
    from dbo.UnitTestSrcTable
    where dbo.UnitTestSrcTable.stringData != stringData
    and dbo.UnitTestSrcTable.identifier != identifier
END
GO

Havuz olarak Azure Synapse Analytics

Azure Data Factory ve Synapse işlem hatları, verileri Azure Synapse Analytics yüklemenin üç yolunu destekler.

Verileri yüklemenin en hızlı ve en ölçeklenebilir yolu COPY deyimi veya PolyBase'dir.

Verileri Azure Synapse Analytics kopyalamak için Kopyalama Etkinliği'ndeki havuz türünü SqlDWSink olarak ayarlayın. Kopyalama Etkinliği havuzu bölümünde aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
Tip Kopyalama Etkinliği havuzu type özelliği SqlDWSink olarak ayarlanmalıdır. Yes
allowPolyBase Azure Synapse Analytics'a veri yüklemek için PolyBase'in kullanılıp kullanılmayacağını gösterir. allowCopyCommand ve allowPolyBase ikisi de doğru olamaz.

Kısıtlamalar ve ayrıntılar için bkz. PolyBase kullanarak verileri Azure Synapse Analytics bölümüne yükleme.

İzin verilen değerler True ve False (varsayılan) değerleridir.
Hayır
PolyBase kullanırken uygulayın.
polyBaseSettings Özellik allowPolybase ayarı true olarak belirlendiğinde belirtilebilen bir özellik grubu. Hayır
PolyBase kullanırken uygulayın.
kopyalamaKomutunuİzinVer verileri Azure Synapse Analytics yüklemek için COPY deyimi kullanılıp kullanılmayacağını gösterir. allowCopyCommand ve allowPolyBase ikisi de doğru olamaz.

Kısıtlamalar ve ayrıntılar için Azure Synapse Analytics bölümüne veri yüklemek için COPY deyimini kullanma bölümüne bakın.

İzin verilen değerler True ve False (varsayılan) değerleridir.
Hayır
COPY kullanırken uygulayın.
kopyalamaKomutAyarları Özellik TRUE olarak ayarlandığında belirtilebilen allowCopyCommand bir özellik grubu. Hayır
COPY kullanırken uygulayın.
writeBatchSize Her bir toplu işlemde SQL tablosuna eklenecek satır sayısı.

İzin verilen değer tamsayıdır (satır sayısı). Varsayılan olarak, hizmet satır boyutuna göre uygun toplu iş boyutunu dinamik olarak belirler.
Hayır
Toplu ekleme kullanırken uygulayın.
writeBatchTimeout Ekleme, upsert ve saklı yordam işleminin zaman aşımına uğramadan önce tamamlanması için bekleme süresi.
İzin verilen değerler zaman aralığı içindir. Bir örnek, 30 dakikanın "00:30:00" olarak gösterilmesidir. Değer belirtilmezse, zaman aşımı varsayılan olarak "00:30:00" olur.
Hayır
Toplu ekleme kullanırken uygulayın.
preCopyScript Her çalıştırmada Azure Synapse Analytics veri yazmadan önce Kopyalama Etkinliği için bir SQL sorgusu belirtin. Önceden yüklenmiş verileri temizlemek için bu özelliği kullanın. Hayır
tabloSeçeneği Havuz tablosunun, yoksa kaynak şemaya göre otomatik olarak oluşturulup oluşturulmayacağını belirtir. İzin verilen değerler şunlardır: none (varsayılan), autoCreate. Hayır
metrikToplamayıDevreDışıBırak Hizmet, kopyalama performansı iyileştirmesi için Azure Synapse Analytics DWU'lar gibi ölçümleri ve ek ana veritabanı erişimi sunan önerileri toplar. Bu davranıştan endişeleniyorsanız, kapatmak için true belirtin. Hayır (varsayılan değer )false
Maksimum Eşzamanlı Bağlantılar Etkinlik çalıştırması sırasında veri deposuna kurulan eş zamanlı bağlantıların üst sınırı. Yalnızca eşzamanlı bağlantıları sınırlamak istediğinizde bir değer belirtin. Hayır
Yazma Davranışı Kopyalama işleminin, verileri Azure Synapse Analytics’e yüklemesi için yazma işlemini belirtin.
İzin verilen değer Insert ve Upsert'tir. Varsayılan olarak hizmet, verileri yüklemek için insert kullanır.
Hayır
upsertSettings Yazma davranışı için ayarların grubunu belirtin.
WriteBehavior seçeneği Upsert olduğunda uygulayın.
Hayır
altında upsertSettings:
anahtarlar Benzersiz satır belirleme için sütun adlarını belirtin. Tek bir anahtar veya bir dizi anahtar kullanılabilir. Belirtilmezse, birincil anahtar kullanılır. Hayır
interimSchemaName Ara tablo oluşturmak için geçici şemayı belirtin. Not: kullanıcının tablo oluşturma ve silme iznine sahip olması gerekir. Varsayılan olarak, ara tablo havuz tablosuyla aynı şemayı paylaşır. Hayır

Örnek 1: Azure Synapse Analytics sink

"sink": {
    "type": "SqlDWSink",
    "allowPolyBase": true,
    "polyBaseSettings":
    {
        "rejectType": "percentage",
        "rejectValue": 10.0,
        "rejectSampleValue": 100,
        "useTypeDefault": true
    }
}

Örnek 2: Upsert verileri

"sink": {
    "type": "SqlDWSink",
    "writeBehavior": "Upsert",
    "upsertSettings": {
        "keys": [
             "<column name>"
        ],
        "interimSchemaName": "<interim schema name>"
    },
}

Azure Synapse Analytics'ten paralel kopya

Kopyalama etkinliğindeki Azure Synapse Analytics bağlayıcısı, verileri paralel olarak kopyalamak için yerleşik veri bölümleme sağlar. Veri bölümleme seçeneklerini kopyalama etkinliğinin Kaynak sekmesinde bulabilirsiniz.

Bölüm seçeneklerinin ekran görüntüsü

Bölümlenmiş kopyalamayı etkinleştirdiğinizde kopyalama etkinliği, verileri bölümlere göre yüklemek için Azure Synapse Analytics kaynağınızda paralel sorgular çalıştırır. Paralel derece, kopyalama etkinliğindeki parallelCopies ayar tarafından denetlenilir. Örneğin, parallelCopies değerini dört olarak ayarlarsanız, hizmet aynı anda belirtilen bölüm seçeneğinize ve ayarlarınıza göre dört sorgu oluşturur ve çalıştırır ve her sorgu Azure Synapse Analytics verinin bir bölümünü alır.

Özellikle Azure Synapse Analytics büyük miktarda veri yüklediğinizde veri bölümleme ile paralel kopyalamayı etkinleştirmeniz önerilir. Farklı senaryolar için önerilen yapılandırmalar aşağıdadır. Verileri dosya tabanlı veri deposuna kopyalarken, bir klasöre birden çok dosya olarak yazmanız önerilir (yalnızca klasör adını belirtin), bu durumda performans tek bir dosyaya yazmaktan daha iyidir.

Senaryo Önerilen ayarlar
Tam yük, fiziksel bölümleri olan büyük tablodan. Bölüm seçeneği: Tablonun fiziksel bölümleri.

Yürütme sırasında, hizmet fiziksel bölümleri otomatik olarak algılar ve bölümlere göre verileri kopyalar.

Tablonuzda fiziksel bölüm olup olmadığını denetlemek için bu sorguya bakabilirsiniz.
Büyük tablo üzerinden, veri bölümleme için tamsayı veya tarih saat sütunu kullanarak, fiziksel bölümlendirme olmadan tam yükleme. Bölüm seçenekleri: Dinamik aralık bölümü.
Bölüm sütunu (isteğe bağlı): Verileri bölümleme için kullanılan sütunu belirtin. Belirtilmezse, dizin veya birincil anahtar sütunu kullanılır.
Bölüm üst sınırı ve bölüm alt sınırı (isteğe bağlı): Bölüm adımını belirlemek isteyip istemediğinizi belirtin. Bu, tablodaki satırları filtrelemek için değildir, tablodaki tüm satırlar bölümlenir ve kopyalanır. Belirtilmezse kopyalama etkinliği değerleri otomatik olarak algılar.

Örneğin, "ID" bölüm sütununuzun değerleri 1 ile 100 arasındaysa ve alt sınırı 20, üst sınırı da 80 olarak ayarladıysanız, paralel kopya 4 bölüme göre veri alır: =20, [21, 50], [51, 80] ve <=81 aralığındaki >kimlikler.
Özel bir sorgu kullanarak, veri bölümlemesi için tamsayı veya tarih/tarih saat sütunu kullanırken, fiziksel bölümler olmadan büyük miktarda veri yükleyin. Bölüm seçenekleri: Dinamik aralık bölümü.
Sorgu: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.
Bölüm sütunu: Verileri bölümleme için kullanılan sütunu belirtin.
Bölüm üst sınırı ve bölüm alt sınırı (isteğe bağlı): Bölüm adımını belirlemek isteyip istemediğinizi belirtin. Bu tablodaki satırları filtrelemek için değildir, sorgu sonucundaki tüm satırlar bölümlenir ve kopyalanır. Belirtilmezse kopyalama etkinliği değeri otomatik olarak algılar.

Örneğin, bölüm sütununuz "ID" 1 ile 100 arasında değerlere sahipse ve alt sınırı 20, üst sınırı 80 olarak ayarlarsanız ve paralel kopya 4 olarak ayarlanırsa, hizmet verileri 4 parçaya bölünmüş olarak <=20, [21, 50], [51, 80] ve >=81 aralığındaki kimliklerden alır.

Farklı senaryolar için daha fazla örnek sorgu aşağıda verilmiştir:
1. Tablonun tamamını sorgula:
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
2. Sütun seçimi ve ek koşul cümlesi filtreleri ile bir tablodan sorgulama yapın:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
3. Alt sorgularla sorgu:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
4. Alt sorguda bölüm içeren sorgu:
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T

Bölüm seçeneğiyle veri yüklemek için en iyi yöntemler:

  1. Veri dengesizliği önlemek için bölüm sütunu (birincil anahtar veya benzersiz anahtar gibi) olarak ayırt edici sütunu seçin.
  2. Tabloda yerleşik bölüm varsa, daha iyi performans elde etmek için "Tablonun fiziksel bölümleri" bölüm seçeneğini kullanın.
  3. Verileri kopyalamak için Azure Integration Runtime kullanırsanız, daha fazla bilgi işlem kaynağı kullanmak için daha büyük "Data Integration Units (DIU)" (>4) ayarlayabilirsiniz. İlgili senaryoları burada kontrol edin.
  4. "Kopyalama paralellik derecesi" bölümlerin sayısını kontrol eder; bu sayının çok büyük ayarlanması bazen performansı düşürebilir, bu sayıyı DIU'nun veya Şirket içinde barındırılan IR düğümü sayısının * (2 ila 4) arasında ayarlamanızı öneririz.
  5. Not: Azure Synapse Analytics aynı anda en fazla 32 sorgu yürütebilir, bu nedenle "Kopyalama paralelliği derecesi"nin çok yüksek ayarlanması Synapse kısıtlama sorununa yol açabilir.

Örnek: Fiziksel bölümlendirmeler içeren büyük bir tablodan tam veri yüklemesi

"source": {
    "type": "SqlDWSource",
    "partitionOption": "PhysicalPartitionsOfTable"
}

Örnek: dinamik aralık bölümü olan sorgu

"source": {
    "type": "SqlDWSource",
    "query": "SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column (optional) to decide the partition stride, not as data filter>",
        "partitionLowerBound": "<lower_value_of_partition_column (optional) to decide the partition stride, not as data filter>"
    }
}

Fiziksel bölümü denetlemek için örnek sorgu

SELECT DISTINCT s.name AS SchemaName, t.name AS TableName, c.name AS ColumnName, CASE WHEN c.name IS NULL THEN 'no' ELSE 'yes' END AS HasPartition
FROM sys.tables AS t
LEFT JOIN sys.objects AS o ON t.object_id = o.object_id
LEFT JOIN sys.schemas AS s ON o.schema_id = s.schema_id
LEFT JOIN sys.indexes AS i ON t.object_id = i.object_id
LEFT JOIN sys.index_columns AS ic ON ic.partition_ordinal > 0 AND ic.index_id = i.index_id AND ic.object_id = t.object_id
LEFT JOIN sys.columns AS c ON c.object_id = ic.object_id AND c.column_id = ic.column_id
LEFT JOIN sys.types AS y ON c.system_type_id = y.system_type_id
WHERE s.name='[your schema]' AND t.name = '[your table name]'

Tabloda fiziksel bölüm varsa "HasPartition" öğesini "evet" olarak görürsünüz.

Azure Synapse Analytics'a veri yüklemek için COPY deyimini kullanma

COPY deyimi kullanmak, verileri yüksek aktarım hızıyla Azure Synapse Analytics yüklemenin basit ve esnek bir yoludur. Daha fazla bilgi edinmek için COPY deyimini kullanarak verileri toplu yükleme seçeneğini işaretleyin

  • Kaynak verileriniz Azure Blob veya Azure Data Lake Storage 2. Nesil içindeyse ve format, COPY deyimi ile uyumluysa, kopyalama etkinliğini kullanarak Azure Synapse Analytics'in COPY deyimini doğrudan çağırıp verileri kaynaktan çekmesine izin verebilirsiniz. Ayrıntılar için bkz . COPY deyimini kullanarak doğrudan kopyalama.
  • Kaynak veri deponuz ve biçiminiz başlangıçta COPY deyimi tarafından desteklenmiyorsa, bunun yerine COPY deyimi özelliğini kullanarak Aşamalı kopyayı kullanın. Aşamalı kopyalama özelliği size daha iyi aktarım hızı da sağlar. Verileri otomatik olarak COPY deyimiyle uyumlu biçime dönüştürür, verileri Azure Blob depolama alanında depolar, ardından Azure Synapse Analytics'a veri yüklemek için COPY deyimini çağırır.

İpucu

Azure Integration Runtime ile COPY deyimi kullanılırken, etkin Data Integration Units (DIU) her zaman 2 olur. Depolamadan veri yükleme Azure Synapse altyapısı tarafından desteklendiğinden DIU'nun ayarlanması performansı etkilemez.

COPY deyimini kullanarak doğrudan kopyalama

Azure Synapse Analytics COPY deyimi doğrudan Azure Blob ve Azure Data Lake Storage 2. Nesil destekler. Kaynak verileriniz bu bölümde açıklanan ölçütleri karşılıyorsa, doğrudan kaynak veri deposundan Azure Synapse Analytics kopyalamak için COPY deyimini kullanın. Aksi takdirde, COPY deyimini kullanarak Aşamalı kopya kullanın. Hizmet, ayarları denetler ve ölçütler karşılanmazsa kopyalama etkinliği çalıştırması başarısızlıkla sonuçlanır.

  1. Kaynak bağlı hizmet ve biçim, aşağıdaki türlerde ve kimlik doğrulama yöntemleriyle belirtilmiştir.

    Desteklenen kaynak veri deposu türü Desteklenen biçim Desteklenen kaynak kimlik doğrulama türü
    Azure Blob Sınırlandırılmış metin Hesap anahtarı kimlik doğrulaması, paylaşılan erişim imzası kimlik doğrulaması, hizmet sorumlusu kimlik doğrulaması (ServicePrincipalKey kullanarak), sistem tarafından atanan yönetilen kimlik doğrulaması
      Parke Hesap anahtarı kimlik doğrulaması, paylaşılan erişim imzası kimlik doğrulaması
      ORC Hesap anahtarı kimlik doğrulaması, paylaşılan erişim imzası kimlik doğrulaması
    Azure Data Lake Storage 2. Nesil Sınırlandırılmış metin
    Parke
    ORC
    Hesap anahtarı kimlik doğrulaması, hizmet sorumlusu kimlik doğrulaması (ServicePrincipalKey kullanarak), paylaşılan erişim imzası kimlik doğrulaması, sistem tarafından atanan yönetilen kimlik doğrulaması

    Önemli

    • Depolama bağlı hizmetiniz için yönetilen kimlik kimlik doğrulamasını kullandığınızda, sırasıyla Azure Blob ve Azure Data Lake Storage 2. Nesil için gerekli yapılandırmaları öğrenin.
    • Azure Depolama sanal ağ hizmet uç noktasıyla yapılandırıldıysa, depolama hesabında "güvenilen Microsoft hizmetine izin ver" özelliği etkinleştirilmiş yönetilen kimlik doğrulamasını kullanmanız gerekir. Azure Depolama ile Sanal Ağ Hizmet Uç Noktalarını Kullanmanın Etkisi bölümüne bakın.
  2. Biçim ayarları aşağıdakilerle birliktedir:

    1. Parquet için: sıkıştırma yok, Snappy veya olabilir.
    2. ORC için: compression, veya zlib.
    3. Sınırlandırılmış metin için:
      1. rowDelimiteraçıkça tek karakter veya "\r\n" olarak ayarlanır, varsayılan değer desteklenmez.
      2. nullValuevarsayılan olarak bırakılır veya boş dize ("") olarak ayarlanır.
      3. encodingNamevarsayılan olarak bırakılır veya utf-8 veya utf-16 olarak ayarlanır.
      4. escapeChar ile aynı quoteCharolmalı ve boş olmamalıdır.
      5. skipLineCount varsayılan olarak bırakılır veya 0 olarak ayarlanır.
      6. compression hiçbir sıkıştırma veya GZip olabilir.
  3. Kaynağınız bir klasörse, recursive kopyalama etkinliğinde true olarak ayarlanmalıdır ve wildcardFilename veya *olmalıdır*.*.

  4. wildcardFolderPath, wildcardFilename (veya *dışında*.*), modifiedDateTimeStart, modifiedDateTimeEnd, prefix, enablePartitionDiscovery ve additionalColumns belirtilmez.

Kopyalama etkinliği altında allowCopyCommand aşağıdaki COPY deyimi ayarları desteklenir:

Özellik Açıklama Gerekli
varsayılanDeğerler Azure Synapse Analytics her hedef sütun için varsayılan değerleri belirtir. özelliğindeki varsayılan değerler, veri ambarında ayarlanan DEFAULT kısıtlamasının üzerine yazılır ve kimlik sütununda varsayılan değer bulunamaz. Hayır
Ekstra Seçenekler Azure Synapse Analytics COPY ifadesine doğrudan COPY ifadesi içindeki "With" kısmında geçirilecek ek seçenekler. COPY deyimi gereksinimleriyle uyumlu hale getirmek için değeri gerektiği gibi alıntılayın. Hayır
"activities":[
    {
        "name": "CopyFromAzureBlobToSQLDataWarehouseViaCOPY",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "ParquetDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "AzureSQLDWDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "ParquetSource",
                "storeSettings":{
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true
                }
            },
            "sink": {
                "type": "SqlDWSink",
                "allowCopyCommand": true,
                "copyCommandSettings": {
                    "defaultValues": [
                        {
                            "columnName": "col_string",
                            "defaultValue": "DefaultStringValue"
                        }
                    ],
                    "additionalOptions": {
                        "MAXERRORS": "10000",
                        "DATEFORMAT": "'ymd'"
                    }
                }
            },
            "enableSkipIncompatibleRow": true
        }
    }
]

COPY deyimi kullanılarak kademeli kopyalama

Kaynak verileriniz COPY deyimiyle doğrudan uyumlu değilse, geçici aşama Azure Blob veya Azure Data Lake Storage 2. Nesil aracılığıyla veri kopyalamayı etkinleştirin (Azure Premium Depolama olamaz). Bu durumda hizmet, copy deyiminin veri biçimi gereksinimlerini karşılamak için verileri otomatik olarak dönüştürür. Ardından Azure Synapse Analytics'a veri yüklemek için COPY deyimini çağırır. Son olarak, geçici verilerinizi depolama alanından temizler. Aşamalı kopyalama yoluyla veri kopyalama hakkında ayrıntılı bilgi için bkz.

Bu özelliği kullanmak için Azure depolama hesabını geçici depolama olarak ifade eden, Azure Blob Depolama bağlı hizmeti veya Azure Data Lake Storage 2. Nesil bağlı hizmeti oluşturun; bu hizmetler hesap anahtarı veya sistem tarafından yönetilen kimlik doğrulaması kullanır.

Önemli

  • Hazırlık bağlantılı hizmetiniz için yönetilen kimlik doğrulaması kullandığınızda, Azure Blob ve Azure Data Lake Storage 2. Nesil için gerekli yapılandırmaları sırasıyla öğrenin. Ayrıca, hazırlık Azure Blob Depolama veya Azure Data Lake Storage 2. Nesil hesabınızdaki Azure Synapse Analytics çalışma alanı yönetilen kimliğine izin vermeniz gerekir. Bu izni verme hakkının nasıl verildiğini öğrenmek için bkz Çalışma alanı yönetilen kimliğine izin verme.
  • Hazırlama Azure Depolama, VNet hizmet uç noktasıyla yapılandırıldıysa, depolama hesabı ayarlarında "güvenilen Microsoft hizmetine izin ver" etkinleştirilmiş yönetilen kimlik doğrulamasını kullanmanız gerekir; daha fazla bilgi için Azure Depolama ile Sanal Ağ Hizmet Uç Noktalarını Kullanmanın Etkisi konusuna bakın.

Önemli

Hazırlama Azure Depolama, Yönetilen Özel Uç Nokta ile yapılandırılmışsa ve depolama güvenlik duvarı etkinleştirilmişse, COPY ifadesinin yükleme işlemi sırasında hazırlanmış dosyalara erişmesini sağlamak için yönetilen kimlik kimlik doğrulamasını kullanmalı ve Synapse SQL Server'a Depolama Blob Veri Okuyucusu izinleri vermelisiniz.

"activities":[
    {
        "name": "CopyFromSQLServerToSQLDataWarehouseViaCOPYstatement",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "SQLServerDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "AzureSQLDWDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SqlSource",
            },
            "sink": {
                "type": "SqlDWSink",
                "allowCopyCommand": true
            },
            "stagingSettings": {
                "linkedServiceName": {
                    "referenceName": "MyStagingStorage",
                    "type": "LinkedServiceReference"
                }
            }
        }
    }
]

PolyBase kullanarak verileri Azure Synapse Analytics'e yükleyin.

PolyBase kullanmak, yüksek aktarım hızına sahip Azure Synapse Analytics büyük miktarda veri yüklemenin verimli bir yoludur. Varsayılan BULKINSERT mekanizması yerine PolyBase kullanarak aktarım hızı açısından büyük bir kazanç elde edersiniz.

  • Kaynak verileriniz Azure Blob veya Azure Data Lake Storage 2. Nesil içindeyse ve format PolyBase uyumluysa kopyalama etkinliğini kullanarak verileri kaynaktan çekmesine izin Azure Synapse Analytics polyBase'i doğrudan çağırabilirsiniz. Ayrıntılar için bkz . PolyBase kullanarak doğrudan kopyalama.
  • Kaynak veri deponuz ve biçiminiz başlangıçta PolyBase tarafından desteklenmiyorsa, bunun yerine PolyBase özelliğini kullanarak Aşamalı kopyayı kullanın. Aşamalı kopyalama özelliği size daha iyi aktarım hızı da sağlar. Verileri otomatik olarak PolyBase uyumlu biçime dönüştürür, verileri Azure Blob depolamada depolar, ardından Azure Synapse Analytics'a veri yüklemek için PolyBase'i çağırır.

İpucu

PolyBase'i kullanmaya yönelik en iyi yöntemler hakkında daha fazla bilgi edinin. PolyBase'i Azure Integration Runtime ile kullanırken, doğrudan veya aşamalı depodan Synapse'e etkin Veri Entegrasyon Birimleri (DIU) her zaman 2 olur. Depolamadan veri yükleme Synapse altyapısı tarafından desteklendiğinden DIU'nun ayarlanması performansı etkilemez.

Kopyalama etkinliği altında polyBaseSettings aşağıdaki PolyBase ayarları desteklenir:

Özellik Açıklama Gerekli
rejectValue Sorgu başarısız olmadan önce reddedilebilen satır sayısını veya yüzdesini belirtir.

CREATE EXTERNAL TABLE (Transact-SQL) bağımsız değişkenleri bölümünde PolyBase'in reddetme seçenekleri hakkında daha fazla bilgi edinin.

İzin verilen değerler 0 (varsayılan), 1, 2 vb. değerlerdir.
Hayır
rejectType rejectValue seçeneğinin sabit bir değer mi yoksa yüzde mi olduğunu belirtir.

İzin verilen değerler Değer (varsayılan) ve Yüzde değerleridir.
Hayır
rejectSampleValue PolyBase reddedilen satırların yüzdesini yeniden hesaplamadan önce alınacak satır sayısını belirler.

İzin verilen değerler 1, 2 vb.
Evet, rejectTypeyüzde ise.
useTypeDefault PolyBase metin dosyasından veri aldığında sınırlandırılmış metin dosyalarındaki eksik değerlerin nasıl işleneceğini belirtir.

CREATE EXTERNAL FILE FORMAT (Transact-SQL) içindeki Bağımsız Değişkenler bölümünden bu özellik hakkında daha fazla bilgi öğrenin.

İzin verilen değerler True ve False (varsayılan) değerleridir.

Hayır

PolyBase kullanarak doğrudan kopyalama

Azure Synapse Analytics PolyBase doğrudan Azure Blob ve Azure Data Lake Storage 2. Nesil destekler. Kaynak verileriniz bu bölümde açıklanan ölçütleri karşılıyorsa, doğrudan kaynak veri deposundan Azure Synapse Analytics kopyalamak için PolyBase kullanın. Aksi takdirde, PolyBase kullanarak Aşamalı kopya kullanın.

İpucu

Verileri verimli bir şekilde Azure Synapse Analytics kopyalamak için Azure Data Factory ile daha fazla bilgi edinin>Azure Data Factory Azure Synapse Analytics ile Veri Gölü Store kullanırken verilerden içgörüler elde etmeyi daha da kolay ve kullanışlı hale getirir.

Gereksinimler karşılanmazsa, hizmet ayarları denetler ve veri taşıma için otomatik olarak BULKINSERT mekanizmasına geri döner.

  1. Kaynak bağlı hizmet aşağıdaki türlerde ve kimlik doğrulama yöntemlerindedir:

    Desteklenen kaynak veri deposu türü Desteklenen kaynak kimlik doğrulama türü
    Azure Blob Hesap anahtarı kimlik doğrulaması, sistem tarafından atanan yönetilen kimlik doğrulaması
    Azure Data Lake Storage 2. Nesil Hesap anahtarı kimlik doğrulaması, sistem tarafından atanan yönetilen kimlik doğrulaması

    Önemli

    • Depolama bağlı hizmetiniz için yönetilen kimlik kimlik doğrulamasını kullandığınızda, sırasıyla Azure Blob ve Azure Data Lake Storage 2. Nesil için gerekli yapılandırmaları öğrenin.
    • Azure Depolama sanal ağ hizmet uç noktasıyla yapılandırıldıysa, depolama hesabında "güvenilen Microsoft hizmetine izin ver" özelliği etkinleştirilmiş yönetilen kimlik doğrulamasını kullanmanız gerekir. Azure Depolama ile Sanal Ağ Hizmet Uç Noktalarını Kullanmanın Etkisi bölümüne bakın.
  2. Kaynak veri biçimi Parquet, ORC veya Sınırlandırılmış metin biçimindedir ve aşağıdaki yapılandırmaları içerir:

    1. Klasör yolu joker karakter filtresi içermez.
    2. Dosya adı boş veya tek bir dosyayı işaret ediyor. Kopyalama etkinliğinde joker karakterli dosya adı belirtirseniz, bu yalnızca * veya *.* olabilir.
    3. rowDelimitervarsayılan, \n, \r\n veya \r şeklindedir.
    4. nullValuevarsayılan olarak bırakılır veya boş dize ("") olarak ayarlanır ve treatEmptyAsNull varsayılan olarak bırakılır veya true olarak ayarlanır.
    5. encodingNamevarsayılan olarak bırakılır veya utf-8 olarak ayarlanır.
    6. quoteChar, escapeCharve skipLineCount belirtilmemiş. PolyBase desteği, firstRowAsHeader olarak yapılandırılabilen başlık satırını atlayabilir.
    7. compression sıkıştırma yok, GZip veya Deflate olabilir.
  3. Kaynağınız bir klasörse kopyalama recursive etkinliğinde true olarak ayarlanmalıdır.

  4. wildcardFolderPath , wildcardFilename, modifiedDateTimeStart, modifiedDateTimeEnd, prefix, , enablePartitionDiscoveryve additionalColumns belirtilmez.

Not

Kaynağınız bir klasörse, PolyBase klasördeki ve tüm alt klasörlerindeki dosyaları alır ve dosya adı alt çizgi (_) veya nokta (.) ile başlayan dosyalardan veri almaz, burada belgelendiği gibi - LOCATION bağımsız değişkeni.

"activities":[
    {
        "name": "CopyFromAzureBlobToSQLDataWarehouseViaPolyBase",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "ParquetDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "AzureSQLDWDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "ParquetSource",
                "storeSettings":{
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true
                }
            },
            "sink": {
                "type": "SqlDWSink",
                "allowPolyBase": true
            }
        }
    }
]

PolyBase kullanarak aşamalı kopyalama

Kaynak verileriniz PolyBase ile yerel olarak uyumlu olmadığında, ara hazırlama Azure Blobu veya Azure Data Lake Storage 2. Nesil (Azure Premium Depolama olamaz) aracılığıyla veri kopyalamayı etkinleştirin. Bu durumda hizmet, PolyBase'in veri biçimi gereksinimlerini karşılamak için verileri otomatik olarak dönüştürür. Ardından PolyBase'i çağırarak verileri Azure Synapse Analytics yükler. Son olarak, geçici verilerinizi depolama alanından temizler. Aşamalı kopyalama yoluyla veri kopyalama hakkında ayrıntılı bilgi için bkz.

Bu özelliği kullanmak için, Azure depolama hesabını geçici depolama olarak kullanan Azure Blob Depolama bağlı hizmetini veya Azure Data Lake Storage 2. Nesil bağlı hizmetini, hesap anahtarı veya yönetilen kimlik doğrulaması ile oluşturun.

Önemli

  • Hazırlık bağlantılı hizmetiniz için yönetilen kimlik doğrulaması kullandığınızda, Azure Blob ve Azure Data Lake Storage 2. Nesil için gerekli yapılandırmaları sırasıyla öğrenin. Ayrıca, hazırlık Azure Blob Depolama veya Azure Data Lake Storage 2. Nesil hesabınızdaki Azure Synapse Analytics çalışma alanı yönetilen kimliğine izin vermeniz gerekir. Bu izni verme hakkının nasıl verildiğini öğrenmek için bkz Çalışma alanı yönetilen kimliğine izin verme.
  • Hazırlama Azure Depolama, VNet hizmet uç noktasıyla yapılandırıldıysa, depolama hesabı ayarlarında "güvenilen Microsoft hizmetine izin ver" etkinleştirilmiş yönetilen kimlik doğrulamasını kullanmanız gerekir; daha fazla bilgi için Azure Depolama ile Sanal Ağ Hizmet Uç Noktalarını Kullanmanın Etkisi konusuna bakın.

Önemli

Hazırlama Azure Depolama, Yönetilen Özel Uç Nokta ile yapılandırılmışsa ve depolama güvenlik duvarı etkinleştirilmişse, yönetilen kimlik doğrulamasını kullanmanız ve PolyBase yükü sırasında hazırlanmış dosyalara erişebilmesi için Synapse SQL Server'a Depolama Blobu Veri Okuyucusu izinlerini vermeniz gerekir.

"activities":[
    {
        "name": "CopyFromSQLServerToSQLDataWarehouseViaPolyBase",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "SQLServerDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "AzureSQLDWDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SqlSource",
            },
            "sink": {
                "type": "SqlDWSink",
                "allowPolyBase": true
            },
            "enableStaging": true,
            "stagingSettings": {
                "linkedServiceName": {
                    "referenceName": "MyStagingStorage",
                    "type": "LinkedServiceReference"
                }
            }
        }
    }
]

PolyBase'i kullanmak için en iyi yöntemler

Aşağıdaki bölümlerde, Azure Synapse Analytics için En İyi Uygulamalar'da belirtilen uygulamalara ek olarak en iyi uygulamalar sunulmaktadır.

Gerekli veritabanı izni

PolyBase'i kullanmak için, Azure Synapse Analytics'a veri yükleyen kullanıcının hedef veritabanında "CONTROL" izni olması gerekir. Bunu başarma yollarından biri kullanıcıyı db_owner rolüne üye olarak eklemektir. Azure Synapse Analytics genel bakış bunu nasıl yapacağınizi öğrenin.

Satır boyutu ve veri türü sınırları

PolyBase yükleri 1 MB'tan küçük satırlar ile sınırlıdır. VARCHR(MAX), NVARCHAR(MAX) veya VARBINARY(MAX) türlerine yükleme yapılamaz. Daha fazla bilgi için bkz. Azure Synapse Analytics hizmet kapasitesi sınırları.

Kaynak verilerinizde 1 MB'tan büyük satırlar olduğunda, kaynak tabloları dikey olarak birkaç küçük tabloya bölmek isteyebilirsiniz. Her satırın en büyük boyutunun sınırı aşmadığından emin olun. Daha sonra küçük tablolar PolyBase kullanılarak yüklenebilir ve Azure Synapse Analytics içinde birleştirilebilir.

Alternatif olarak, bu kadar geniş sütunlara sahip veriler için, "PolyBase'e izin ver" ayarını kapatarak PolyBase olmayan verileri yüklemek için kullanabilirsiniz.

Azure Synapse Analytics kaynak sınıfı

Mümkün olan en iyi aktarım hızını elde etmek için, PolyBase aracılığıyla verileri Azure Synapse Analytics yükleyen kullanıcıya daha büyük bir kaynak sınıfı atayın.

PolyBase sorunlarını giderme

Ondalık sütuna yükleme

Kaynak verileriniz metin biçimindeyse veya PolyBase ile uyumlu olmayan diğer depolardaysa (aşamalı kopya ve PolyBase kullanarak) ve Azure Synapse Analytics Ondalık sütununa yüklenecek boş değer içeriyorsa, aşağıdaki hatayı alabilirsiniz:

ErrorCode=FailedDbOperation, ......HadoopSqlException: Error converting data type VARCHAR to DECIMAL.....Detailed Message=Empty string can't be converted to DECIMAL.....

Çözüm, kopyalama etkinliğinin havuz kısmındaki - PolyBase ayarlarında ">" seçeneğinin işaretini kaldırmak (false olarak ayarlamak) şeklindedir. "USE_TYPE_DEFAULT", PolyBase metin dosyasından veri aldığında sınırlandırılmış metin dosyalarındaki eksik değerlerin nasıl işleneceğini belirten bir PolyBase yerel yapılandırmasıdır.

Azure Synapse Analytics'de tableName özelliğini denetleyin

Aşağıdaki tabloda, JSON veri kümesinde tableName özelliğinin nasıl belirtileceğini gösteren örnekler verilmiştir. Şema ve tablo adlarının çeşitli bileşimlerini gösterir.

DB Şeması Tablo adı tableName JSON özelliği
dbo MyTable MyTable veya dbo. MyTable veya [dbo]. [MyTable]
dbo1 MyTable dbo1. MyTable veya [dbo1]. [MyTable]
dbo My.Table [My.Table] veya [dbo].[My.Table]
dbo1 My.Table [dbo1]. [My.Table]

Aşağıdaki hatayı görürseniz, sorun tableName özelliği için belirttiğiniz değer olabilir. tableName JSON özelliği için değerleri belirtmenin doğru yolu için yukarıdaki tabloya bakın.

Type=System.Data.SqlClient.SqlException,Message=Invalid object name 'stg.Account_test'.,Source=.Net SqlClient Data Provider

Varsayılan değerlere sahip sütunlar

Şu anda PolyBase özelliği, hedef tablodakiyle aynı sayıda sütunu kabul eder. Örneğin, biri varsayılan değerle tanımlanan dört sütunlu bir tablodur. Giriş verilerinin yine de dört sütunu olması gerekir. Üç sütunlu bir giriş veri kümesi aşağıdaki iletiye benzer bir hata verir:

All columns of the table must be specified in the INSERT BULK statement.

NULL değeri, varsayılan değerin özel bir biçimidir. Sütun null olabilirse, o sütunun ilgili blobundaki giriş verileri boş olabilir. Ancak giriş veri kümesinde eksik olamaz. PolyBase, Azure Synapse Analytics eksik değerler için NULL ekler.

Dış dosya erişimi başarısız oldu

Aşağıdaki hatayı alırsanız, yönetilen kimlik kimlik doğrulaması kullandığınızdan ve Azure Synapse çalışma alanının yönetilen kimliğine Depolama Blob Veri Okuyucusu izinleri verdiğinden emin olun.

Job failed due to reason: at Sink '[SinkName]': shaded.msdataflow.com.microsoft.sqlserver.jdbc.SQLServerException: External file access failed due to internal error: 'Error occurred while accessing HDFS: Java exception raised on call to HdfsBridge_IsDirExist. Java exception message:\r\nHdfsBridge::isDirExist 

Daha fazla bilgi için bkz Çalışma Alanı Oluşturulduktan Sonra Yönetilen Kimliğe İzin Verme.

Veri akışı haritalama özellikleri

Eşleme veri akışında verileri dönüştürürken, Azure Synapse Analytics'ten tablolara okuma ve yazma işlemleri gerçekleştirebilirsiniz. Daha fazla bilgi için kaynak dönüşümü ve depolama dönüşümü kısmına bkz.

Kaynak dönüştürme

Azure Synapse Analytics özgü ayarlar, kaynak dönüştürmenin Source Seçenekleri sekmesinde kullanılabilir.

Giriş Kaynağınızı bir tabloya (eşdeğeri Select * from <table-name>) işaret edip etmediğinizi seçin veya özel bir SQL sorgusu girin.

Enable Staging Bu seçeneği Azure Synapse Analytics kaynakları olan üretim iş yüklerinde kullanmanız kesinlikle önerilir. İşlem hattından Azure Synapse Analytics kaynaklarıyla data akış etkinliği yürütürken, hazırlama konumu depolama hesabı istenir ve bunu aşamalı veri yükleme için kullanırsınız. Azure Synapse Analytics'dan veri yüklemek için en hızlı mekanizmadır.

  • Depolama bağlı hizmetiniz için yönetilen kimlik kimlik doğrulamasını kullandığınızda, sırasıyla Azure Blob ve Azure Data Lake Storage 2. Nesil için gerekli yapılandırmaları öğrenin.
  • Azure Depolama sanal ağ hizmet uç noktasıyla yapılandırıldıysa, depolama hesabında "güvenilen Microsoft hizmetine izin ver" özelliği etkinleştirilmiş yönetilen kimlik doğrulamasını kullanmanız gerekir. Azure Depolama ile Sanal Ağ Hizmet Uç Noktalarını Kullanmanın Etkisi bölümüne bakın.
  • kaynak olarak Azure Synapse serverless SQL havuzunu kullandığınızda hazırlamayı etkinleştirme desteklenmez.

Sorgu: Giriş alanında Sorgu'yu seçerseniz kaynağınız için bir SQL sorgusu girin. Bu ayar, veri kümesinde seçtiğiniz tüm tabloları geçersiz kılar. Order By yan tümceleri burada desteklenmez, ancak tam SELECT FROM deyimi ayarlayabilirsiniz. Kullanıcı tanımlı tablo işlevlerini de kullanabilirsiniz. select * from udfGetData() , SQL'de tablo döndüren bir UDF'dir. Bu sorgu, veri akışınızda kullanabileceğiniz bir kaynak tablo oluşturur. Sorguları kullanmak, test veya arama için satırları azaltmanın da harika bir yoludur.

SQL Örneği: Select * from MyTable where customerId > 1000 and customerId < 2000

Toplu iş boyutu: Büyük verileri okumalara ayırmak için bir toplu iş boyutu girin. Veri akışlarında bu ayar Spark sütunlu önbelleğe alma özelliğini ayarlamak için kullanılır. Bu, boş bırakılırsa Spark varsayılanlarını kullanan bir seçenek alanıdır.

Yalıtım Düzeyi: Haritalama veri akışındaki SQL kaynakları için varsayılan değer onaysız okuma olarak ayarlanmıştır. Burada yalıtım düzeyini şu değerlerden biriyle değiştirebilirsiniz:

  • Okundu
  • Okunmamış İşlenmemiş
  • Yinelenebilir Okuma
  • Serileştirilebilir
  • Yok (yalıtım seviyesini görmezden gel)

Yalıtım Düzeyi

Havuz dönüşümü

Azure Synapse Analytics özgü ayarlar, havuz dönüştürmesinin Settings sekmesinde kullanılabilir.

Güncelleştirme yöntemi: Veritabanı hedefinizde hangi işlemlere izin verileceğini belirler. Varsayılan değer yalnızca eklemelere izin vermektir. Satırları güncelleştirmek, eklemek veya silmek için, bu eylemlerin satırlarını etiketlemek için bir değişiklik satırı dönüştürmesi gerekir. Güncelleştirmeler, upsert'ler ve silmeler için, hangi satırın değiştirileceğini belirlemek için bir anahtar sütun veya sütun ayarlanmalıdır.

Tablo eylemi: Yazmadan önce hedef tablodan tüm satırların yeniden oluşturulmasını veya kaldırılmasını belirler.

  • Yok: Tabloda hiçbir işlem yapılmayacaktır.
  • Yeniden oluştur: Tablo bırakılır ve yeniden oluşturulur. Dinamik olarak yeni bir tablo oluşturuyorsanız gereklidir.
  • Kesme: Hedef tablodaki tüm satırlar kaldırılır.

Enable staging: Bu, kopyalama komutunu kullanarak Azure Synapse Analytics SQL Havuzlarına yüklemeyi etkinleştirir ve çoğu Synapse havuzu için önerilir. Hazırlama depolaması Execute Veri Akışı etkinliği içinde yapılandırılır.

  • Depolama bağlı hizmetiniz için yönetilen kimlik kimlik doğrulamasını kullandığınızda, sırasıyla Azure Blob ve Azure Data Lake Storage 2. Nesil için gerekli yapılandırmaları öğrenin.
  • Azure Depolama sanal ağ hizmet uç noktasıyla yapılandırıldıysa, depolama hesabında "güvenilen Microsoft hizmetine izin ver" özelliği etkinleştirilmiş yönetilen kimlik doğrulamasını kullanmanız gerekir. Azure Depolama ile Sanal Ağ Hizmet Uç Noktalarını Kullanmanın Etkisi bölümüne bakın.

Yığın boyutu: Her yığında kaç satır yazıldığı kontrol edilir. Daha büyük toplu iş boyutları sıkıştırmayı ve bellek iyileştirmeyi geliştirir, fakat verileri önbelleğe alırken bellek yetersizliği istisnaları riski taşır.

Havuz şemasını kullan: Varsayılan olarak, havuz şeması altında hazırlama olarak geçici bir tablo oluşturulur. Alternatif olarak, Sink şeması kullan seçeneğinin işaretini kaldırabilirsiniz ve bunun yerine Kullanıcı veritabanı şemasını seçin bölümünde, Data Factory'nin yukarı akış verilerini yüklemek için geçici bir tablo oluşturacağı ve işlemi tamamladıktan sonra bunları otomatik olarak temizleyeceği bir şema adı belirtebilirsiniz. Veritabanında tablo oluşturma iznine sahip olduğunuzdan ve şemada değişiklik iznine sahip olduğunuzdan emin olun.

'Havuz şemasını kullan' veri akışını gösteren ekran görüntüsü.

SQL Öncesi ve Sonrası betikleri: Havuz veritabanınıza veri yazıldıktan önce (ön işleme) ve sonra (işleme sonrası) yürütülecek çok satırlı SQL betiklerini girin

Azure Synapse Analytics veri akışında SQL işleme öncesi ve sonrası betikleri gösteren ekran görüntüsü.

İpucu

  1. Birden çok komut içeren tek toplu iş betiklerini birden çok partiye bölmeniz önerilir.
  2. Yalnızca basit bir güncelleştirme sayısı döndüren Veri Tanımlama Dili (DDL) ve Veri İşleme Dili (DML) deyimleri toplu iş kapsamında çalıştırılabilir. Toplu işlem gerçekleştirme'den daha fazla bilgi edinin

Hata satırı işleme

Azure Synapse Analytics yazarken, hedef tarafından ayarlanan kısıtlamalar nedeniyle belirli veri satırları başarısız olabilir. Bazı sık karşılaşılan hatalar şunlardır:

  • Dize veya ikili veriler tabloda kesilecektir
  • NULL değeri sütuna eklenemiyor
  • Değer veri türüne dönüştürülürken dönüştürme başarısız oldu

Varsayılan olarak, veri akışı çalıştırması aldığı ilk hatada başarısız olur. Hata veren tek tek satırlar olsa bile veri akışınızın tamamlanmasını sağlayan Hata Durumunda Devam Et seçeneğini tercih edebilirsiniz. Hizmet, bu hata satırlarını işlemeniz için farklı seçenekler sağlar.

İşlem İşleme: Verilerinizin tek bir işlemde mi yoksa toplu olarak mı yazileceğini seçin. Tek işlem daha iyi performans sağlar ve işlem tamamlanana kadar yazılan hiçbir veri başkaları tarafından görülmeyecektir. Toplu işlemler daha kötü performansa sahiptir ancak büyük veri kümelerinde çalışabilir.

Output reddedilen veriler: Etkinleştirilirse, hata satırlarını Azure Blob Depolama veya seçtiğiniz bir Azure Data Lake Storage 2. Nesil hesabındaki bir csv dosyasına aktarabilirsiniz. Bu, hata satırlarını üç ek sütunla yazar: INSERT veya UPDATE gibi SQL işlemi, veri akışı hata kodu ve satırdaki hata iletisi.

Hatanın başarılı olduğunu bildirin: Etkinleştirilirse, hata satırları bulunsa bile veri akışı başarılı olarak işaretlenir.

Veri eşleme akışı hedef dönüşümünde hata satırının ele alınışını gösteren diyagram.

Arama etkinliği özellikleri

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

GetMetadata etkinlik özellikleri

Özellikler hakkında ayrıntılı bilgi edinmek için GetMetadata etkinliğini denetleyin

Azure Synapse Analytics için veri türü eşlemesi

Azure Synapse Analytics'ten veya Azure Synapse Analytics'e veri kopyaladığınızda, Azure Synapse Analytics veri türlerinden Azure Data Factory ara veri türlerine aşağıdaki eşlemeler kullanılır. Bu eşlemeler, Synapse işlem hatlarını kullanarak verileri Azure Synapse Analytics'e veya buradan kopyalarken de kullanılır çünkü Azure Synapse içinde işlem hatları, Azure Data Factory'yi de uygular. Kopyalama Etkinliği'nin kaynak şemayı ve veri türünü hedefe nasıl eşlediğini öğrenmek için şema ve veri türü eşlemeleri kısmına bakın.

İpucu

Azure Synapse Analytics desteklenen veri türleri ve desteklenmeyenler için geçici çözümler hakkında bilgi almak için Azure Synapse Analytics'teki Tablo veri türleri makalesine bakın.

Azure Synapse Analytics veri türü Data Factory geçici veri türü
bigint Int64
ikili Byte[]
bit Boolean (İkili Mantık)
char Dize, Karakter[]
tarih TarihSaat
Tarih ve Zaman TarihSaat
datetime2 TarihSaat
Datetimeoffset DateTimeOffset
Ondalık Ondalık
FILESTREAM özniteliği (varbinary(max)) Byte[]
Kayan Çift
görüntü Byte[]
int Int32
para Ondalık
nchar Dize, Karakter[]
sayısal Ondalık
nvarchar Dize, Karakter[]
gerçek Tek
satır sürümü Byte[]
smalldatetime TarihSaat
smallint Int16
smallmoney Ondalık
zaman TimeSpan
tinyint Bayt
benzersiz tanımlayıcı GUID
varbinary Byte[]
varchar Dize, Karakter[]

Azure Synapse Analytics sürümünü yükseltme

Azure Synapse Analytics sürümünü yükseltmek için Düzenle bağlı hizmet sayfasında, Version altında Recommended öğesini seçin ve önerilen sürüm için Linked hizmet özelliklerine başvurarak bağlı hizmeti yapılandırın.

Aşağıdaki tabloda, önerilen ve eski sürümü kullanan Azure Synapse Analytics arasındaki farklar gösterilmektedir.

Önerilen sürüm Eski sürüm
TLS 1.3'ü encrypt üzerinden strict olarak destekleyin. TLS 1.3 desteklenmez.

Kopyalama Etkinliği tarafından kaynak ve havuz olarak desteklenen veri depolarının listesi için desteklenen veri depoları ve biçimlerine bakın.