Azure Data Factory veya Azure Synapse Analytics kullanarak SQL Server için Amazon RDS'den veri kopyalama

Bu makalede, SQL Server için Amazon RDS veritabanından veri kopyalamak için Azure Data Factory ve Azure Synapse işlem hatlarında kopyalama etkinliğinin nasıl kullanılacağı özetlenmiştir. Daha fazla bilgi edinmek için Azure Data Factory veya Azure Synapse Analytics ile ilgili giriş makalesini okuyun.

Not

Bu bağlayıcı Microsoft Fabric'daki Data Factory'de de kullanılabilir. Fabric’e özgü yapılandırma ve özellikler için Fabric Amazon RDS for SQL Server bağlayıcısı belgelerine bakın.

Desteklenen özellikler

Bu SQL Server için Amazon RDS bağlayıcısı aşağıdaki özellikler için desteklenir:

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

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

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

Özellikle bu SQL Server için Amazon RDS bağlayıcısı şunları destekler:

  • SQL Server sürüm 2005 ve üzeri.
  • SQL veya Windows kimlik doğrulamasını kullanarak veri kopyalama.
  • Kaynak olarak, SQL sorgusu veya saklı yordam kullanarak veri alma. Sql Server kaynağı için Amazon RDS'den paralel kopyalamayı da seçebilirsiniz. Ayrıntılar için SQL veritabanından paralel kopyalama bölümüne bakın.

SQL Server Express LocalDB desteklenmez.

Önkoşullar

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

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

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

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

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 SQL Server bağlı hizmeti için Amazon RDS oluşturma

Azure portalı kullanıcı arabiriminde SQL Server için Amazon RDS bağlı hizmeti oluşturmak için aşağıdaki adımları kullanın.

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

  2. SQL server için Amazon RDS'yi arayın ve SQL Server için Amazon RDS bağlayıcısını seçin.

    SQL Server için Amazon RDS 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.

    SQL Server bağlı hizmeti için Amazon RDS 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, SQL Server için Amazon RDS veritabanı bağlayıcısına özgü Data Factory ve 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

SQL Server için Amazon RDS bağlayıcısı Önerilen sürümü TLS 1.3'i destekler. Amazon RDS için SQL Server bağlayıcı sürümünüzü Eski sürümden yükseltmek için bu bölüme bakın. Özellik ayrıntıları için ilgili bölümlere bakın.

Not

SQL Server Always Encrypted için Amazon RDS, veri akışında desteklenmez.

İpucu

"Eğer 'UserErrorFailedToConnectToSqlServer' hata kodlu ve 'Veritabanı için oturum sınırı XXX ve bu sınıra ulaşıldı' gibi bir mesajla karşılaşırsanız, bağlantı dizesine Pooling=false ekleyin ve yeniden deneyin."

Bu genel özellikler, önerilen sürümü uyguladığınızda Amazon RDS for SQL Server bağlı hizmeti için desteklenir.

Özellik Açıklama Gerekli
Tip tür özelliği AmazonRdsForSqlServer 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), Windows. 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 için Amazon RDS'de depolanan hassas verileri korumak üzere Always Encrypted'ı 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. Önkoşullar bölümünden daha fazla bilgi edinin. 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. belirtirken true, 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. Azure Key Vault'ta depolanan bir gizli anahtara başvurabilirsiniz isterseniz. Yes

Örnek: SQL kimlik doğrulaması kullanma

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "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 sql kimlik doğrulamasını parolayla kullanma

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "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": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "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"
        }
    }
}

Windows kimlik doğrulması

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

Bir örnek domainname\username.
Özellik Açıklama Gerekli
userName Bir kullanıcı adı belirtin.
Yes
şifre Belirttiğiniz kullanıcı adı için kullanıcı hesabına bir parola tanımlayın. Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin. Azure Key Vault'ta depolanan bir gizli anahtara başvurabilirsiniz isterseniz. Yes

Örnek: Windows kimlik doğrulamayı kullanma

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "Windows",
            "userName": "<domain\\username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Eski sürüm

Bu genel özellikler, Eski versiyonu uyguladığınızda, SQL Server bağlı hizmeti için Amazon RDS tarafından desteklenir.

Özellik Açıklama Gerekli
Tip tür özelliği AmazonRdsForSqlServer olarak ayarlanmalıdır. Yes
daimaŞifrelenmişAyarlar Yönetilen kimlik veya hizmet ilkesi kullanarak SQL Server için Amazon RDS'de depolanan hassas verileri korumak üzere Always Encrypted'ı 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. Önkoşullar bölümünden daha fazla bilgi edinin. Belirtilmezse, varsayılan Azure tümleştirme çalışma zamanı kullanılır. Hayır

Bu SQL Server için Amazon RDS bağlayıcısı aşağıdaki kimlik doğrulama türlerini destekler. Ayrıntılar için ilgili 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 özelliklere ek olarak aşağıdaki özellikleri belirtin:

