Azure Data Factory veya Azure Synapse Analytics kullanarak Azure SQL Database 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 makale, Azure Data Factory veya Azure Synapse işlem hatlarında Kopyalama Etkinliğini kullanarak verileri Azure SQL Database'den ve Azure SQL Database'ye nasıl kopyalayabileceğinizi ve Azure SQL Database'deki verileri dönüştürmek için Data Flow'u nasıl kullanabileceğinizi açıklar. Daha fazla bilgi edinmek için Azure Data Factory veya Azure Synapse Analytics giriş makalesini okuyun.

Desteklenen özellikler

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

Desteklenen özellikler Kızılötesi Yönetilen özel uç nokta
Copy activity (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ı

Copy activity için bu Azure SQL Database bağlayıcısı şu işlevleri destekler:

  • Azure kaynakları için hizmet sorumlusu veya yönetilen kimliklerle ya da Microsoft Entra uygulama belirteci kimlik doğrulamasıyla SQL kimlik doğrulamasını kullanarak veri kopyalama.
  • Kaynak olarak, SQL sorgusu veya saklı yordam kullanarak veri alma. Ayrıca bir Azure SQL Database kaynağından paralel kopyalamayı da seçebilirsiniz. Ayrıntılar için SQL veritabanından Parallel kopyası bölümüne bakın.
  • Havuz olarak, kaynak şemayı temel alarak hedef tablo yoksa otomatik olarak oluşturulur; verileri tabloya ekleme veya saklı yordamı kopyalama sırasında özel mantıkla çağırma.

Azure SQL Database sunucusuz katmanı kullanıyorsanız, sunucu duraklatıldığında, otomatik devam etme devreye girmeden etkinlik çalıştırması başarısız olur, bu duruma dikkat edin. Sunucunun gerçek yürütme sırasında canlı olduğundan emin olmak için etkinlik yeniden denemesi ekleyebilir veya ek etkinlikleri zincirleyebilirsiniz.

Önemli

Azure tümleştirme çalışma zamanını kullanarak verileri kopyalarsanız, Azure hizmetlerin sunucuya erişebilmesi için 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 SQL Database bağlanmak için kullanılan makinenin IP'sini içerir.

Kullanmaya başlayın

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 SQL Database bağlı hizmet oluşturma

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

    Azure SQL Veritabanı bağlayıcısını seçin.

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

    Azure sql database bağlantılı servis 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 SQL Database bağlayıcısına özgü Azure Data Factory veya Synapse işlem hattı varlıklarını tanımlamak için kullanılan özellikler hakkında ayrıntılar sağlanır.

Bağlı hizmet özellikleri

Azure SQL Database bağlayıcısı Recommended sürümü TLS 1.3'i destekler. Azure SQL Veritabanı bağlayıcınızın Eski sürümden yeni sürüme yükseltilmesi için bu bölüme bakın. Özellik ayrıntıları için ilgili bölümlere bakın.

İpucu

tr-TR: "UserErrorFailedToConnectToSqlServer" hata koduyla ve "Veritabanındaki oturum sınırı XXX olup bu sınıra ulaşılmıştır" gibi bir mesajla karşılaşırsanız, bağlantı dizesine Pooling=false ekleyin ve tekrar deneyin. Pooling=false türü bağlı hizmet kurulumu için de önerilir. Havuz ve diğer bağlantı parametreleri, bağlı hizmet oluşturma formunun Ek bağlantı özellikleri bölümüne yeni parametre adları ve değerleri olarak eklenebilir.

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

Özellik Açıklama Gerekli
Tip tür özelliği AzureSqlDatabase 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
daimaŞifrelenmişAyarlar Yönetilen kimlik veya hizmet ilkesi kullanarak SQL server'da depolanan hassas verileri korumak amacıyla Always Encrypted'i etkinleştirmek için gereken alwaysencryptedsettings bilgilerini belirtin. Daha fazla bilgi için, tabloyu izleyen JSON örneğine ve Always Encrypted kullanma bölümüne bakın. Belirtilmezse, varsayılan always encrypted ayarı devre dışı bırakılır. Hayır
ş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 Bu tümleştirme çalışma zamanı , veri deposuna bağlanmak için kullanılır. Veri deponuz özel bir ağda bulunuyorsa Azure tümleştirme çalışma zamanını veya şirket içinde barındırılan tümleştirme çalışma zamanını kullanabilirsiniz. Belirtilmezse, varsayılan Azure tümleştirme çalışma zamanı kullanılı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": "AzureSqlDbLinkedService",
    "properties": {
        "type": "AzureSqlDatabase",
        "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": "AzureSqlDbLinkedService",
    "properties": {
        "type": "AzureSqlDatabase",
        "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"
        }
    }
}

Örnek: Always Encrypted kullanma

