Azure Data Factory veya Synapse Analytics kullanarak verileri PostgreSQL için Azure Veri Tabanı'e kopyalayın ve dönüştürün.

ŞUNLARA UYGULANIR: Azure Data Factory Azure Synapse Analytics

İpucu

Microsoft Fabric'daki Data Factory, daha basit bir mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip yeni nesil Azure Data Factory. Veri tümleştirmeyi yeni kullanmaya başladıysanız Fabric Data Factory ile başlayın. Mevcut ADF iş yükleri veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltebilir.

Bu makalede, Azure Data Factory ve Synapse Analytics işlem hatlarında Copy Activity (Kopyalama İşlemi) kullanılarak, verilerin PostgreSQL için Azure Veri Tabanı'den ve PostgreSQL için Azure Veri Tabanı'e kopyalanması hakkında bilgi verilmektedir. Ve, PostgreSQL için Azure Veri Tabanı'deki verileri dönüştürmek için Veri Akışı nasıl kullanılır. Daha fazla bilgi edinmek için Azure Data Factory ve Synapse Analytics giriş makalelerini okuyun.

Uyarı

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

Önemli

PostgreSQL için Azure Veri Tabanı sürüm 2.0, geliştirilmiş yerel PostgreSQL için Azure Veri Tabanı desteği sağlar. Çözümünüzde PostgreSQL için Azure Veri Tabanı 1.0 sürümünü kullanıyorsanız, PostgreSQL için Azure Veri Tabanı bağlayıcınızı en erken şekilde > yükseltmeniz önerilir.

Bu bağlayıcı, PostgreSQL için Azure Veri Tabanı hizmeti için özeldir. Şirket içinde veya bulutta bulunan genel bir PostgreSQL veritabanından veri kopyalamak için PostgreSQL bağlayıcısını kullanın.

Desteklenen özellikler

Bu PostgreSQL için Azure Veri Tabanı bağlayıcısı aşağıdaki özellikler için desteklenir:

Desteklenen özellikler Kızılötesi Yönetilen özel uç nokta Bağlayıcı tarafından desteklenen sürümler
Kopyalama etkinliği (kaynak/havuz) (1) (2) 1.0 ve 2.0
Veri akışı haritalama (kaynak/çıkış) (1) 1.0 ve 2.0
Arama etkinliği (1) (2) 1.0 ve 2.0
Betik etkinliği (1) (2) 2.0

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

Üç etkinlik, PostgreSQL için Azure Veri Tabanı Single Server, Flexible Server ve Azure Cosmos DB for PostgreSQL üzerinde çalışır.

Önemli

PostgreSQL için Azure Veri Tabanı Tek Sunucu 28 Mart 2025'te kullanımdan kaldırılacaktır. Bu tarihe kadar Esnek Sunucu'ya geçin. Geçiş kılavuzu için bu makaleye ve SSS'ye başvurabilirsiniz.

Başlarken

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 PostgreSQL için Azure Veri Tabanı bağlı hizmet oluşturma

Azure portalı kullanıcı arabiriminde PostgreSQL için Azure veritabanına 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 gidin ve Bağlı Hizmetler'i ve ardından Yeni'yi seçin:

     Azure Data Factory UI ile yeni bir bağlı hizmet oluşturun.

  2. PostgreSQL araması yapın ve PostgreSQL için Azure veritabanı bağlayıcısını seçin.

     PostgreSQL bağlayıcısı için Azure veritabanı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 veritabanı için PostgreSQL'e bağlı bir hizmet yapılandır.

Bağlayıcı yapılandırma ayrıntıları

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

Bağlı hizmet özellikleri

PostgreSQL için Azure Veri Tabanı bağlayıcı sürümü 2.0 Aktarım Katmanı Güvenliği (TLS) 1.3 ve birden çok Güvenli Yuva Katmanı (SSL) modunu destekler. Azure SQL Veritabanı bağlayıcı sürümünüzü sürüm 1.0'dan yükseltmek için bu section konusuna bakın. Özellik ayrıntıları için ilgili bölümlere bakın.

Sürüm 2.0

2.0 sürümünü uyguladığınızda bağlı PostgreSQL için Azure Veri Tabanı hizmeti için aşağıdaki özellikler desteklenir:

Mülk Açıklama Gerekli
Tür tür özelliği şu şekilde ayarlanmalıdır: AzurePostgreSql. Evet
Sürüm Belirttiğiniz sürüm. Bu durumda değer 2.0 olur. Evet
kimlik doğrulama türü Temel, hizmet sorumlusu, sistem tarafından atanan yönetilen kimlik veya kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulama türleri arasından seçim yapın Evet
sunucu PostgreSQL için Azure Veri Tabanı'nin çalıştığı ana makine adını ve isteğe bağlı olarak bağlantı noktasını belirtir. Evet
liman PostgreSQL için Azure Veri Tabanı sunucusunun TCP bağlantı noktası. Varsayılan değer şudur: 5432. Hayır
veritabanı Bağlanacak PostgreSQL için Azure Veri Tabanı veritabanının adı. Evet
ssl modu Sunucu desteğine bağlı olarak SSL kullanılıp kullanılmayacağını denetler.
- Devre dışı: SSL devre dışı bırakıldı. Sunucu SSL gerektiriyorsa bağlantı başarısız olur.
- İzin Ver: Sunucu izin veriyorsa SSL olmayan bağlantıları tercih edin, ancak SSL bağlantılarına izin verin.
- Tercih edilen: Sunucu izin veriyorsa SSL bağlantılarını tercih edin, ancak SSL olmadan bağlantılara izin verin.
- Gerekli: Sunucu SSL'yi desteklemiyorsa bağlantı başarısız olur.
- Verify_ca: Sunucu SSL'yi desteklemiyorsa bağlantı başarısız olur. Ayrıca sunucu sertifikayı da doğrular.
- Verify_full: Sunucu SSL'yi desteklemiyorsa bağlantı başarısız olur. Ayrıca sunucu sertifikasını ana bilgisayar adıyla doğrular.
Seçenekler: Devre dışı (0) / İzin Ver (1) / Tercih Edilen (2) (Varsayılan) / Gerekli (3) / Verify_ca (4) / Verify_full (5)
Hayır
connectVia (Bağlan) Bu özellik, veri deposuna bağlanmak için kullanılacak tümleştirme çalışma zamanını temsil eder. Azure Integration Runtime veya Özel barındırılan Integration Runtime'ı kullanabilirsiniz (eğer veri deponuz özel bir ağda bulunuyorsa). Belirtilmezse, varsayılan Azure Integration Runtime kullanır. Hayır
Ek bağlantı özellikleri:
şema Şema arama yolunu ayarlar. Hayır
Birleştirme Bağlantı havuzu kullanılması gerekip gerekmediği. Hayır
bağlantı zaman aşımı Denemeyi sonlandırmadan ve hata oluşturmadan önce bağlantı kurmaya çalışırken bekleme süresi (saniye cinsinden). Hayır
komutZaman Aşımı Denemeyi sonlandırmadan ve hata oluşturmadan önce komutu yürütmeye çalışırken bekleme süresi (saniye cinsinden). Sonsuzluk için sıfıra ayarlayın. Hayır
Sunucu Sertifikasına Güven Sunucu sertifikasının doğrulanmadan güvenilip güvenmeyeceği. Hayır
readBufferSize (Bellek Boyutu) Npgsql'in okurken kullandığı iç arabellek boyutunu belirler. Veritabanından büyük değerler aktarılırken artan performans iyileştirebilir. Hayır
saat dilimi Oturum saat dilimini alır veya ayarlar. Hayır
Kodlama PostgreSQL dize verilerini kodlamak/kodunu çözmek için .NET kodlamasını alır veya ayarlar. Hayır

Temel kimlik doğrulama

Mülk Açıklama Gerekli
kullanıcı adı Bağlanacak kullanıcı adı. IntegratedSecurity kullanılıyorsa gerekli değildir. Evet
şifre Bağlanmak için parola. IntegratedSecurity kullanılıyorsa gerekli değildir. Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin. İsterseniz Azure Key Vault içinde depolanan bir gizli anahtarı kullanabilirsiniz. Evet

Örnek:

{
    "name": "AzurePostgreSqlLinkedService",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": "5432",
            "database": "<database name>",
            "sslMode": 2,
            "username": "<user name>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        }
    }
}

Örnek:

Azure Key Vault'ta parolayı sakla

{
    "name": "AzurePostgreSqlLinkedService",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": "5432",
            "database": "<database name>",
            "sslMode": 2,
            "username": "<user name>",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        }
    }
}

Sistem tarafından atanan yönetilen kimlik doğrulaması

Veri fabrikası veya Synapse çalışma alanı, Azure'daki diğer kaynaklarda kimlik doğrulaması yaparken hizmeti temsil eden System tarafından atanan yönetilen kimlik ile ilişkilendirilebilir. PostgreSQL kimlik doğrulaması için Azure veritabanı için bu yönetilen kimliği 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 kimliği kullanmak için aşağıdaki adımları izleyin:

  1. Bir veri fabrikası veya Synapse çalışma alanı, sistem tarafından atanan yönetilen kimlikle ilişkilendirilebilir. Daha Fazlasını Öğrenin, Sistem tarafından atanan yönetilen kimlik oluştur

  2. Sistem tarafından atanan yönetilen kimlikle PostgreSQL için Azure verileri On.

     PostgreSQL için Azure veritabanında sistem tarafından atanan yönetilen kimlik yapılandırmasının ekran görüntüsü.

  3. Güvenlik altında, PostgreSQL için Azure Veri Tabanı kaynağınızda

    1. Kimlik Doğrulaması Seçin

    2. Yalnızca Microsoft Entra kimlik doğrulaması veya PostgreSQL ve Microsoft Entra kimlik doğrulaması kimlik doğrulama yöntemini seçin.

    3. + Microsoft Entra yöneticilerini ekle'yi seçin

    4. Azure Data Factory kaynağına sistem tarafından atanan yönetilen kimliği Microsoft Entra Administrators'dan biri olarak ekleyin.

      PostgreSQL için Azure Veri Tabanı yapılandırmasına sistem atamalı yönetilen kimlik eklemenin ekran görüntüsü.

  4. PostgreSQL bağlı hizmeti için bir Azure veritabanı yapılandırın.