Özellik Açıklama Gerekli
bağlantı dizesi SQL Server için Amazon RDS veritabanına bağlanmak için gereken connectionString bilgilerini belirtin. Kullanıcı adınız olarak bir oturum açma adı belirtin ve bağlanmak istediğiniz veritabanının bu oturum açma bilgileriyle eşlendiğinden emin olun. Yes
şifre Azure Key Vault'a bir parola eklemek istiyorsanız, password yapılandırmasını bağlantı dizesinden çıkarın. Daha fazla bilgi için bkz . Kimlik bilgilerini Azure Key Vault'ta depolama. Hayır

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

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

Bir örnek domainname\username.
Özellik Açıklama Gerekli
bağlantı dizesi SQL Server için Amazon RDS veritabanına bağlanmak için gereken connectionString bilgilerini belirtin. Yes
userName Bir kullanıcı adı belirtin.
Yes
şifre Belirttiğiniz kullanıcı adı için kullanıcı hesabına bir parola tanımlayın. Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin. Azure Key Vault'ta depolanan bir gizli anahtara başvurabilirsiniz isterseniz. Yes

Veri kümesi özellikleri

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

SQL Server için Amazon RDS veritabanından veri kopyalamak için aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
Tip Veri kümesinin tür özelliği AmazonRdsForSqlServerTable olarak ayarlanmalıdır. Yes
şema Şemanın adı. Hayır
tablo Tablo/görünümün adı. Hayır
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. Hayır

Örnek

