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

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

Bahşiş

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

Bu makalede, Oracle için Amazon RDS veritabanından veri kopyalamak için Azure Data Factory'deki kopyalama etkinliğinin nasıl kullanılacağı özetlenmiştir. Kopyalama etkinliğine genel bakış üzerine inşa eder.

Desteklenen özellikler

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

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

(1) Azure tümleştirme çalışma zamanı (2) Şirket içinde barındırılan tümleştirme çalışma zamanı

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 Oracle için Amazon RDS bağlayıcısı şunları destekler:

  • Oracle için Amazon RDS veritabanının aşağıdaki sürümleri:
    • Oracle 19c R1 (19.1) ve üzeri için Amazon RDS
    • Oracle 18c R1 (18.1) ve üzeri için Amazon RDS
    • Oracle 12c R1 (12.1) ve üzeri için Amazon RDS
    • Oracle 11g R1 (11.1) ve üzeri için Amazon RDS
  • Oracle için Amazon RDS kaynağından paralel kopyalama. Ayrıntılar için Oracle için Amazon RDS'den paralel kopya bölümüne bakın.

Dekont

Oracle proxy sunucusu için Amazon RDS 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.

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

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

Tümleştirme çalışma zamanı, Oracle için yerleşik bir Amazon RDS sürücüsü sağlar. Bu nedenle, Oracle için Amazon RDS'den veri kopyalarken bir sürücüyü el ile yüklemeniz gerekmez.

Başlarken

İşlem hattıyla Kopyalama etkinliği gerçekleştirmek için aşağıdaki araçlardan veya SDK'lardan birini kullanabilirsiniz:

Kullanıcı arabirimini kullanarak Oracle için Amazon RDS'ye bağlı hizmet oluşturma

Azure portalı kullanıcı arabiriminde Oracle için Amazon RDS'ye bağlı bir hizmet oluşturmak için aşağıdaki adımları kullanın.

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

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

    Screenshot of the Amazon RDS for Oracle connector.

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

    Screenshot of linked service configuration for Amazon RDS for Oracle.

Bağlan veya yapılandırma ayrıntıları

Aşağıdaki bölümlerde, Oracle için Amazon RDS bağlayıcısına özgü varlıkları tanımlamak için kullanılan özelliklerle ilgili ayrıntılar sağlanır.

Bağlı hizmet özellikleri

Oracle için Amazon RDS bağlı hizmeti aşağıdaki özellikleri destekler:

Özellik Açıklama Gerekli
type type özelliği AmazonRdsForOracle olarak ayarlanmalıdır. Evet
Connectionstring Oracle Veritabanı için Amazon RDS örneğine bağlanmak için gereken bilgileri belirtir.
Ayrıca Azure Key Vault'a parola ekleyebilir ve yapılandırmayı password bağlantı dizesi çıkarabilirsiniz. Diğer ayrıntılarla birlikte aşağıdaki örneklere ve Azure Key Vault'ta kimlik bilgilerini depolama bölümüne bakın.

Desteklenen bağlantı türü: Veritabanınızı tanımlamak için Oracle SID için Amazon RDS veya Oracle Service Name için Amazon RDS kullanabilirsiniz:
- SID kullanıyorsanız: Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;
- Hizmet Adı kullanıyorsanız: Host=<host>;Port=<port>;ServiceName=<servicename>;User Id=<username>;Password=<password>;
Oracle için gelişmiş Amazon RDS yerel bağlantı seçenekleri için TNSNAMES'de bir giriş eklemeyi seçebilirsiniz. Oracle için Amazon RDS sunucusunda ve Oracle için Amazon RDS bağlı hizmetinde ORA dosyası, Oracle Hizmet Adı bağlantı türü için Amazon RDS'yi kullanmayı ve ilgili hizmet adını yapılandırmayı seçin.
Evet
connectVia Veri deposuna bağlanmak için kullanılacak tümleştirme çalışma zamanı . Önkoşullar bölümünden daha fazla bilgi edinin. Belirtilmezse, varsayılan Azure Integration Runtime kullanılır. No