Örnek:

{
    "name": "AzurePostgreSqlLinkedService",
    "type": "Microsoft.DataFactory/factories/linkedservices",
    "properties": {
        "annotations": [],
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "authenticationType": "SystemAssignedManagedIdentity"
        }
    }
}

Uyarı

Bu kimlik doğrulama türü, kendi ortamınızda barındırılan tümleştirme çalışma zamanı üzerinde desteklenmez.

Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması

Veri fabrikası veya Synapse çalışma alanı, Azure'daki diğer kaynaklarda kimlik doğrulaması yaparken hizmeti temsil eden User tarafından atanan yönetilen kimlik ile ilişkilendirilebilir. PostgreSQL kimlik doğrulaması için Azure veritabanı için bu yönetilen kimliği 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:

Mülk Açıklama Gerekli
yetki belgesi Kimlik bilgisi nesnesi olarak kullanıcı tarafından atanan yönetilen kimliği belirtin. Evet

Adımları da izlemeniz gerekir:

  1. Azure portalında User tarafından atanan Yönetilen Kimlik kaynağı oluşturduğunuzdan emin olun. Daha fazla bilgi edinmek için Kullanıcı tarafından atanan yönetilen kimlikleri yönetme bölümüne gidin

  2. postgreSQL kaynağı için Azure veritabanınıza User tarafından atanan Yönetilen Kimlik atayın

    1. PostgreSQL için Azure veritabanı sunucu kaynağınızda, Güvenlik

    2. Kimlik Doğrulaması Seçin

    3. Authentication yönteminin yalnızca Microsoft Entra kimlik doğrulaması mı veya PostgreSQL ve Microsoft Entra kimlik doğrulaması olduğunu doğrulayın

    4. + Microsoft Entra yöneticileri ekle bağlantısını seçin ve kullanıcı tarafından atanan yönetilen kimliğinizi seçin

      Azure veritabanındaki PostgreSQL sunucusunda kullanıcıya atanmış yönetilen kimlik yapılandırmasının ekran görüntüsü

  3. Azure Data Factory kaynağınıza User tarafından atanan Yönetilen Kimlik atayın

    1. Ayarlar'ı ve ardından Yönetilen Kimlikler'i seçin

    2. Kullanıcı tarafından atanan sekmesinin altında. + Ekle bağlantısını seçin ve kullanıcı tarafından yönetilen kimliğinizi seçin

      Azure Veri Fabrikası kaynağındaki kullanıcıya atanmış yönetilen kimlik yapılandırmasının ekran görüntüsü.

  4. PostgreSQL bağlı hizmeti için bir Azure veritabanı yapılandırın.

Örnek:

{
    "name": "AzurePostgreSqlLinkedService",
    "type": "Microsoft.DataFactory/factories/linkedservices",
    "properties": {
        "annotations": [],
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "authenticationType": "UserAssignedManagedIdentity",
            "credential": {
                "referenceName": "<your credential>",
                "type": "CredentialReference"
            }
        }
    }
}

Hizmet sorumlusu kimlik doğrulaması

Mülk Açıklama Gerekli
kullanıcı adı Hizmet sorumlusunun görünen adı Evet
kiracı PostgreSQL için Azure Veri Tabanı sunucusunun bulunduğu kiracı Evet
"servicePrincipalId (hizmet principalID'si)" Hizmet sorumlusunun uygulama kimliği Evet
hizmetPrensipKimlikBilgisiTürü Hizmet sorumlusu sertifikasının veya hizmet sorumlusu anahtarının istenen kimlik doğrulama yöntemi olup olmadığını seçin
- ServicePrincipalCert: Hizmet sorumlusu sertifikası olarak ayarlayın.
- ServicePrincipalKey: Hizmet sorumlusu anahtarı kimlik doğrulaması için hizmet sorumlusu anahtarı olarak ayarlayın.
Evet
servicePrincipalKey (hizmetPrincipalKey) İstemci gizli bilgi değeri. Hizmet sorumlusu anahtarı seçildiğinde kullanılır Evet
Azure Bulut Türü PostgreSQL için Azure Veri Tabanı sunucunuzun Azure bulut türünü seçin Evet
hizmetPrensibiEklenmişSertifika Hizmet temsilcisi sertifika dosyası Evet
servisAnaGömülüSertifikaŞifre Gerekirse hizmet sorumlusu sertifikası parolası Hayır