{
    "name": "AzureSqlDbLinkedService",
    "properties": {
        "type": "AzureSqlDatabase",
        "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>"
            },
            "alwaysEncryptedSettings": {
                "alwaysEncryptedAkvAuthType": "ServicePrincipal",
                "servicePrincipalId": "<service principal id>",
                "servicePrincipalKey": {
                    "type": "SecureString",
                    "value": "<service principal key>"
                }
            }
        },
        "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 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

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öneticisinin Microsoft Entra bir kullanıcı veya Microsoft Entra grubu olması gerekir, ancak hizmet sorumlusu olamaz. Bu adım, sonraki adımda hizmet sorumlusu için bir Microsoft Entra kimliği kullanarak kapsanan veritabanı kullanıcısı oluşturabilmeniz için gerçekleştirilir.

  3. Hizmet sorumlusu için bağımsız veritabanı kullanıcıları oluşturun. SQL Server Management Studio gibi araçları kullanarak, veri kopyalamak istediğiniz veya veri kopyalanacak olan veritabanına, en az ALTER ANY USER iznine sahip bir Microsoft Entra kimliğiyle 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. Diğer seçenekler için bu belgeye bakın.

    ALTER ROLE [role name] ADD MEMBER [your application name];
    
  5. Azure Data Factory veya Synapse çalışma alanında Azure SQL Database bağlantılı hizmet yapılandırın.

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

{
    "name": "AzureSqlDbLinkedService",
    "properties": {
        "type": "AzureSqlDatabase",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "hostNameInCertificate": "<host name>",
            "authenticationType": "ServicePrincipal",
            "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"
        }
    }
}

Sistem atamalı yönetilen kimlik doğrulama

Veri fabrikası veya Synapse çalışma alanı, Azure'daki diğer kaynaklarda kimlik doğrulaması yaparken hizmeti temsil eden Azure kaynakları için sistem tarafından atanan bir yönetilen kimlikle ilişkilendirilebilir. Bu yönetilen kimliği Azure SQL Database kimlik doğrulaması için kullanabilirsiniz. Belirlenen fabrika veya Synapse çalışma alanı, bu kimliği kullanarak veritabanınıza erişebilir ve verileri 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. Yönetilen kimliğe sahip gruba yönetici rolü verirseniz 3. ve 4. adımları atlayın. Yöneticinin veritabanına tam erişimi vardır.

  2. Yönetilen kimlik için bağımsız veritabanı kullanıcıları oluşturun. SQL Server Management Studio gibi araçları kullanarak, veri kopyalamak istediğiniz veya veri kopyalanacak olan veritabanına, en az ALTER ANY USER iznine sahip bir Microsoft Entra kimliğiyle 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 yönetilen kimliğe gereken izinleri verin. Aşağıdaki kodu çalıştırın. Diğer seçenekler için bu belgeye bakın.

    ALTER ROLE [role name] ADD MEMBER [your_resource_name];
    
  4. Azure SQL Veritabanı bağlantılı hizmetini yapılandırın.

Örnek