{
    "name": "AmazonRdsForSQLServerDataset",
    "properties":
    {
        "type": "AmazonRdsForSqlServerTable",
        "linkedServiceName": {
            "referenceName": "<Amazon RDS for SQL Server linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        }
    }
}

Kopyalama etkinliğinin özellikleri

Etkinlikleri tanımlamak için kullanılabilecek bölümlerin ve özelliklerin tam listesi için İşlem Hatları makalesine bakın. Bu bölümde, SQL Server kaynağı için Amazon RDS tarafından desteklenen özelliklerin listesi sağlanır.

Kaynak olarak SQL Server için Amazon RDS

İpucu

Veri bölümlemeyi kullanarak SQL Server için Amazon RDS'den verileri verimli bir şekilde yüklemek için SQL veritabanından paralel kopyalama hakkında daha fazla bilgi edinin.

SQL Server için Amazon RDS'den veri kopyalamak için kopyalama etkinliğindeki kaynak türünü AmazonRdsForSqlServerSource 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 AmazonRdsForSqlServerSource olarak ayarlanmalıdır. Yes
sqlReaderQuery Verileri okumak için özel SQL sorgusunu kullanın. select * from MyTable bunun bir örneğidir. Hayır
sqlReaderStoredProcedureName Bu özellik, kaynak tablodan verileri okuyan saklı yordamın adıdır. Saklı yordamda son SQL ifadesi bir SELECT deyimi olmalıdır. Hayır
saklıProsedürParametreleri Bu parametreler saklı yordam içindir.
İ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 SQL Server için Amazon RDS'den 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 (yani değil None), SQL Server için Amazon RDS'den verileri eşzamanlı olarak yüklemek için paralellik derecesi kopyalama etkinliğindeki parallelCopies ayar tarafından denetlenmektedir.
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:

  • AmazonRdsForSqlServerSource için sqlReaderQuery belirtilirse, kopyalama etkinliği verileri almak üzere SQL Server kaynağı için Amazon RDS'de bu sorguyu ç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.

Örnek: SQL sorgusu kullanma

"activities":[
    {
        "name": "CopyFromAmazonRdsForSQLServer",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Amazon RDS for SQL Server input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AmazonRdsForSqlServerSource",
                "sqlReaderQuery": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Örnek: Saklı prosedür kullanma

"activities":[
    {
        "name": "CopyFromAmazonRdsForSQLServer",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Amazon RDS for SQL Server input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AmazonRdsForSqlServerSource",
                "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

SQL veritabanından paralel kopyalama

Kopyalama etkinliğindeki SQL Server için Amazon RDS 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, SQL Server kaynağının bölümlere göre veri yüklemesi için Amazon RDS'nizde paralel sorgular çalıştırır. Paralel derece, kopyalama etkinliğindeki parallelCopies ayar tarafından denetlenilir. Örneğin, dört olarak ayarlarsanız parallelCopies hizmet, belirtilen bölüm seçeneğinize ve ayarlarınıza göre aynı anda dört sorgu oluşturur ve çalıştırır ve her sorgu SQL Server için Amazon RDS'nizden verilerin bir bölümünü alır.

Özellikle SQL Server için Amazon RDS'nizden 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 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 otomatik olarak değerleri algılar ve MIN ve MAX değerlerine bağlı olarak uzun sürebilir. Üst ve alt sınır sağlanması önerilir.

Ö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ıyorsanız, daha fazla bilgi işlem kaynağı kullanmak için daha büyük "Veri Entegrasyonu Birimleri (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": "AmazonRdsForSqlServerSource",
    "partitionOption": "PhysicalPartitionsOfTable"
}

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

"source": {
    "type": "AmazonRdsForSqlServerSource",
    "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

SQL Server için Amazon RDS için veri türü eşlemesi

SQL Server için Amazon RDS'den veri kopyalarken, SQL Server veri türleri için Amazon RDS'den hizmet tarafından dahili olarak kullanılan ara veri türlerine aşağıdaki eşlemeler kullanılır. Kopyalama etkinliğinin kaynak şemayı ve veri türünü havuza nasıl eşlediğini öğrenmek için bkz . Şema ve veri türü eşlemeleri .

SQL Server için Amazon RDS veri türü Ara hizmet veri türü
bigint Int64
ikili Bayt[]
parça Boolean
char Dize, Karakter[]
date DateTime
Tarih ve saat DateTime
datetime2 DateTime
Datetimeoffset DateTimeOffset
Decimal Decimal
FILESTREAM özniteliği (varbinary(max)) Bayt[]
Yüzmek Double
image Bayt[]
int Int32
para Decimal
nchar (Unicode karakter tipi) Dize, Karakter[]
ntext Dize, Karakter[]
sayısal Decimal
nvarchar Dize, Karakter[]
real Single
satır versiyonu Bayt[]
smalldatetime DateTime
smallint Int16
küçükpara Decimal
sql_variant Nesne
Başka bir metin sağlanmadığı için, verilen metne dayalı bir çeviri yapmam mümkün değil. Lütfen çevirilecek metni belirtin. Dize, Karakter[]
time TimeSpan
Tarih damgası Bayt[]
tinyint Int16
uniqueidentifier Kılavuz
varbinary Bayt[]
Varchar Belediyesi Dize, Karakter[]
xml String

Not

Ondalık ara türüne eşleyen veri türleri için şu anda Kopyalama etkinliği en fazla 28 hassasiyet destekler. 28'den büyük duyarlık gerektiren verileriniz varsa, SQL sorgusundaki bir dizeye dönüştürmeyi göz önünde bulundurun.

Azure Data Factory kullanarak SQL Server için Amazon RDS'den veri kopyalarken bit veri türü Boole geçici veri türüne eşlenir. Bit veri türü olarak tutulması gereken verileriniz varsa, T-SQL CAST veya CONVERT ile sorguları kullanın.

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 SQL Server için Amazon RDS'den/Amazon RDS'ye veri kopyaladığınızda aşağıdaki adımları izleyin:

  1. Sütun Ana Anahtarı'nı (CMK) bir Azure Key Vault'ta depolayın. Azure Key Vault kullanarak Always Encrypted'ı yapılandırma hakkında daha fazla bilgi edinin

  2. Sütun Ana Anahtarı'nın (CMK) depolandığı anahtar kasasına erişim izni verildiğinden 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.

Bağlantı sorunlarını giderme

  1. Sql Server örneği için Amazon RDS'nizi uzak bağlantıları kabul etmek üzere yapılandırın. SQL Server Management Studio için Amazon RDS'yi başlatın, sunucuya sağ tıklayın ve Özellikler'i seçin. Listeden Bağlantılar'ı seçin ve Bu sunucuya uzak bağlantılara izin ver onay kutusunu seçin.

    Uzak bağlantıları etkinleştir

    Ayrıntılı adımlar için bkz . Uzaktan erişim sunucusu yapılandırma seçeneğini yapılandırma.

  2. SQL Server Yapılandırma Yöneticisi için Amazon RDS'i başlatın. İstediğiniz örnek için SQL Server Ağ Yapılandırması için Amazon RDS'yi genişletin ve MSSQLSERVER protokolleri'ni seçin. Protokoller sağ bölmede görünür. TCP/IP'ye sağ tıklayıp Etkinleştir'i seçerek TCP/IP'yi etkinleştirin.

    TCP/IP'yi etkinleştirme

    TCP/IP protokolünün etkinleştirilmesinin alternatif yolları ve daha fazla bilgi için bkz . Sunucu ağ protokollerini etkinleştirme veya devre dışı bırakma.

  3. Aynı pencerede TCP/IP Özellikleri penceresini başlatmak için TCP/IP'ye çift tıklayın.

  4. IP Adresleri sekmesine geçin. IPAll bölümünü görmek için aşağı kaydırın. TCP Bağlantı Noktasını not edin. Varsayılan değer 1433'dür.

  5. Bu bağlantı noktası üzerinden gelen trafiğe izin vermek için makinede Windows Güvenlik Duvarı için bir kural oluşturun.

  6. Bağlantıyı doğrulama: Tam adı kullanarak SQL Server için Amazon RDS'ye bağlanmak için farklı bir makineden SQL Server Management Studio için Amazon RDS kullanın. "<machine>.<domain>.corp.<company>.com,1433" bunun bir örneğidir.

SQL Server için Amazon RDS sürümünü yükseltme

SQL Server için Amazon RDS sürümünü yükseltmek için Bağlı hizmeti düzenle sayfasında, Sürüm altında Önerilen'i seçin ve önerilen sürüm için Bağlı hizmet özelliklerine başvurarak bağlı hizmeti yapılandırın.

Aşağıdaki tabloda, önerilen ve eski sürümü kullanan SQL Server için Amazon RDS 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ı.