Örnek:

Hizmet ilkesi anahtarı

{
    "name": "AzurePostgreSqlLinkedService",
    "type": "Microsoft.DataFactory/factories/linkedservices",
    "properties": {
        "annotations": [],
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "username": "<service principal name>",
            "authenticationType": "<authentication type>",
            "tenant": "<tenant>",
            "servicePrincipalId": "<service principal ID>",
            "azureCloudType": "<azure cloud type>",
            "servicePrincipalCredentialType": "<service principal type>",
            "servicePrincipalKey": "<service principal key>"
        }
    }
}

Örnek:

Hizmet sorumlusu sertifikası

{
    "name": "AzurePostgreSqlLinkedService",
    "type": "Microsoft.DataFactory/factories/linkedservices",
    "properties": {
        "annotations": [],
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "username": "<service principal name>",
            "authenticationType": "<authentication type>",
            "tenant": "<tenant>",
            "servicePrincipalId": "<service principal ID>",
            "azureCloudType": "<azure cloud type>",
            "servicePrincipalCredentialType": "<service principal type>",
            "servicePrincipalEmbeddedCert": "<service principal certificate>",
            "servicePrincipalEmbeddedCertPassword": "<service principal embedded certificate password>"
        }
    }
}

Uyarı

hizmet sorumlusu ve kullanıcı tarafından atanan yönetilen kimlik kullanılarak Microsoft Entra ID kimlik doğrulaması, şirket içinde barındırılan tümleştirme çalışma zamanı sürüm 5.50 veya üzerinde desteklenir.

Sürüm 1.0

1.0 sürümünü uyguladığınızda bağlı PostgreSQL için Azure Veri Tabanı hizmeti için aşağıdaki özellikler desteklenir:

Mülk Açıklama Gerekli
Tür tür özelliği şu şekilde ayarlanmalıdır: AzurePostgreSql. Evet
Sürüm Belirttiğiniz sürüm. Bu durumda değer 1.0 olur. Evet
bağlantı dizesi PostgreSQL için Azure Veri Tabanı’e bağlanmak için bir Npgsql bağlantı dizgesi.
Azure Key Vault'e bir parola ekleyebilir ve password yapılandırmasını bağlantı dizesinden çıkarabilirsiniz. Daha fazla ayrıntı için aşağıdaki örneklere ve >Azure Key Vault'da kimlik bilgilerini depola bölümüne bakın.
Evet
connectVia (Bağlan) Bu özellik, veri deposuna bağlanmak için kullanılacak tümleştirme çalışma zamanını temsil eder. Azure Integration Runtime veya Özel barındırılan Integration Runtime'ı kullanabilirsiniz (eğer veri deponuz özel bir ağda bulunuyorsa). Belirtilmezse, varsayılan Azure Integration Runtime kullanır. Hayır

Tipik bir bağlantı dizesi host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;password=<password>. Durumunuza göre ayarlayabileceğiniz daha fazla özellik vardır:

Mülk Açıklama Seçenekler Gerekli
Şifreleme Yöntemi (EM) Sürücü ile veritabanı sunucusu arasında gönderilen verileri şifrelemek için sürücünün kullandığı yöntem. Örneğin EncryptionMethod=<0/1/6>; 0 (Şifreleme yok) (Varsayılan) / 1 (SSL) / 6 (RequestSSL) Hayır
ValidateServerCertificate (VSC) SSL şifrelemesi etkinleştirildiğinde sürücünün veritabanı sunucusu tarafından gönderilen sertifikayı doğrulayıp doğrulamadığını belirler (Şifreleme Yöntemi=1). Örneğin ValidateServerCertificate=<0/1>; 0 (Devre Dışı) (Varsayılan) / 1 (Etkin) Hayır

Örnek:

{
    "name": "AzurePostgreSqlLinkedService",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "1.0",
        "typeProperties": {
            "connectionString": "host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;password=<password>"
        }
    }
}

Örnek:

Azure Key Vault'ta parolayı sakla

{
    "name": "AzurePostgreSqlLinkedService",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "1.0",
        "typeProperties": {
            "connectionString": "host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        }
    }
}

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. Bu bölüm, PostgreSQL için Azure Veri Tabanı veri kümelerinde desteklediği özelliklerin listesini sağlar.

PostgreSQL için Azure Veri Tabanı'dan veri kopyalamak için veri kümesinin tür özelliğini AzurePostgreSqlTable olarak ayarlayın. Aşağıdaki özellikler desteklenir:

