Azure Data Factory veya Synapse Analytics kullanarak PostgreSQL'den veri kopyalama

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

İpucu

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

Önemli

Yeni PostgreSQL bağlayıcısı, geliştirilmiş yerel PostgreSQL desteği ve daha iyi performans sağlar. Çözümünüzde yalnızca geriye dönük uyumluluk için olduğu gibi desteklenen eski PostgreSQL bağlayıcısını kullanıyorsanız PostgreSQL bağlayıcısı (eski) makalesine bakın.

Desteklenen özellikler

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

Desteklenen özellikler IR
Kopyalama etkinliği (kaynak/-) (1) (2)
Arama etkinliği (1) (2)

(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/havuz olarak desteklenen veri depolarının listesi için Desteklenen veri depoları tablosuna bakın.

Özellikle, bu PostgreSQL bağlayıcısı PostgreSQL sürüm 7.4 ve üzerini destekler.

Ö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, 3.7 sürümünden itibaren yerleşik bir PostgreSQL sürücüsü sağlar, bu nedenle 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 PostgreSQL'e bağlı hizmet oluşturma

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

    PostgreSQL bağlayıcısını seçin.

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

    PostgreSQL'e bağlı bir hizmet yapılandırın.

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

Aşağıdaki bölümlerde, PostgreSQL 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

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

Özellik Açıklama Gerekli
Tür Tür özelliği şu şekilde ayarlanmalıdır: PostgreSqlV2 Yes
sunucu PostgreSQL'in çalıştığı ana bilgisayar adını (ve isteğe bağlı olarak bağlantı noktasını) belirtir. Yes
port PostgreSQL sunucusunun TCP bağlantı noktası. Hayır
database Bağlanacak PostgreSQL veritabanı. Yes
username Bağlanacak kullanıcı adı. IntegratedSecurity kullanılıyorsa gerekli değildir. Yes
password Bağlanacak parola. IntegratedSecurity kullanılıyorsa gerekli değildir. Yes
sslMode Sunucu desteğine bağlı olarak SSL kullanılıp kullanılmayacağını denetler.
- Devre dışı bırak: 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: 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ıyı başarısız yapın. Ayrıca sunucu sertifikayı da doğrular.
- Tam doğrulama: Sunucu SSL'yi desteklemiyorsa bağlantıyı başarısız yapın. Ayrıca sunucu sertifikasını ana bilgisayar adıyla doğrular.
Seçenekler: Devre Dışı Bırak (0) / İzin Ver (1) / Tercih Et (2) (Varsayılan) / Gerekli (3) / Verify-ca (4) / Verify-full (5)
Hayır
authenticationType Veritabanına bağlanmak için kimlik doğrulama türü. Yalnızca Temel'i destekler. Yes
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. Hayır
Ek bağlantı özellikleri:
schema Şema arama yolunu ayarlar. Hayır
Havuzu Bağlantı havuzu kullanılması gerekip gerekmediği. Hayır
Connectiontimeout Denemeyi sonlandırmadan ve hata oluşturmadan önce bağlantı kurmaya çalışırken bekleme süresi (saniye cinsinden). Hayır
Commandtimeout Denemeyi sonlandırmadan ve hata oluşturmadan önce komutu yürütmeye çalışırken bekleme süresi (saniye cinsinden). Sonsuzluk için sıfır olarak ayarlayın. Hayır
Trustservercertificate Sunucu sertifikasının doğrulanmadan güvenilip güvenmeyeceği. Hayır
sslCertificate Sunucuya gönderilecek istemci sertifikasının konumu. Hayır
sslKey Sunucuya gönderilecek bir istemci sertifikasının istemci anahtarının konumu. Hayır
sslPassword İstemci sertifikası için anahtar parolası. Hayır
Readbuffersize Npgsql'in okurken kullandığı iç arabellek boyutunu belirler. Veritabanından büyük değerler aktarılırken artan performans iyileştirebilir. Hayır
logParameters Etkinleştirildiğinde, komutlar yürütülürken parametre değerleri günlüğe kaydedilir. Hayır
timezone Oturum saat dilimini alır veya ayarlar. Hayır
encoding PostgreSQL dize verilerini kodlamak/kodunu çözmek için kullanılacak .NET kodlamasını alır veya ayarlar. Hayır

Not

Şirket İçinde Barındırılan Tümleştirme Çalışma Zamanı'nı kullanırken ODBC bağlantısı üzerinden tam SSL doğrulaması yapabilmek için PostgreSQL bağlayıcısı yerine bir ODBC türü bağlantısı kullanmanız ve aşağıdaki yapılandırmayı tamamlamanız gerekir:

  1. Herhangi bir SHIR sunucusunda DSN'yi ayarlayın.
  2. SHIR sunucularına C:\Windows\ServiceProfiles\DIAHostService\AppData\Roaming\postgresql\root.crt dizinine PostgreSQL için uygun sertifikayı yerleştirin. ODBC sürücüsünün veritabanına ne zaman bağlandığını doğrulamak için SSL sertifikasını arayacağı > yer burasıdır.
  3. Veri fabrikası bağlantınızda, bağlantı dizesi SHIR sunucularınızda oluşturduğunuz DSN'yi işaret eden bir ODBC türü bağlantısı kullanın.

Örnek:

{
    "name": "PostgreSqlLinkedService",
    "properties": {
        "type": "PostgreSqlV2",
        "typeProperties": {
            "server": "<server>",
            "port": 5432,
            "database": "<database>",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            },
            "sslmode": <sslmode>,
            "authenticationType": "Basic"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Örnek: Azure Key Vault'ta parola depolama

{
    "name": "PostgreSqlLinkedService",
    "properties": {
        "type": "PostgreSqlV2",
        "typeProperties": {
            "server": "<server>",
            "port": 5432,
            "database": "<database>",
            "username": "<username>",
            "password": {
                "type": "AzureKeyVaultSecret",
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>",
                    "type": "LinkedServiceReference"
                },
                "secretName": "<secretName>"
            }
            "sslmode": <sslmode>,
            "authenticationType": "Basic"
        },
        "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 PostgreSQL veri kümesi tarafından desteklenen özelliklerin listesi sağlanır.

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

Özellik Açıklama Gerekli
Tür Veri kümesinin tür özelliği şu şekilde ayarlanmalıdır: PostgreSqlV2Table Yes
schema Şemanın adı. Hayır (etkinlik kaynağında "sorgu" belirtilirse)
table Tablonun adı. Hayır (etkinlik kaynağında "sorgu" belirtilirse)

Örnek

{
    "name": "PostgreSQLDataset",
    "properties":
    {
        "type": "PostgreSqlV2Table",
        "linkedServiceName": {
            "referenceName": "<PostgreSQL linked service name>",
            "type": "LinkedServiceReference"
        },
        "annotations": [],
        "schema": [],
        "typeProperties": {
            "schema": "<schema name>",
            "table": "<table name>"
        }
    }
}

Yazılan veri kümesini kullanıyorsanız RelationalTable , bu veri kümesi olduğu gibi desteklenmeye devam ederken, 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 PostgreSQL kaynağı tarafından desteklenen özelliklerin listesi sağlanır.

Kaynak olarak PostgreSQL

PostgreSQL'den veri kopyalamak için kopyalama etkinliği kaynağı bölümünde aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
Tür Kopyalama etkinliği kaynağının type özelliği şu şekilde ayarlanmalıdır: PostgreSqlV2Source Yes
query Verileri okumak için özel SQL sorgusunu kullanın. Örneğin: "query": "SELECT * FROM \"MySchema\".\"MyTable\"". Hayır (veri kümesinde "tableName" belirtilirse)

Not

Şema ve tablo adları büyük/küçük harfe duyarlıdır. Bunları sorguda "" (çift tırnak) içine alın.

Örnek:

"activities":[
    {
        "name": "CopyFromPostgreSQL",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<PostgreSQL input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "PostgreSqlV2Source",
                "query": "SELECT * FROM \"MySchema\".\"MyTable\""
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

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

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

PostgreSQL'den veri kopyalarken, aşağıdaki eşlemeler PostgreSQL veri türlerinden hizmet tarafından dahili olarak kullanılan ara veri türlerine 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 .

PostgreSql veri türü Ara hizmet veri türü PostgreSQL için ara hizmet veri türü (eski)
SmallInt Int16 Int16
Integer Int32 Int32
BigInt Int64 Int64
Decimal (Duyarlık <= 28) Decimal Decimal
Decimal (Duyarlık > 28) Desteklenmeyen String
Numeric Decimal Decimal
Real Single Single
Double Double Double
SmallSerial Int16 Int16
Serial Int32 Int32
BigSerial Int64 Int64
Money Decimal String
Char String String
Varchar String String
Text String String
Bytea Byte[] Byte[]
Timestamp DateTime DateTime
Timestamp with time zone DateTime String
Date DateTime DateTime
Time TimeSpan TimeSpan
Time with time zone DateTimeOffset String
Interval TimeSpan String
Boolean Boolean Boolean
Point String String
Line String String
Iseg String String
Box String String
Path String String
Polygon String String
Circle String String
Cidr String String
Inet String String
Macaddr String String
Macaddr8 String String
Tsvector String String
Tsquery String String
UUID Guid Guid
Json String String
Jsonb String String
Array String String
Bit Byte[] Byte[]
Bit varying Byte[] Byte[]
XML String String
IntArray String String
TextArray String String
NumbericArray String String
DateArray String String
Range String String
Bpchar String String

Arama etkinliği özellikleri

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

PostgreSQL bağlı hizmetini yükseltme

PostgreSQL bağlı hizmetinizi yükseltmenize yardımcı olan adımlar şunlardır:

  1. Yeni bir PostgreSQL bağlı hizmeti oluşturun ve Bağlı hizmet özelliklerine başvurarak bunu yapılandırın.

  2. En son PostgreSQL bağlı hizmeti için veri türü eşlemesi, eski sürümden farklıdır. En son veri türü eşlemesini öğrenmek için bkz . PostgreSQL için veri türü eşlemesi.

PostgreSQL ile PostgreSQL arasındaki farklar (eski)

Aşağıdaki tabloda PostgreSQL ile PostgreSQL (eski) arasındaki veri türü eşleme farkları gösterilmektedir.

PostgreSQL veri türü PostgreSQL için ara hizmet veri türü PostgreSQL için ara hizmet veri türü (eski)
Money Ondalık String
Saat dilimi ile zaman damgası DateTime String
Saat dilimi olan saat DateTimeOffset String
Aralık TimeSpan String
BigDecimal Desteklenmiyor. Alternatif olarak, BigDecimal'i String'e dönüştürmek için işlevini kullanın to_char() . String

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