Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ŞUNLARA UYGULANIR:
Azure Data Factory
Azure Synapse Analytics
İpucu
Microsoft Fabric'daki
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
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:
- Veri Kopyalama aracı
- Azure portalı
- .NET SDK
- Python SDK'sı
- Azure PowerShell
- REST API'si
- Azure Resource Manager şablonu
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.
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:
PostgreSQL araması yapın ve PostgreSQL için Azure veritabanı bağlayıcısını seçin.
Hizmet ayrıntılarını yapılandırın, bağlantıyı test edin ve yeni bağlı hizmeti oluşturun.
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:
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
Sistem tarafından atanan yönetilen kimlikle PostgreSQL için Azure verileri On.
Güvenlik altında, PostgreSQL için Azure Veri Tabanı kaynağınızda
Kimlik Doğrulaması Seçin
Yalnızca Microsoft Entra kimlik doğrulaması veya PostgreSQL ve Microsoft Entra kimlik doğrulaması kimlik doğrulama yöntemini seçin.
+ Microsoft Entra yöneticilerini ekle'yi seçin
Azure Data Factory kaynağına sistem tarafından atanan yönetilen kimliği Microsoft Entra Administrators'dan biri olarak ekleyin.
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:
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
postgreSQL kaynağı için Azure veritabanınıza User tarafından atanan Yönetilen Kimlik atayın
PostgreSQL için Azure veritabanı sunucu kaynağınızda,
Güvenlik Kimlik Doğrulaması Seçin
Authentication yönteminin yalnızca Microsoft Entra kimlik doğrulaması mı veya PostgreSQL ve Microsoft Entra kimlik doğrulaması olduğunu doğrulayın
+ Microsoft Entra yöneticileri ekle bağlantısını seçin ve kullanıcı tarafından atanan yönetilen kimliğinizi seçin
Azure Data Factory kaynağınıza User tarafından atanan Yönetilen Kimlik atayın
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ü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:
- 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.
- 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.
- 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.
- "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
- Birden çok komut içeren Tek toplu iş betiklerini birden çok toplu işe bölün.
- 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.
İlgili içerik
Kopyalama etkinliği tarafından kaynak ve havuz olarak desteklenen veri depolarının listesi için bkz . Desteklenen veri depoları.