Mülk Açıklama Gerekli
Tür Veri kümesinin tür özelliği AzurePostgreSqlTable olarak ayarlanmalıdır. Evet
şema Şemanın adı. Hayır (etkinlik kaynağında "sorgu" belirtilirse)
tablo Tablo/görünümün adı. Hayır (etkinlik kaynağında "sorgu" belirtilirse)
tabloAdı Tablonun adı. Bu özellik geriye dönük uyumluluk için desteklenir. Yeni iş yükü için schema ve table kullanın. Hayır (etkinlik kaynağında "sorgu" belirtilirse)

Örnek:

{
    "name": "AzurePostgreSqlDataset",
    "properties": {
        "type": "AzurePostgreSqlTable",
        "linkedServiceName": {
            "referenceName": "<AzurePostgreSql linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        }
    }
}

Kopyalama etkinliği özellikleri

Etkinlikleri tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için bkz. Boru Hatları ve etkinlikler. Bu bölüm, PostgreSQL için Azure Veri Tabanı kaynağı tarafından desteklenen özelliklerin listesini sağlar.

Azure Veritabanı'nı PostgreSql için kaynak olarak kullanma

verileri PostgreSQL için Azure Veri Tabanı kopyalamak için kopyalama etkinliğindeki kaynak türünü AzurePostgreSqlSource olarak ayarlayın. Kopyalama etkinliği kaynağı bölümünde aşağıdaki özellikler desteklenir:

Mülk Açıklama Gerekli
Tür Kopyalama etkinliği kaynağının type özelliği AzurePostgreSqlSource olarak ayarlanmalıdır Evet
sorgu Verileri okumak için özel SQL sorgusunu kullanın. Örneğin: SELECT * FROM mytable veya SELECT * FROM "MyTable". PostgreSQL'de varlık adı, tırnak içinde belirtilmemişse büyük/küçük harfe duyarsız olarak değerlendirilir. Hayır (veri kümesindeki tableName özelliği belirtilmişse)
queryTimeout Komut yürütme girişimini sonlandırmadan ve hata oluşturmadan önce bekleme süresi varsayılan olarak 120 dakikadır. Bu özellik için parametre ayarlandıysa, izin verilen değerler "02:00:00" (120 dakika) gibi zaman aralığıdır. Daha fazla bilgi için bkz . CommandTimeout. Hayır
bölüm seçenekleri Azure SQL Veritabanı'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 Veritabanı 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 değilken uygulayın.
Hayır
altında partitionSettings:
bölümAdları Kopyalanması gereken fiziksel bölümlerin listesi.
Bölme seçeneği PhysicalPartitionsOfTable olduğunda uygulayın. Kaynak verileri almak için bir sorgu kullanırsanız, ?AdfTabularPartitionName'yi WHERE koşuluna ekleyin. Örneğin, PostgreSQL için Azure Veri Tabanı için Paralel kopya bölümüne bakın.
Hayır
partitionColumnName (bölümSütunAdı) Paralel kopyalamada aralık bölümleme için kullanılacak olan, tamsayı veya tarih/tarih saat türünde olan kaynak sütunun adını belirtin (, int, smallint, bigint, date, timestamp without time zone, timestamp with time zone veya time without time zone). Belirtilmezse, tablonun birincil anahtarı otomatik olarak algılanır ve bölüm sütunu olarak kullanılır.
Bölme seçeneği DynamicRange olduğunda uygulayın. Kaynak verileri almak için bir sorgu kullanırsanız, ?AdfRangePartitionColumnName 'yi WHERE koşuluna ekleyin. Örneğin, PostgreSQL için Azure Veri Tabanı için Paralel kopya bölümüne bakın.
Hayır
bölümÜstSınır Verilerin dışa kopyalanması için bölüm sütununun maksimum değeri.
Bölme seçeneği DynamicRange olduğunda uygulayın. Kaynak verileri almak için bir sorgu kullanırsanız, ?AdfRangePartitionUpbound'yi WHERE koşuluna ekleyin. Örneğin, PostgreSQL için Azure Veri Tabanı için Paralel kopya bölümüne bakın.
Hayır
partitionLowerBound Verileri kopyalamak için bölüm sütununun en düşük değeri.
Bölme seçeneği DynamicRange olduğunda uygulayın. Kaynak verileri almak için bir sorgu kullanırsanız, ?AdfRangePartitionLowbound'yi WHERE koşuluna ekleyin. Örneğin, PostgreSQL için Azure Veri Tabanı için Paralel kopya bölümüne bakın.
Hayır

Örnek:

"activities":[
    {
        "name": "CopyFromAzurePostgreSql",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<AzurePostgreSql input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AzurePostgreSqlSource",
                "query": "<custom query e.g. SELECT * FROM mytable>",
                "queryTimeout": "00:10:00"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Havuz olarak PostgreSQL için Azure Veri Tabanı

Verileri PostgreSQL için Azure Veri Tabanı kopyalamak için kopyalama etkinliğindeki havuz türünü SqlSink olarak ayarlayın. Kopyalama etkinliği havuzu bölümünde aşağıdaki özellikler desteklenir:

Mülk Açıklama Gerekli Bağlayıcı destek sürümü
Tür Kopyalama etkinliği hedefinin tür özelliği AzurePostgreSQLSink olarak ayarlanmalıdır. Evet Sürüm 1.0 ve Sürüm 2.0
preCopyScript Her çalıştırmada PostgreSQL için Azure Veri Tabanı veri yazmadan önce yürütülecek kopyalama etkinliği için bir SQL sorgusu belirtin. Önceden yüklenmiş verileri temizlemek için bu özelliği kullanabilirsiniz. Hayır Sürüm 1.0 ve Sürüm 2.0
yazmaYöntemi PostgreSQL için Azure Veri Tabanı içine veri yazmak için kullanılan yöntem.
İzin verilen değerler şunlardır: CopyCommand (daha yüksek performanslı varsayılan), BulkInsert ve Upsert (yalnızca Sürüm 2.0).
Hayır Sürüm 1.0 ve Sürüm 2.0
upsertSettings Yazma davranışı için ayarların grubunu belirtin.
WriteBehavior seçeneği olduğunda Upsertuygulayın.
Hayır Sürüm 2.0
altında upsertSettings:
anahtarlar Benzersiz satır belirleme için sütun adlarını belirtin. Tek bir anahtar veya bir dizi anahtar kullanılabilir. Anahtarlar birincil anahtar veya benzersiz bir sütun olmalıdır. Belirtilmezse, birincil anahtar kullanılır. Hayır Sürüm 2.0
writeBatchSize (yazmaToplamBoyutu) PostgreSQL için Azure Veri Tabanı'ye her toplu işlemde yüklenen satır sayısı.
İzin verilen değer, satır sayısını temsil eden bir tamsayıdır.
Hayır (varsayılan değer 1.000.000'dir) Sürüm 1.0 ve Sürüm 2.0
writeBatchZamanAşımı Zaman aşımına uğramadan önce toplu ekleme işleminin tamamlanması için bekleme süresi.
İzin verilen değerler Timespan (zaman aralığı) dizeleridir. Örnek olarak 00:30:00 (30 dakika) gösteriliyor.
Hayır (varsayılan değer 00:30:00'dır) Sürüm 1.0 ve Sürüm 2.0

Örnek 1: Kopyala Komutu

"activities":[
    {
        "name": "CopyToAzureDatabaseForPostgreSQL",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure PostgreSQL output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzurePostgreSqlSink",
                "preCopyScript": "<custom SQL script>",
                "writeMethod": "CopyCommand",
                "writeBatchSize": 1000000
            }
        }
    }
]

Örnek 2: Upsert verileri

"activities":[
    {
        "name": "CopyToAzureDatabaseForPostgreSQL",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure PostgreSQL output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzurePostgreSQLSink",
                "writeMethod": "Upsert",
                "upsertSettings": {
                    "keys": [
                        "<column name>"
                    ]
                },
            }
        }
    }
]

Verileri ekleme ve güncelleme

Kopyalama etkinliği upsert işlemlerini yerel olarak destekler. Upsert gerçekleştirmek için, kullanıcının birincil anahtarlar veya benzersiz sütunlar olan anahtar sütunlarını sağlaması gerekir. Kullanıcı anahtar sütunlarını sağlamazsa havuz tablosundaki birincil anahtar sütunları kullanılır. Kopyalama Etkinliği, havuz tablosunda anahtar sütun değerlerinin kaynak tablodakilerle eşleştiği anahtar olmayan sütunları güncelleştirir; aksi takdirde, yeni veriler ekler.

PostgreSQL için Azure Veritabanı paralel kopyalama

Kopyalama etkinliğindeki PostgreSQL için Azure Veri Tabanı 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 PostgreSQL için Azure Veri Tabanı 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 PostgreSQL için Azure Veri Tabanı verinin bir bölümünü alır.

Özellikle PostgreSQL için Azure Veri Tabanı 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
Büyük, fiziksel bölümleri olan tablodan tam yük alma. 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ütunu kullanarak, fiziksel bölümler olmadan büyük tablodan tam yükleme. 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 ?AdfTabularPartitionName WHERE <your_additional_where_clause>.
Bölüm adı: Veri kopyalamak için bir veya daha fazla bölüm adı belirtin. Belirtilmezse, hizmet PostgreSQL veri kümesinde belirttiğiniz tablodaki fiziksel bölümleri otomatik olarak algılar.

Yürütme sırasında hizmet, ?AdfTabularPartitionName değerini gerçek bölüm adıyla değiştirir ve PostgreSQL için Azure Veri Tabanı 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 ?AdfTabularPartitionName 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ı veya tarih/tarih saat 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, ?AdfRangePartitionColumnName, ?AdfRangePartitionUpbound ve ?AdfRangePartitionLowbound yerine her bölümün gerçek sütun adını ve değer aralıklarını ekler ve PostgreSQL için Azure Veri Tabanı 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 dört bölüme göre veri alır. Kimlikleri sırasıyla [1,20], [21, 40], [41, 60] ve [61, 80] arasındadır.

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 paralelliği derecesi" bölüm numaralarını denetler ve bu sayıyı çok büyük ayarlamak bazen performansı zedeler. Bu sayıyı (DIU veya Şirket içinde barındırılan IR düğümlerinin sayısı) * (2 - 4) olarak ayarlamanızı öneririz.

Örnek: Fiziksel bölümleri olan büyük tablodan tam yükleme

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

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

"source": {
    "type": "AzurePostgreSqlSource",
    "query": "SELECT * FROM <TableName> WHERE ?AdfDynamicRangePartitionCondition 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>"
    }
}