Yük devretme senaryosu için Oracle için birden çok Amazon RDS örneğiniz varsa Oracle bağlı hizmeti için Amazon RDS oluşturabilir ve birincil ana bilgisayarı, bağlantı noktasını, kullanıcı adını, parolayı vb. doldurabilir ve özellik adı ve değeri olarak AlternateServers(HostName=<secondary host>:PortNumber=<secondary port>:ServiceName=<secondary service name>) yeni bir "Ek bağlantı özellikleri" ekleyebilirsiniz. Köşeli ayraçları kaçırmayın ve ayırıcı olarak iki nokta üst üstelerine (:) dikkat edin. Örneğin, aşağıdaki alternatif sunucu değeri, bağlantı yük devretmesi için iki alternatif veritabanı sunucusu tanımlar: (HostName=AccountingAmazonRdsForOracleServer:PortNumber=1521:SID=Accounting,HostName=255.201.11.24:PortNumber=1522:ServiceName=ABackup.NA.MyCompany).

Servis talebinize göre bağlantı dizesi olarak ayarlayabileceğiniz diğer bağlantı özellikleri:

Özellik Açıklama İzin verilen değerler
ArraySize Bağlayıcının tek bir ağ gidiş dönüşte getirebileceği bayt sayısı. Örneğin, ArraySize=‭10485760‬.

Daha büyük değerler, ağ üzerinden veri getirme sayısını azaltarak aktarım hızını artırır. Daha küçük değerler, sunucunun veri iletmesini beklerken daha az gecikme olduğundan yanıt süresini artırır.
1 ile 4294967296 (4 GB) bir tamsayı. Varsayılan değer 60000 olarak belirlenmiştir. 1 değeri bayt sayısını tanımlamaz, ancak tam olarak bir veri satırı için alan ayırmayı gösterir.

Oracle bağlantısı için Amazon RDS'de şifrelemeyi etkinleştirmek için iki seçeneğiniz vardır:

  • Üçlü DES Şifrelemesi (3DES) ve Gelişmiş Şifreleme Standardı (AES) kullanmak için, Oracle için Amazon RDS sunucu tarafında Oracle Gelişmiş Güvenlik (OAS) bölümüne gidin ve şifreleme ayarlarını yapılandırın. Ayrıntılar için bu Oracle belgelerine bakın. Oracle için Amazon RDS Uygulama Geliştirme Çerçevesi (ADF) bağlayıcısı, Oracle için Amazon RDS'ye bağlantı kurarken OAS'de yapılandırdığınız şifreleme yöntemini kullanmak üzere otomatik olarak anlaşma sağlar.

  • TLS kullanmak için:

    1. TLS/SSL sertifika bilgilerini alın. TLS/SSL sertifikanızın Ayırt Edici Kodlama Kuralları (DER) kodlanmış sertifika bilgilerini alın ve çıktıyı kaydedin (----- Sertifikayı Başlat ... Sertifikayı -----) bir metin dosyası olarak sonlandır.

      openssl x509 -inform DER -in [Full Path to the DER Certificate including the name of the DER Certificate] -text
      

      Örnek: DERcert.cer dosyasından sertifika bilgilerini ayıklayın ve çıkışı cert.txt dosyasına kaydedin.

      openssl x509 -inform DER -in DERcert.cer -text
      Output:
      -----BEGIN CERTIFICATE-----
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXX
      -----END CERTIFICATE-----
      
    2. veya truststoreoluşturunkeystore. Aşağıdaki komut, dosyayı PKCS-12 biçiminde parolayla veya parola olmadan oluşturur truststore .

      openssl pkcs12 -in [Path to the file created in the previous step] -out [Path and name of TrustStore] -passout pass:[Keystore PWD] -nokeys -export
      

      Örnek: Parolayla MyTrustStoreFile adlı bir PKCS12 truststore dosyası oluşturun.

      openssl pkcs12 -in cert.txt -out MyTrustStoreFile -passout pass:ThePWD -nokeys -export  
      
    3. truststore Dosyayı şirket içinde barındırılan IR makinesine yerleştirin. Örneğin, dosyayı C:\MyTrustStoreFile dizinine yerleştirin.

    4. Hizmette Oracle bağlantı dizesi için Amazon RDS'yi ve buna karşılık gelen TrustStore/TrustStorePassworddeğeri yapılandırın.EncryptionMethod=1 Örneğin, Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore=C:\\MyTrustStoreFile;TrustStorePassword=<trust_store_password>.

Örnek:

{
    "name": "AmazonRdsForOracleLinkedService",
    "properties": {
        "type": "AmazonRdsForOracle",
        "typeProperties": {
            "connectionString": "Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Örnek: Azure Key Vault'ta parola depolama

{
    "name": "AmazonRdsForOracleLinkedService",
    "properties": {
        "type": "AmazonRdsForOracle",
        "typeProperties": {
            "connectionString": "Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Veri kümesi özellikleri

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

Oracle için Amazon RDS'den veri kopyalamak için veri kümesinin type özelliğini olarak AmazonRdsForOracleTableayarlayın. Aşağıdaki özellikler desteklenir.

Özellik Açıklama Gerekli
type Veri kümesinin tür özelliği olarak AmazonRdsForOracleTableayarlanmalıdır. Evet
schema Şemanın adı. No
table Tablo/görünümün adı. No
tableName Ş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 ve tablekullanınschema. No

Örnek:

{
    "name": "AmazonRdsForOracleDataset",
    "properties":
    {
        "type": "AmazonRdsForOracleTable",
        "schema": [],
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        },
        "linkedServiceName": {
            "referenceName": "<Amazon RDS for Oracle linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Kopyalama etkinliğinin özellikleri

Bu bölümde, Oracle için Amazon RDS kaynağı tarafından desteklenen özelliklerin listesi sağlanır. Etkinlikleri tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için bkz . İşlem hatları.

Kaynak olarak Oracle için Amazon RDS

Bahşiş

Veri bölümlemeyi kullanarak Oracle için Amazon RDS'den verileri verimli bir şekilde yüklemek için Oracle için Amazon RDS'den paralel kopyalama bölümünden daha fazla bilgi edinin.

Oracle için Amazon RDS'den veri kopyalamak için kopyalama etkinliğindeki kaynak türünü olarak AmazonRdsForOracleSourceayarlayın. Kopyalama etkinliği kaynağı bölümünde aşağıdaki özellikler desteklenir.

Özellik Açıklama Gerekli
type Kopyalama etkinliği kaynağının type özelliği olarak AmazonRdsForOracleSourceayarlanmalıdır. Evet
oracleReaderQuery Verileri okumak için özel SQL sorgusunu kullanın. "SELECT * FROM MyTable" bunun bir örneğidir.
Bölümlenmiş yükü etkinleştirdiğinizde, sorgunuzda ilgili yerleşik bölüm parametrelerini bağlamanız gerekir. Örnekler için Oracle için Amazon RDS'den paralel kopya bölümüne bakın.
No
partitionOptions Oracle 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), Oracle için Amazon RDS veritabanından verileri eşzamanlı olarak yüklemek için paralellik derecesi kopyalama etkinliğindeki parallelCopies ayar tarafından denetlenmektedir.
No
bölüm Ayarlar Veri bölümleme ayarlarının grubunu belirtin.
Bölüm seçeneği olmadığında Noneuygulayın.
No
partitionNames Kopyalanması gereken fiziksel bölümlerin listesi.
Bölüm seçeneği olduğunda PhysicalPartitionsOfTableuygulayın. Kaynak verileri almak için bir sorgu kullanırsanız WHERE yan tümcesine bağlanın ?AdfTabularPartitionName . Örneğin, Oracle için Amazon RDS'den paralel kopya bölümüne bakın.
No
partitionColumnName Paralel kopyalama için aralık bölümleme tarafından kullanılacak tamsayı türünde kaynak sütunun adını belirtin. Belirtilmezse, tablonun birincil anahtarı otomatik olarak algılanır ve bölüm sütunu olarak kullanılır.
Bölüm seçeneği olduğunda DynamicRangeuygulayın. Kaynak verileri almak için bir sorgu kullanırsanız WHERE yan tümcesine bağlanın ?AdfRangePartitionColumnName . Örneğin, Oracle için Amazon RDS'den paralel kopya bölümüne bakın.
No
partitionUpperBound Verileri kopyalamak için bölüm sütununun en yüksek değeri.
Bölüm seçeneği olduğunda DynamicRangeuygulayın. Kaynak verileri almak için bir sorgu kullanırsanız WHERE yan tümcesine bağlanın ?AdfRangePartitionUpbound . Örneğin, Oracle için Amazon RDS'den paralel kopya bölümüne bakın.
No
partitionLowerBound Verileri kopyalamak için bölüm sütununun en düşük değeri.
Bölüm seçeneği olduğunda DynamicRangeuygulayın. Kaynak verileri almak için bir sorgu kullanırsanız WHERE yan tümcesine bağlanın ?AdfRangePartitionLowbound . Örneğin, Oracle için Amazon RDS'den paralel kopya bölümüne bakın.
No

Örnek: Bölümleme olmadan temel bir sorgu kullanarak verileri kopyalama

"activities":[
    {
        "name": "CopyFromAmazonRdsForOracle",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Amazon RDS for Oracle input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AmazonRdsForOracleSource",
                "oracleReaderQuery": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Oracle için Amazon RDS'den paralel kopya

Oracle için Amazon RDS bağlayıcısı, Oracle için Amazon RDS'den paralel olarak veri kopyalamak için yerleşik veri bölümleme sağlar. Veri bölümleme seçeneklerini kopyalama etkinliğinin Kaynak sekmesinde bulabilirsiniz.

Screenshot of partition options.

Bölümlenmiş kopyayı etkinleştirdiğinizde hizmet, Oracle kaynağınızı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 Oracle için Amazon RDS veritabanınızdan verilerin bir bölümünü alır.

Özellikle Oracle için Amazon RDS veritabanınızdan 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 (yalnızca klasör adını belirtin) yazmanız önerilir; bu durumda performans tek bir dosyaya yazmaktan daha iyidir.

Senaryo Önerilen ayarlar
Fiziksel bölümleri olan büyük tablodan tam yük. 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.
Veri bölümleme için bir tamsayı sütunuyla birlikte fiziksel bölümler olmadan büyük tablodan tam yük. Bölüm seçenekleri: Dinamik aralık bölümü.
Bölüm sütunu: Verileri bölümleme için kullanılan sütunu belirtin. Belirtilmezse birincil anahtar sütunu kullanılır.
Fiziksel bölümler içeren özel bir sorgu kullanarak büyük miktarda veri yükleyin. Bölüm seçeneği: Tablonun fiziksel bölümleri.
Sorgu: SELECT * FROM <TABLENAME> PARTITION("?AdfTabularPartitionName") WHERE <your_additional_where_clause>.
Bölüm adı: Veri kopyalanacak bölüm adlarını belirtin. Belirtilmezse hizmet, Oracle için Amazon RDS veri kümesinde belirttiğiniz tablodaki fiziksel bölümleri otomatik olarak algılar.

Yürütme sırasında hizmet ?AdfTabularPartitionName yerine gerçek bölüm adını alır ve Oracle için Amazon RDS'ye gönderir.
Veri bölümleme için bir tamsayı sütunuylayken fiziksel bölümler olmadan özel bir sorgu kullanarak büyük miktarda veri yükleyin. Bölüm seçenekleri: Dinamik aralık bölümü.
Sorgu: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.
Bölüm sütunu: Verileri bölümleme için kullanılan sütunu belirtin. Tamsayı veri türüne sahip sütuna göre bölümleyebilirsiniz.
Bölüm üst sınırı ve bölüm alt sınırı: Yalnızca alt ve üst aralık arasındaki verileri almak için bölüm sütununa göre filtrelemek isteyip istemediğinizi belirtin.

Yürütme sırasında hizmet, , ?AdfRangePartitionUpboundve ?AdfRangePartitionLowbound değerlerini her bölüm için gerçek sütun adı ve değer aralıklarıyla değiştirir ?AdfRangePartitionColumnNameve Oracle için Amazon RDS'ye gönderir.
Örneğin, "ID" bölüm sütununuz alt sınır 1 ve üst sınır 80 olarak ayarlanırsa, paralel kopya 4 olarak ayarlanırsa, hizmet verileri 4 bölüme göre alır. Kimlikleri sırasıyla [1, 20], [21, 40], [41, 60] ve [61, 80] arasındadır.

Bahşiş

Bölümlenmemiş bir tablodan veri kopyalarken, bir tamsayı sütununa göre bölümleme yapmak için "Dinamik aralık" bölümleme seçeneğini kullanabilirsiniz. Kaynak verilerinizde bu tür bir sütun yoksa, bir sütun oluşturmak ve bunu bölüm sütunu olarak kullanmak için kaynak sorgudaki ORA_HASH işlevinden yararlanabilirsiniz.

Örnek: fiziksel bölüm içeren sorgu

"source": {
    "type": "AmazonRdsForOracleSource",
    "query": "SELECT * FROM <TABLENAME> PARTITION(\"?AdfTabularPartitionName\") WHERE <your_additional_where_clause>",
    "partitionOption": "PhysicalPartitionsOfTable",
    "partitionSettings": {
        "partitionNames": [
            "<partitionA_name>",
            "<partitionB_name>"
        ]
    }
}

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

"source": {
    "type": "AmazonRdsForOracleSource",
    "query": "SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column>",
        "partitionLowerBound": "<lower_value_of_partition_column>"
    }
}

Arama etkinliği özellikleri

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

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