Azure Data Factory veya Synapse Analytics kullanarak DB2'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, DB2 veritabanından veri kopyalamak için Azure Data Factory ve Synapse Analytics işlem hatlarında Kopyalama Etkinliğinin nasıl kullanılacağı açıklanmaktadır. Kopyalama etkinliğine genel bir genel bakış sunan kopyalama etkinliğine genel bakış makalesini oluşturur.

Desteklenen özellikler

Bu DB2 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 DB2 bağlayıcısı Dağıtılmış İlişkisel Veritabanı Mimarisi (DRDA) SQL Access Manager (SQLAM) sürüm 9, 10 ve 11 ile aşağıdaki IBM DB2 platformlarını ve sürümlerini destekler. DDM/DRDA protokollerini kullanır.

  • Z/OS 12.1 için IBM DB2
  • Z/OS 11.1 için IBM DB2
  • i 7.3 için IBM DB2
  • i 7.2 için IBM DB2
  • i 7.1 için IBM DB2
  • LUW 11 için IBM DB2
  • LUW 10.5 için IBM DB2
  • LUW 10.1 için IBM DB2

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

Integration Runtime yerleşik bir DB2 sürücüsü sağlar, bu nedenle DB2'den veri kopyalarken herhangi 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 DB2'ye bağlı hizmet oluşturma

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

    Screenshot of the DB2 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 DB2.

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

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

Bağlı hizmet özellikleri

DB2 bağlı hizmeti için aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
type Tür özelliği şu şekilde ayarlanmalıdır: Db2 Evet
Connectionstring DB2 örneğine bağlanmak için gereken bilgileri belirtin.
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 makalesine bakın.
Evet
connectVia Veri deposuna bağlanmak için kullanılacak Integration Runtime. Önkoşullar bölümünden daha fazla bilgi edinin. Belirtilmezse, varsayılan Azure Integration Runtime'ı kullanır. No

bağlantı dizesi içindeki tipik özellikler:

Özellik Açıklama Gerekli
sunucu DB2 sunucusunun adı. Bağlantı noktası numarasını, iki nokta üst üste ile ayrılmış sunucu adının ardından belirtebilirsiniz; örneğin. server:port
DB2 bağlayıcısı DDM/DRDA protokollerini kullanır ve belirtilmezse varsayılan olarak 50000 numaralı bağlantı noktasını kullanır. Belirli DB2 veritabanınızın kullandığı bağlantı noktası sürüme ve ayarlarınıza göre farklı olabilir; örneğin DB2 LUW için varsayılan bağlantı noktası 50000,AS400 için varsayılan bağlantı noktası 446 veya TLS etkinleştirildiğinde 448'dir. Bağlantı noktasının genellikle nasıl yapılandırıldığına ilişkin aşağıdaki DB2 belgelerine bakın: DB2 z/OS, DB2 iSeries ve DB2 LUW.
Evet
database DB2 veritabanının adı. Evet
authenticationType DB2 veritabanına bağlanmak için kullanılan kimlik doğrulama türü.
İzin verilen değer: Temel.
Evet
username DB2 veritabanına bağlanmak için kullanıcı adını belirtin. Evet
password Kullanıcı adı için belirttiğiniz kullanıcı hesabının parolasını belirtin. Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin veya Azure Key Vault'ta depolanan bir gizli diziye başvurun. Evet
packageCollection Veritabanını sorgularken gerekli paketlerin hizmet tarafından otomatik olarak nerede oluşturulacağını belirtin. Bu ayar yapılmazsa, hizmet varsayılan değer olarak {username} kullanır. No
certificateCommonName Güvenli Yuva Katmanı (SSL) veya Aktarım Katmanı Güvenliği (TLS) şifrelemesi kullandığınızda, Sertifika ortak adı için bir değer girmeniz gerekir. No

Bahşiş

hata iletisi The package corresponding to an SQL statement execution request was not found. SQLSTATE=51002 SQLCODE=-805alırsanız, nedeni kullanıcı için gerekli bir paket oluşturulmamış olmasıdır. Varsayılan olarak hizmet, DB2'ye bağlanmak için kullandığınız kullanıcı olarak adlandırılan koleksiyon altında paketi oluşturmaya çalışır. Hizmetin veritabanını sorgularken gerekli paketleri oluşturmasını istediğiniz yeri belirtmek için paket koleksiyonu özelliğini belirtin. Paket koleksiyonu adını belirleyemiyorsanız, ayarlamayı packageCollection=NULLIDdeneyin.

Örnek:

{
    "name": "Db2LinkedService",
    "properties": {
        "type": "Db2",
        "typeProperties": {
            "connectionString": "server=<server:port>;database=<database>;authenticationType=Basic;username=<username>;password=<password>;packageCollection=<packagecollection>;certificateCommonName=<certname>;"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Örnek: Azure Key Vault'ta parola depolama

{
    "name": "Db2LinkedService",
    "properties": {
        "type": "Db2",
        "typeProperties": {
            "connectionString": "server=<server:port>;database=<database>;authenticationType=Basic;username=<username>;packageCollection=<packagecollection>;certificateCommonName=<certname>;",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

DB2 bağlı hizmetini aşağıdaki yükle birlikte kullanıyorsanız, bu hizmet yine olduğu gibi desteklenirken, ileriye dönük olarak yenisini kullanmanız önerilir.

Önceki yük:

{
    "name": "Db2LinkedService",
    "properties": {
        "type": "Db2",
        "typeProperties": {
            "server": "<servername:port>",
            "database": "<dbname>",
            "authenticationType": "Basic",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

DB2'den veri kopyalamak için aşağıdaki özellikler desteklenir:

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

Örnek

{
    "name": "DB2Dataset",
    "properties":
    {
        "type": "Db2Table",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<DB2 linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Yazılan veri kümesini kullanıyorsanız RelationalTable , bu veri kümesi olduğu gibi desteklenirken, ileriye dönük yeni bir veri kümesini kullanmanız önerilir.

Kopyalama etkinliğinin özellikleri

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

Kaynak olarak DB2

DB2'den veri kopyalamak için 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 şu şekilde ayarlanmalıdır: Db2Source Evet
query Verileri okumak için özel SQL sorgusunu kullanın. Örneğin: "query": "SELECT * FROM \"DB2ADMIN\".\"Customers\"". Hayır (veri kümesinde "tableName" belirtilirse)

Örnek:

"activities":[
    {
        "name": "CopyFromDB2",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<DB2 input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "Db2Source",
                "query": "SELECT * FROM \"DB2ADMIN\".\"Customers\""
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Yazılan kaynağı kullanıyorsanız RelationalSource , yine de olduğu gibi desteklenir, ancak bundan sonra yenisini kullanmanız önerilir.

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

DB2'den veri kopyalarken, DB2 veri türlerinden hizmet içinde 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 .

DB2 Veritabanı türü Ara hizmet veri türü
BigInt Int64
İkilik Bayt[]
Blob Bayt[]
Char String
Clob String
Date Datetime
DB2DynArray String
DbClob String
Ondalık Ondalık
DecimalFloat Decimal
Çift Çift
Kayan Çift
Grafik String
Tamsayı Int32
LongVarBinary Bayt[]
LongVarChar String
LongVarGraphic String
Sayısal Ondalık
Gerçek sayı Tekli
Smallint Int16
Zaman TimeSpan
Zaman damgası DateTime
Varbinary Bayt[]
Varchar String
Vargraphıc String
Xml Bayt[]

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