Haritalama veri akışı özellikleri

Eşleme veri akışındaki verileri dönüştürürken, PostgreSQL için Azure Veri Tabanı tablolarını okuyabilir ve tablolara yazabilirsiniz. Daha fazla bilgi için, eşleme veri akışlarındaki kaynak dönüştürme ve havuz dönüşümüne bakınız. Kaynak ve havuz türü olarak PostgreSQL için Azure Veri Tabanı veri kümesi veya inline veri kümesi kullanmayı seçebilirsiniz.

Kaynak dönüştürme

Aşağıdaki tabloda, PostgreSQL için Azure Veri Tabanı kaynağı tarafından desteklenen özellikler listelenmektedir. Bu özellikleri Kaynak seçenekleri sekmesinde düzenleyebilirsiniz.

Veri Akışı Adı Açıklama Gerekli İzin verilen değerler Veri akışı betiği özelliği
Tablo Giriş olarak Tablo'yı seçerseniz, veri akışı veri kümesinde belirtilen tablodan tüm verileri getirir. Hayır - (yalnızca satır içi veri kümesi için)
tabloAdı
Sorgu Giriş olarak Sorgu'yu seçerseniz, kaynaktan veri getirmek için bir SQL sorgusu belirtin. Bu sorgu, veri kümesinde belirttiğiniz tüm tabloları geçersiz kılar. Sorguları kullanmak, test veya arama için satırları azaltmanın harika bir yoludur.