{
    "name": "AzureSqlDbLinkedService",
    "properties": {
        "type": "AzureSqlDatabase",
        "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ı, Azure'daki diğer kaynaklarda kimlik doğrulaması yaparken hizmeti temsil eden kullanıcı tarafından atanan yönetilen kimliklerle ilişkilendirilebilir. Bu yönetilen kimliği Azure SQL Database kimlik doğrulaması için kullanabilirsiniz. Belirlenen fabrika veya Synapse çalışma alanı, bu kimliği kullanarak veritabanınıza erişebilir ve verileri 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öneticinin veritabanına tam erişimi vardır.

  2. Kullanıcı tarafından atanan yönetilen kimlik için bağımsız veritabanı kullanıcıları oluşturun. SQL Server Management Studio gibi araçları kullanarak, veri kopyalamak istediğiniz veya veri kopyalanacak olan veritabanına, en az ALTER ANY USER iznine sahip bir Microsoft Entra kimliğiyle 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. Diğer seçenekler için bu belgeye bakın.

    ALTER ROLE [role name] ADD MEMBER [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. Azure SQL Veritabanı bağlantılı hizmetini yapılandırın.

Örnek

{
    "name": "AzureSqlDbLinkedService",
    "properties": {
        "type": "AzureSqlDatabase",
        "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 SQL Database bağlı bir hizmet için desteklenir:

Özellik Açıklama Gerekli
Tip tür özelliği AzureSqlDatabase olarak ayarlanmalıdır. Yes
bağlantı dizesi connectionString özelliğinin Azure SQL Database örneğine bağlanmak için gereken bilgileri belirtin.
Azure Key Vault'a ayrıca bir parola veya hizmet sorumlusu anahtarı da koyabilirsiniz. SQL kimlik doğrulamasıysa password yapılandırmasını bağlantı dizgesinden çıkarın. Daha fazla bilgi için bkz. Azure Key Vault'da kimlik bilgilerini depolama.
Yes
daimaŞifrelenmişAyarlar Yönetilen kimlik veya hizmet ilkesi kullanarak SQL server'da depolanan hassas verileri korumak amacıyla Always Encrypted'i etkinleştirmek için gereken alwaysencryptedsettings bilgilerini belirtin. Daha fazla bilgi için Always Encrypted'i Kullanma Bölümü'ne bakın. Belirtilmezse, varsayılan always encrypted ayarı devre dışı bırakılır. Hayır
connectVia Bu tümleştirme çalışma zamanı , veri deposuna bağlanmak için kullanılır. Veri deponuz özel bir ağda bulunuyorsa Azure tümleştirme çalışma zamanını veya şirket içinde barındırılan tümleştirme çalışma zamanını kullanabilirsiniz. Belirtilmezse, varsayılan Azure tümleştirme çalışma zamanı kullanılı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'ta depolanan bir sırra 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 bkz . Veri kümeleri.

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

Özellik Açıklama Gerekli
Tip Veri kümesinin type özelliği AzureSqlTable 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": "AzureSQLDbDataset",
    "properties":
    {
        "type": "AzureSqlTable",
        "linkedServiceName": {
            "referenceName": "<Azure SQL Database linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        }
    }
}

Copy activity özellikleri

Etkinlikleri tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için bkz İşlem hatları. Bu bölüm, Azure SQL Database kaynağı ve havuzu tarafından desteklenen özelliklerin listesini sağlar.

Kaynak olarak Azure SQL Database

İpucu

Veri bölümlemeyi kullanarak verileri Azure SQL Database verimli bir şekilde yüklemek için SQL veritabanından Parallel kopyası hakkında daha fazla bilgi edinin.

Azure SQL Database'ten veri kopyalamak için kopyalama etkinliği source bölümünde aşağıdaki özellikler desteklenir.

Özellik Açıklama Gerekli
Tip Kopyalama etkinliği kaynağının type özelliği AzureSqlSource olarak ayarlanmalıdır. Geriye dönük uyumluluk için "SqlSource" türü hala desteklenmektedir. Yes
sqlReaderQuery Bu özellik, verileri okumak için özel SQL sorgusunu kullanır. select * from MyTable bunun bir örneğidir. 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. Parametrelerin adları ve büyük/küçük harf değerleri, saklı yordam parametrelerinin adlarıyla ve büyük/küçük harfleriyle 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 ayrıntı için bu belgeyi inceleyin . Hayır
bölüm seçenekleri Azure SQL Database'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 SQL Database 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 noktalara dikkat edin:

  • AzureSqlSource için sqlReaderQuery belirtilirse kopyalama etkinliği verileri almak için bu sorguyu Azure SQL Database kaynağında çalıştırır. Saklı yordamın parametre alması durumunda, sqlReaderStoredProcedureName ve storedProcedureParameters belirterek saklı yordamı belirleyebilirsiniz.
  • 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.

SQL sorgusu örneği

"activities":[
    {
        "name": "CopyFromAzureSQLDatabase",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure SQL Database input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AzureSqlSource",
                "sqlReaderQuery": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Depolanmış yordam örneği

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

Saklı yordam tanımı

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 SQL Database

İpucu

Azure SQL Database'a veri yüklemek için Best uygulamasından desteklenen yazma davranışları, yapılandırmalar ve en iyi yöntemler hakkında daha fazla bilgi edinin.

Verileri Azure SQL Database kopyalamak için kopyalama etkinliği sink bölümünde aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
Tip Kopyalama etkinliği havuzu type özelliği AzureSqlSink olarak ayarlanmalıdır. Geriye dönük uyumluluk için "SqlSink" türü hala desteklenmektedir. Yes
preCopyScript Azure SQL Database'a veri yazmadan önce kopyalama etkinliğinin çalıştırılması için bir SQL sorgusu belirtin. Kopyalama çalıştırması başına yalnızca bir kez çağrılır. Önceden yüklenmiş verileri temizlemek için bu özelliği kullanın. Hayır
tabloSeçeneği Kaynak şemayı temel alarak havuz tablosunun yoksa otomatik olarak oluşturulup oluşturulmayacağını belirtir.
Havuz saklı yordamı belirttiğinde otomatik tablo oluşturma desteklenmez.
İzin verilen değerler şunlardır: none (varsayılan), autoCreate.
Hayır
sqlWriterStoredProcedureName Kaynak verilerin hedef tabloya nasıl uygulanacağını tanımlayan saklı yordamın adı.
Bu saklı yordam her toplu işlem için çağrılır. Yalnızca bir kez çalışan ve kaynak verilerle hiçbir ilgisi olmayan işlemler (örneğin, silme veya kesme) için özelliğini kullanın preCopyScript .
Örneğe bakın: SQL havuzundaki saklı yordamı çağırma.
Hayır
storedProcedureTabloTipParametreAdı Saklı yordamda belirtilen tablo türünün parametre adı. Hayır
sqlWriterTableType Saklı yordamda kullanılacak tablo türü adı. Kopyalama etkinliği, taşınan verilerin bu tablo türüne sahip bir geçici tabloda kullanılabilir olmasını sağlar. Saklı yordam kodu daha sonra kopyalanan verileri mevcut verilerle birleştirebilir. Hayır
saklıProsedürParametreleri Saklı yordam için parametreler.
İzin verilen değerler ad ve 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
writeBatchSize SQL tablosuna toplu işlem başına 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
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
metrikToplamayıDevreDışıBırak Hizmet, kopyalama performansı iyileştirmesi için Azure SQL Database DTU'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ışı Azure SQL Veritabanı'na veri yüklemek için kopyalama işleminin yazma davranışını 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:
useTempDB Upsert için geçici tablo olarak genel geçici tablonun mı yoksa fiziksel tablonun mı kullanılacağını belirtin.
Varsayılan olarak, hizmet ara tablo olarak global geçici tabloyu kullanır. değeridir true.
Hayır
interimSchemaName Fiziksel tablo kullanılıyorsa, ara tablo oluşturmak için ara ş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.
useTempDB seçeneği olduğunda Falseuygulayın.
Hayır
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

Örnek 1: Verileri ekleme

"activities":[
    {
        "name": "CopyToAzureSQLDatabase",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure SQL Database output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzureSqlSink",
                "tableOption": "autoCreate",
                "writeBatchSize": 100000
            }
        }
    }
]

Örnek 2: Kopyalama sırasında saklı yordam çağırma

SQL havuzundaki saklı yordamı çağırma bölümünden daha fazla bilgi edinin.

"activities":[
    {
        "name": "CopyToAzureSQLDatabase",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure SQL Database output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzureSqlSink",
                "sqlWriterStoredProcedureName": "CopyTestStoredProcedureWithParameters",
                "storedProcedureTableTypeParameterName": "MyTable",
                "sqlWriterTableType": "MyTableType",
                "storedProcedureParameters": {
                    "identifier": { "value": "1", "type": "Int" },
                    "stringData": { "value": "str1" }
                }
            }
        }
    }
]

Örnek 3: Upsert verileri

"activities":[
    {
        "name": "CopyToAzureSQLDatabase",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure SQL Database output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzureSqlSink",
                "tableOption": "autoCreate",
                "writeBehavior": "upsert",
                "upsertSettings": {
                    "useTempDB": true,
                    "keys": [
                        "<column name>"
                    ]
                },
            }
        }
    }
]

SQL veritabanından paralel kopyalama

Kopyalama etkinliğindeki Azure SQL Database 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 SQL Database kaynağınızda paralel sorgular çalıştırır. Paralel derece, kopyalama etkinliğindeki parallelCopies ayar tarafından denetlenilir. Örneğin, parallelCopies'ı 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 SQL Database verinin bir bölümünü alır.

Özellikle Azure SQL Database 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.

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

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

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

"source": {
    "type": "AzureSqlSource",
    "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, pf.name AS PartitionFunctionName, c.name AS ColumnName, iif(pf.name is null, 'no', 'yes') 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.partition_schemes ps ON i.data_space_id = ps.data_space_id 
LEFT JOIN sys.partition_functions pf ON pf.function_id = ps.function_id 
WHERE s.name='[your schema]' AND t.name = '[your table name]'

Tabloda fiziksel bölüm varsa, "HasPartition" öğesini aşağıdaki gibi "evet" olarak görürsünüz.

Sql sorgusu sonucu

Azure SQL Database'a veri yüklemek için en iyi yöntem

verileri Azure SQL Database kopyalarken farklı yazma davranışı gerekebilir:

  • Ekleme: Kaynak verilerimde yalnızca yeni kayıtlar var.
  • Upsert: Kaynak verilerimde hem eklemeler hem de güncelleştirmeler var.
  • Üzerine yaz: Her seferinde bir boyut tablosunun tamamını yeniden yüklemek istiyorum.
  • Özel mantıkla yazma: Hedef tabloya son eklemeden önce ek işlemeye ihtiyacım var.

Hizmette yapılandırma ve en iyi yöntemler hakkında ilgili bölümlere bakın.

Verileri ekleme

Verilerin eklenmesi, bu Azure SQL Database havuz bağlayıcısının varsayılan davranışıdır. Hizmet, tablonuza verimli bir şekilde yazmak için toplu ekleme yapar. Kaynak ve havuzu kopyalama etkinliğinde uygun şekilde yapılandırabilirsiniz.

Verileri güncelle ve ekle

Copy activity artık verileri bir veritabanı geçici tablosuna yerel olarak yüklemeyi ve anahtar varsa havuz tablosundaki verileri güncelleştirmeyi ve başka şekilde yeni veri eklemeyi destekliyor. Kopyalama etkinliklerindeki güncelleme-yerleştirme ayarları hakkında daha fazla bilgi edinmek için, veri havuzu olarak Azure SQL Database'e bakın.

Tablonun tamamını üzerine yaz

Kopyalama etkinliği havuzundaki preCopyScript özelliğini yapılandırabilirsiniz. Bu durumda, her gerçekleştirilen kopyalama etkinliği için hizmet, önce otomatik olarak betiği çalıştırır. Ardından, verileri eklemek için kopyayı çalıştırır. Örneğin, en son verilerle tablonun tamamını güncellemek için, yeni verileri kaynaktan toplu olarak yüklemeden önce tüm kayıtları silmek üzere bir komut dosyası belirtin.

Özel mantık ile veri yazma

Özel mantıkla veri yazma adımları, Upsert verileri bölümünde açıklananlara benzer. Kaynak verilerin son kez hedef tabloya eklenmesinden önce ek işlemler uygulamanız gerektiğinde, öncelikle verileri bir hazırlık tablosuna yükleyebilir ve ardından bir saklı yordam etkinliğini çalıştırabilirsiniz. Alternatif olarak, verileri uygulamak üzere kopyalama etkinliğinin sink kısmında bir saklı yordam başlatabilir veya Eşleme Data Flow'u kullanabilirsiniz.

SQL havuzundaki saklı yordamı çağırma

Verileri Azure SQL Database'e kopyaladığınızda, kaynak tablonun her bir işlem kümesi üzerinde ek parametrelerle kullanıcı tarafından belirtilen bir saklı yordamı yapılandırabilir ve çağırabilirsiniz. Saklı yordam özelliği tablo değerli parametrelerden yararlanır.

Yerleşik kopyalama mekanizmaları amaca hizmet etmediğinde saklı bir yordam kullanabilirsiniz. Kaynak verilerin hedef tabloya son eklenmesinden önce ek işlem uygulamak istemenize örnek olarak verilmiştir. Bazı ek işleme örnekleri sütunları birleştirmek, ek değerler aramak ve birden fazla tabloya eklemek istediğinizde verilebilir.

Aşağıdaki örnekte, Azure SQL Database'da bir tabloya upsert uygulamak için saklı yordamın nasıl kullanılacağı gösterilmektedir. Giriş verilerinin ve havuz Pazarlama tablosunun her birinin üç sütunu olduğunu varsayalım: ProfileID, State ve Category. ProfileID sütununu temel alarak upsert'i yapın ve yalnızca "ProductA" adlı belirli bir kategori için uygulayın.

  1. Veritabanınızda, sqlWriterTableType ile aynı ada sahip tablo türünü tanımlayın. Tablo türünün şeması, giriş verileriniz tarafından döndürülen şemayla aynıdır.

    CREATE TYPE [dbo].[MarketingType] AS TABLE(
        [ProfileID] [varchar](256) NOT NULL,
        [State] [varchar](256) NOT NULL,
        [Category] [varchar](256) NOT NULL
    )
    
  2. Veritabanınızda, sqlWriterStoredProcedureName ile aynı ada sahip saklı yordamı tanımlayın. Belirtilen kaynağınızdaki giriş verilerini işler ve çıkış tablosuyla birleştirilir. Saklı yordamdaki tablo türünün parametre adı, veri kümesinde tanımlanan tableName ile aynıdır.

    CREATE PROCEDURE spOverwriteMarketing @Marketing [dbo].[MarketingType] READONLY, @category varchar(256)
    AS
    BEGIN
    MERGE [dbo].[Marketing] AS target
    USING @Marketing AS source
    ON (target.ProfileID = source.ProfileID and target.Category = @category)
    WHEN MATCHED THEN
        UPDATE SET State = source.State
    WHEN NOT MATCHED THEN
        INSERT (ProfileID, State, Category)
        VALUES (source.ProfileID, source.State, source.Category);
    END
    
  3. Azure Data Factory veya Synapse işlem hattınızda kopyalama etkinliğinde SQL havuzu bölümünü aşağıdaki gibi tanımlayın:

    "sink": {
        "type": "AzureSqlSink",
        "sqlWriterStoredProcedureName": "spOverwriteMarketing",
        "storedProcedureTableTypeParameterName": "Marketing",
        "sqlWriterTableType": "MarketingType",
        "storedProcedureParameters": {
            "category": {
                "value": "ProductA"
            }
        }
    }
    

Depolanmış yordamı kullanarak Azure SQL Database'a veri yazarken havuz, kaynak verileri mini toplu işlemlere böler ve ardından ekleme işlemini yapar, böylece saklı yordamdaki ek sorgu birden çok kez yürütülebilir. Azure SQL Database'a veri yazmadan önce kopyalama etkinliğinin çalıştırılabilmesi için sorgunuz varsa, bunu saklı yordama eklemeniz önerilmez, Pre-copy betiği kutusuna ekleyin.

Veri akışı haritalama özellikleri

Eşleme veri akışındaki verileri dönüştürürken, Azure SQL Database tablolarını okuyabilir ve tablolara yazabilirsiniz. Daha fazla bilgi için kaynak dönüşümü ve depolama dönüşümü kısmına bkz.

Kaynak dönüştürme

Azure SQL Database ö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.

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.

İpucu

SQL'deki ortak tablo ifadesi (CTE), eşleme veri akışı Sorgu modunda desteklenmez, çünkü bu modu kullanmanın önkoşulu sorguların SQL sorgusu FROM yan tümcesinde kullanılabilmesidir, ancak CTE'ler bunu yapamaz. CTE'leri kullanmak için aşağıdaki sorguyu kullanarak bir saklı yordam oluşturmanız gerekir:

CREATE PROC CTESP @query nvarchar(max)
AS
BEGIN
EXECUTE sp_executesql @query;
END

Ardından, eşleme veri akışının kaynak dönüşümünde Saklı yordam modunu kullanın ve @query örnekte olduğu gibi with CTE as (select 'test' as a) select * from CTE ayarlayın. Ardından CTES'yi beklendiği gibi kullanabilirsiniz.

Saklı yordam: Kaynak veritabanınızdan yürütülen bir saklı yordamdan projeksiyon ve kaynak veri oluşturmak istiyorsanız bu seçeneği belirleyin. Şemayı, yordam adını ve parametreleri yazabilir veya hizmetin şemaları ve yordam adlarını bulmasını istemek için Yenile'ye tıklayabilirsiniz. Ardından, formu @paraNamekullanarak tüm yordam parametrelerini içeri aktarmak için İçeri Aktar'a tıklayabilirsiniz.

Depolanmış prosedür

  • SQL Örneği: Select * from MyTable where customerId > 1000 and customerId < 2000
  • Parametreli SQL Örneği: "select * from {$tablename} where orderyear > {$year}"

Toplu iş boyutu: Büyük verileri okumalara ayırmak için bir toplu iş boyutu girin.

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

Artımlı ayıklamayı etkinleştir: ADF'ye yalnızca işlem hattının son yürütülmesinden bu yana değişen satırları işlemesini bildirmek için bu seçeneği kullanın. Şema kaymasıyla artımlı ayıklamayı etkinleştirmek için, Yerel Değişiklik Veri Yakalama için etkinleştirilmiş tablolar yerine Artımlı / Filigran sütunlarına göre tabloları seçin.

Artımlı sütun: Artımlı ayıklama özelliğini kullanırken, kaynak tablonuzda filigran olarak kullanmak istediğiniz tarih/saat veya sayısal sütunu seçmeniz gerekir.

Yerel değişiklik veri yakalamayı etkinleştir(Önizleme): ADF'ye işlem hattının son yürütülmesinden bu yana yalnızca SQL değişiklik veri yakalama teknolojisi tarafından yakalanan delta verilerini işlemesini bildirmek için bu seçeneği kullanın. Bu seçenekle, satır ekleme, güncelleştirme ve silme dahil olmak üzere delta verileri artımlı sütun gerekmeden otomatik olarak yüklenir. ADF'de bu seçeneği kullanmadan önce Azure SQL Veritabanı'nda değişiklik verilerini yakalamayı etkinleştirmeniz gerekir. ADF'de bu seçenek hakkında daha fazla bilgi için bkz . yerel değişiklik verileri yakalama.

Okumaya baştan başlayın: Artımlı ayıklama ile bu seçeneğin ayarlanması, ADF'ye artımlı ayıklamanın açık olduğu bir işlem hattının ilk yürütülmesinde tüm satırları okumasını bildirecektir.

Havuz dönüşümü

Azure SQL Database ö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.

Anahtar Sütunları

Burada anahtar olarak seçtiğiniz sütun adı, hizmet tarafından sonraki güncelleme, upsert, silme işlemleri kapsamında kullanılacaktır. Bu nedenle, Havuz eşlemesinde var olan bir sütun seçmelisiniz. Değeri bu anahtar sütununa yazmak istemiyorsanız "Anahtar sütunlarını yazmayı atla" seçeneğine tıklayın.

Burada hedef Azure SQL Database tablonuzu güncelleştirmek için kullanılan anahtar sütununu parametreleştirebilirsiniz. Bileşik anahtar için birden çok sütun varsa, "Özel İfade"ye tıkladığınızda veri akışı ifade dilini kullanarak dinamik içerik ekleyebilirsiniz. Bu, bileşik anahtar için sütun adlarına sahip bir dize dizisi içerebilir.

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.

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.

TempDB kullanma: Varsayılan olarak, hizmet verileri yükleme işleminin bir parçası olarak depolamak için genel bir geçici tablo kullanır. Alternatif olarak, "TempDB Kullan" seçeneğinin işaretini kaldırabilir ve bunun yerine hizmetteki geçici tutma tablosunu, bu Havuz için kullanılan veritabanı içindeki bir kullanıcı veritabanında saklamasını isteyebilirsiniz.

Temp DB kullanma

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

Öncesi ve sonrası SQL işleme betikleri içeren Girdi ayarlarını 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 SQL DB'ye 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
  • INSERT deyimi CHECK kısıtlamasıyla çakışıyor

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 kötü performans sağlar, ancak yazılan hiçbir veri işlem tamamlanana kadar başkaları tarafından görülmeyecektir.

Output reddedilen veriler: Etkinleştirilirse, hata satırlarını Azure Blob Storage veya seçtiğiniz bir Azure Data Lake Storage Gen2 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.

Hata satırı işleme

Azure SQL Database için veri türü eşlemesi

Azure SQL Database'ten veya Azure SQL Database'e veri kopyalanırken, Azure SQL Database veri türlerinden Azure Data Factory ara veri türlerine aşağıdaki eşlemeler kullanılır. Aynı eşlemeler, Azure Data Factory'yi doğrudan uygulayan Synapse işlem hattı özelliği tarafından 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.

Azure SQL Database 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[]
ntext 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
sql_variant Nesne
text Dize, Karakter[]
zaman TimeSpan
timestamp Byte[]
tinyint Bayt
benzersiz tanımlayıcı GUID
varbinary Byte[]
varchar Dize, Karakter[]
xml String

Not

Ondalık ara türüne eşlenen veri türleri için şu anda Copy Activity, 28'e kadar hassasiyeti destekler. Duyarlık değeri 28'den büyük olan verileriniz varsa SQL sorgusunda bir dizeye dönüştürmeyi göz önünde bulundurun.

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

Always Encrypted'i kullanma

Always Encrypted ile Azure SQL Database veri kopyaladığınızda aşağıdaki adımları izleyin:

  1. Column Ana Anahtarı (CMK)Azure Key Vault içinde depolayın. Always Encrypted'ı Azure Key Vault kullanarak yapılandırma hakkında daha fazla bilgi edinin

  2. Sütun Ana Anahtarı'nın (CMK) depolandığı anahtar kasasına eriştiğinizden emin olun. Gerekli izinler için bu makaleye bakın.

  3. SQL veritabanınıza bağlanmak için bağlı hizmet oluşturun ve yönetilen kimlik veya hizmet sorumlusu kullanarak 'Always Encrypted' işlevini etkinleştirin.

Not

Azure SQL Database Always Encrypted aşağıdaki senaryoları destekler:

  1. Kaynak veya alıcı veri depoları, anahtar sağlayıcısı kimlik doğrulama türü olarak yönetilen kimlik veya hizmet sorumlusu kullanıyor.
  2. Hem kaynak hem de havuz veri depoları, anahtar sağlayıcısı kimlik doğrulama türü olarak yönetilen kimliği kullanır.
  3. Hem kaynak hem de alıcı veri depoları, anahtar sağlayıcısı kimlik doğrulama türü olarak aynı hizmet ilkesini kullanıyor.

Not

Şu anda Azure SQL Database Always Encrypted eşleme veri akışlarında havuz dönüşümü için desteklenmemektedir.

Yerleşik değişiklik verisi yakalama

Azure Data Factory SQL Server, Azure SQL DB ve Azure SQL MI için yerel değişiklik veri yakalama özelliklerini destekleyebilir. SQL depolarında satır ekleme, güncelleştirme ve silme dahil olmak üzere değiştirilen veriler otomatik olarak algılanabilir ve ADF eşleme veri akışı tarafından ayıklanabilir. Eşleme veri akışında kod deneyimi olmadan, kullanıcılar bir veritabanını hedef depo olarak ekleyerek SQL depolarından kolayca veri çoğaltma senaryosu elde edebilir. Dahası, kullanıcılar, SQL depolarındaki verilere yönelik artımlı bir ETL senaryosu elde etmek için araya çeşitli veri dönüştürme mantıkları da ekleyebilir.

ADF'nin denetim noktasını kaydedebilmesi için işlem hattı ve etkinlik adını değiştirmediğinizden emin olun, böylece son çalıştırmadan otomatik olarak güncellenmiş verileri alabilirsiniz. İşlem hattı adınızı veya etkinlik adınızı değiştirirseniz, denetim noktası sıfırlanır ve bu durumda ya en baştan başlamanız ya da bir sonraki çalıştırmada değişiklikleri almanız gerekir. İşlem hattı adını veya etkinlik adını değiştirmek istiyorsanız ancak son çalıştırmadan otomatik olarak değişen verileri almak için denetim noktasını yine de tutmak istiyorsanız, bunu elde etmek için veri akışı etkinliğinde kendi belirlediğiniz bir Denetim Noktası anahtarınızı kullanın.

İşlem hattında hata ayıkladığınızda, bu özellik aynı şekilde çalışır. Hata ayıklama çalıştırması sırasında tarayıcınızı yenilediğinizde denetim noktasının sıfırlanacağını unutmayın. Hata ayıklama çalıştırmasından elde edilen işlem hattı sonucundan memnun olduktan sonra işlem hattını yayımlamaya ve tetikleme işlemine geçebilirsiniz. Yayımlanan işlem hattınızı ilk tetiklediğiniz anda, başlangıçtan otomatik olarak yeniden başlatılır veya o andan itibaren değişiklikleri uygular.

İzleme bölümünde her zaman bir işlem hattını yeniden çalıştırma şansınız olur. Bunu yaparken, değiştirilen veriler her zaman seçili işlem hattı çalıştırmanızın önceki denetim noktasından yakalanır.

Örnek 1:

Sql CDC özellikli veri kümesine başvuruda bulunan bir kaynak dönüşümünü eşleme veri akışındaki bir veritabanına başvuruda bulunan havuz dönüşümüyle doğrudan zincirlediğinizde, SQL kaynağında gerçekleşen değişiklikler otomatik olarak hedef veritabanına uygulanır, böylece veritabanları arasında veri çoğaltma senaryolarını kolayca alabilirsiniz. Hedef veritabanında eklemeye izin vermek, güncelleştirmeye izin vermek veya silmeye izin vermek isteyip istemediğinizi seçmek için havuz dönüşümünde güncelleştirme yöntemini kullanabilirsiniz. Eşleme veri akışındaki örnek betik aşağıdaki gibidir.

source(output(
		id as integer,
		name as string
	),
	allowSchemaDrift: true,
	validateSchema: false,
	enableNativeCdc: true,
	netChanges: true,
	skipInitialLoad: false,
	isolationLevel: 'READ_UNCOMMITTED',
	format: 'table') ~> source1
source1 sink(allowSchemaDrift: true,
	validateSchema: false,
	deletable:true,
	insertable:true,
	updateable:true,
	upsertable:true,
	keys:['id'],
	format: 'table',
	skipDuplicateMapInputs: true,
	skipDuplicateMapOutputs: true,
	errorHandlingOption: 'stopOnFirstError') ~> sink1

Örnek 2:

SQL CDC aracılığıyla veritabanı arasında veri çoğaltması yerine ETL senaryolarını etkinleştirmek istiyorsanız, satırları farklı işlem türleriyle ayırt etmek için isInsert(1), isUpdate(1) ve isDelete(1) gibi veri akışını eşlemede ifadeleri kullanabilirsiniz. Aşağıdaki örnek betikler, veri akışını değerle bir sütun türetmeye yönelik örnek betiklerden biridir: Eklenen satırları belirtmek için 1, güncelleştirilmiş satırları belirtmek için 2 ve delta verilerini işlemek üzere aşağı akış dönüşümleri için silinen satırları belirtmek için 3.

source(output(
		id as integer,
		name as string
	),
	allowSchemaDrift: true,
	validateSchema: false,
	enableNativeCdc: true,
	netChanges: true,
	skipInitialLoad: false,
	isolationLevel: 'READ_UNCOMMITTED',
	format: 'table') ~> source1
source1 derive(operationType = iif(isInsert(1), 1, iif(isUpdate(1), 2, 3))) ~> derivedColumn1
derivedColumn1 sink(allowSchemaDrift: true,
	validateSchema: false,
	skipDuplicateMapInputs: true,
	skipDuplicateMapOutputs: true) ~> sink1

Bilinen sınırlama:

  • ADF tarafından yalnızca SQL CDC'den yapılan net değişiklikler cdc.fn_cdc_get_net_changes_ aracılığıyla yüklenir.

Azure SQL Database sürümünü yükseltme

Azure SQL Database 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 SQL Database 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 bkz . Desteklenen veri depoları ve biçimleri.