Order By yan tümcesi desteklenmez, ancak tam SELECT FROM deyimi ayarlayabilirsiniz. Kullanıcı tanımlı tablo işlevlerini de kullanabilirsiniz. select * from udfGetData() , SQL'de veri akışında kullanabileceğiniz bir tablo döndüren bir UDF'dir.
Sorgu örneği: select * from mytable where customerId > 1000 and customerId < 2000 veya select * from "MyTable". PostgreSQL'de varlık adı, tırnak içinde belirtilmemişse büyük/küçük harfe duyarsız olarak değerlendirilir.
Hayır Dize sorgu
Şema adı Giriş olarak Saklı yordam'ı seçerseniz saklı yordamın şema adını belirtin veya hizmetlerden şema adlarını bulmasını istemek için Yenile'yi seçin. Hayır Dize şemaAdı
Saklı prosedür Giriş olarak Saklı yordam'ı seçerseniz, kaynak tablodaki verileri okumak için saklı yordamın adını belirtin veya hizmetten yordam adlarını bulmasını istemek için Yenile'yi seçin. Evet (Saklı yordamı girdi olarak seçerseniz) Dize prosedürAdı
Yordam parametreleri Giriş olarak Saklı yordam'ı seçerseniz, saklı yordam için herhangi bir giriş parametresini yordamda ayarlanan sırayla belirtin veya formu @paraNamekullanarak tüm yordam parametrelerini içeri aktarmak için İçeri Aktar'ı seçin. Hayır Dizi Girişler
Toplu işlem boyutu Büyük verileri dilimlere ayırmak için bir toplu iş boyutu belirtin. Hayır Tamsayı yığınBoyutu
Yalıtım Düzeyi Aşağıdaki yalıtım düzeylerinden birini seçin:
- Okundu Taahhüt Edilen
- Kayıtsız Okuma (varsayılan)
- Yinelenebilir Okuma
-Serileştirilebilir
- Yok (yalıtım düzeyini es geç)
Hayır READ_COMMITTED (Okunan_Onaylı)
OKUNMAMIŞLARI_OKU
TEKRARLANABİLİR_OKUMA
SERİLEŞTİRİLEBİLİR
HİÇBİRİ
izolasyon seviyesi

PostgreSQL için Azure Veri Tabanı için kaynak betik örneği

Kaynak türü olarak PostgreSQL için Azure Veri Tabanı kullandığınızda, ilişkili veri akışı betiği şöyledir:

source(allowSchemaDrift: true,
    validateSchema: false,
    isolationLevel: 'READ_UNCOMMITTED',
    query: 'select * from mytable',
    format: 'query') ~> AzurePostgreSQLSource

Lavabo dönüşümü

Aşağıdaki tabloda PostgreSQL için Azure Veri Tabanı havuzu tarafından desteklenen özellikler listelenmektedir. Bu özellikleri Havuz seçenekleri sekmesinde düzenleyebilirsiniz.

Veri Akışı Adı Açıklama Gerekli İzin verilen değerler Veri akışı betiği özelliği
Güncelleştirme yöntemi Veritabanı hedefinizde hangi işlemlere izin verileceğini belirtin. Varsayılan değer yalnızca eklemelere izin vermektir.
Satırları güncelleştirmek, eklemek veya silmek için, bu işlemler için satırları etiketlemek amacıyla bir Satır dönüşümü gerekir.
Evet true veya false silinebilir
eklenebilir
güncelleştirilebilir
eklenip güncellenebilir
Anahtar sütunlar Güncelleştirmeler, upsert'ler ve silmeler için, hangi satırın değiştirileceğini belirlemek için anahtar sütunların ayarlanması gerekir.
Anahtar olarak seçtiğiniz sütun adı, sonraki güncelleştirme, ekleme/güncelleme (upsert) veya silme işlemlerinde bir parça olarak kullanılır. Bu nedenle, Sink eşlemesinde var olan bir sütun seçmelisiniz.
Hayır Dizi anahtarlar
Anahtar sütunları yazmayı atlama Değeri anahtar sütununa yazmak istemiyorsanız "Anahtar sütunlarını yazmayı atla" seçeneğini belirleyin. Hayır true veya false AnahtarYazmalarınıAtla
Tablo işlemi Yazmadan önce hedef tablodan tüm satırların yeniden oluşturulmasını veya kaldırılıp kaldırılmayacağını belirler.
- Yok: Tabloda herhangi bir işlem yapılmaz.
- Yeniden oluştur: Tablo silinir ve yeniden oluşturulur. Dinamik olarak yeni bir tablo oluşturuyorsanız gereklidir.
- Truncate: Hedef tablodaki tüm satırlar kaldırılır.
Hayır true veya false Yeniden oluştur
kısaltmak
Toplu işlem boyutu Her toplu işlemde kaç satır yazıldığını belirtin. Daha büyük toplu işlem boyutları sıkıştırmayı ve bellek iyileştirmeyi geliştirir, ancak verileri önbelleğe alırken hafıza hatası oluşma riski taşır. Hayır Tamsayı yığınBoyutu
Kullanıcı veritabanı şemasını seçin Varsayılan olarak, geçici bir tablo, hazırlık aşaması olarak sink şeması altında oluşturulur. Alternatif olarak, Havuz şeması kullan seçeneğinin işaretini kaldırabilir ve bunun yerine, Data Factory'nin yukarı akış verilerini yüklemek ve tamamlandıktan sonra onları otomatik olarak temizlemek için hazırlık tablosu oluşturacağı bir şema adı belirleyebilirsiniz. Veritabanında tablo oluşturma iznine sahip olduğunuzdan ve şemada değişiklik iznine sahip olduğunuzdan emin olun. Hayır Dize geçişŞemasıAdı
SQL Scriptleri Öncesi ve Sonrası 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 belirtin. Hayır Dize preSQL'ler
postSQL'ler

İpucu

  1. Birden çok komut içeren Tek toplu iş betiklerini birden çok toplu işe bölün.
  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
  • 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.

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

  • Baştan okumaya 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ülmesiyle ilgili tüm satırları okumasını sağlar.

PostgreSQL için Azure Veri Tabanı havuz betiği örneği

havuz türü olarak PostgreSQL için Azure Veri Tabanı kullandığınızda, ilişkili veri akışı betiği şöyledir:

IncomingStream sink(allowSchemaDrift: true,
    validateSchema: false,
    deletable:false,
    insertable:true,
    updateable:true,
    upsertable:true,
    keys:['keyColumn'],
    format: 'table',
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> AzurePostgreSqlSink

Komut dosyası etkinliği

Önemli

Betik etkinliği yalnızca sürüm 2.0 bağlayıcısında desteklenir.

Önemli

Çıkış parametrelerini kullanan çok sorgulu deyimler desteklenmez. Çıkış sorgularını aynı veya farklı betik etkinliği içinde ayrı betik bloklarına bölmeniz önerilir.

Konumsal parametreleri kullanan çok sorgulu deyimler desteklenmez. Konumsal sorguları aynı veya farklı betik etkinliği içinde ayrı betik bloklarına bölmeniz önerilir.

Betik etkinliği hakkında daha fazla bilgi için bkz. Betik etkinliği.

Arama etkinliği özellikleri

Özellikler hakkında daha fazla bilgi için Arama etkinliği bölümüne bkz.

PostgreSQL için Azure Veri Tabanı bağlayıcısını yükseltme

Bağlı hizmeti düzenle sayfasında, Sürüm altında 2.0'ı seçin ve Bağlı hizmet özellikleri sürüm 2.0'a başvurarak bağlı hizmeti yapılandırın.

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