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
Tip
Microsoft Fabric'daki
Bu makalede, MySQL veritabanından veri kopyalamak için Azure Data Factory ve Synapse Analytics işlem hatlarında Kopyalama Etkinliği'nin nasıl kullanılacağı açıklanmıştır. Kopyalama etkinlikleri genel bakışına dayanan, kopyalama etkinliği hakkında genel bir bilgi sunan makaleyi esas alır.
Note
Bu bağlayıcı Microsoft Fabric'daki Data Factory'de de kullanılabilir. Fabric özgü yapılandırma ve özellikler için MySQL bağlayıcısı Fabric belgelerine bakın.
Note
MySQL için Azure Veritabanı hizmetinden veya hizmetinden veri kopyalamak için özelleştirilmiş MySQL için Azure Veritabanı bağlayıcısını kullanın.
Important
MySQL bağlayıcısı sürüm 1.0 kaldırma aşamasındadır. MySQL bağlayıcısını sürüm 1.0'dan 2.0'a yükseltmeniz önerilir.
Desteklenen özellikler
Bu MySQL 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) Yerel 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.
Bu bağlantı aracı, MySQL bağlayıcısı sürüm 2.0 altında MySQL sürüm 5.5, 5.6, 5.7, 8.0, 8.1 ve 8.2'yi ve 1.0 sürümü için MySQL sürüm 5.6, 5.7 ve 8.0'i destekler.
Prerequisites
Veri deponuz bir yerel ağ, Azure sanal ağ veya Amazon Sanal Özel Bulut içinde bulunuyorsa, ona bağlanmak için kendinden barındırılan bir tümleştirme çalışma zamanı 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, izin verme listesine Azure Integration Runtime IP ekleyebilirsiniz.
Şirket içi ağa erişmek için, şirket içinde barındırılan tümleştirme çalışma zamanı yüklemeden ve yapılandırmadan Azure Data Factory 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 MySQL sürücüsü sağlar, bu nedenle herhangi bir sürücüyü el ile yüklemeniz gerekmez.
Başlangıç Yapmak
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 MySQL'e bağlı hizmet oluşturma
Azure portalı kullanıcı arabiriminde MySQL'e 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 göz atın ve Bağlı Hizmetler'i seçin, ardından Yeni'ye tıklayın:
MySQL'i arayın ve MySQL 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, MySQL 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
2.0 sürümünü kullanıyorsanız, MySQL bağlı hizmeti için aşağıdaki özellikler desteklenir:
| Property | Description | Required |
|---|---|---|
| type | Tür özelliği şu şekilde ayarlanmalıdır: MySql | Yes |
| driverVersion | Sürüm 2.0'ı seçtiğinizde sürücü sürümü. Değer v2'dir. | Yes |
| server | MySQL Sunucunuzun adı. | Yes |
| port | MySQL sunucusuna bağlanmak için bağlantı noktası numarası. | No |
| database | MySQL veritabanınızın adı. | Yes |
| username | Kullanıcı adınız. | Yes |
| password | Kullanıcı adının parolası. Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin. İsterseniz Azure Key Vault içinde depolanan bir gizli anahtarı kullanabilirsiniz. | Yes |
| sslMode | Bu seçenek, sürücünün MySQL'e bağlanırken TLS şifreleme ve doğrulama kullanıp kullanmadığını belirtir. Örneğin, SSLMode=<0/1/2/3/4>.Seçenekler: DEVRE DIŞI (0) / TERCIH EDİLEN (1) (Varsayılan) / GEREKLİ (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) |
Yes |
| useSystemTrustStore | Bu seçenek, sistem güven deposundan veya belirli bir PEM dosyasından CA sertifikasının kullanılıp kullanılmayacağını belirtir. Örneğin; UseSystemTrustStore=<0/1>Seçenekler: Etkin (1) / Devre Dışı (0) (Varsayılan) |
No |
| connectVia | Veri deposuna bağlanmak için kullanılacak Integration Runtime. Önkoşullar bölümünden daha fazla bilgi edinin. Belirtilmezse, varsayılan Azure Integration Runtime kullanır. | No |
| Ek bağlantı özellikleri | ||
| allowZeroDateTime | için bu özellik değerinin true belirtilmesi, özel "sıfır" tarih değerinin 0000-00-00 veritabanından alınmasına izin verir.
false olarak ayarlanırsa (varsayılan), tarih sütunları DateTime değerleri olarak döndürülür, bu da 0000-00-00 alınamayacağı anlamına gelir. MySQL, "sıfır" değerini 0000-00-00 "sahte tarih" olarak depolamanıza izin verir. Bazı durumlarda, bu özellik NULL değerleri kullanmaktan daha kullanışlıdır ve daha az veri ve dizin alanı kullanır. MySQL'de 0000-00-00'e izin vermemek için NO_ZERO_DATE modunu etkinleştirin. Daha fazla bilgi için bu makaleye bakın. |
No |
| connectionTimeout | Denemeyi sonlandırmadan ve hata oluşturmadan önce sunucu bağlantısını bekleme süresi (saniye cinsinden). | No |
| convertZeroDateTime | Geçersiz değerler içeren tarih veya tarih saat sütunları için true olarak ayarlayın, bu durumda DateTime.MinValue döndürülür. |
No |
| guidFormat | Hangi sütun türünün (varsa) GUID olarak okunması gerektiğini belirler. Bu özelliği arayarak her sütun türünün açıklaması için bu makaleye gidin. Sürüm 2.0, daha iyi performans için Char(36) değerini varsayılan olarak GUID türü olarak ele alır. Bağlayıcı, veritabanı işlemeyi kolaylaştırmak için Char(36) alanlarını GUID olarak ele alır. Bu işlem, GUID değerlerini ekleme, güncelleştirme ve alma gibi işlemleri basitleştirir ve bunların düz dizeler yerine uygulama kodunda GUID nesneleri olarak tutarlı bir şekilde yönetilmesini sağlar. Bu davranış, GUID'lerin birincil anahtar veya benzersiz tanımlayıcı olarak kullanıldığı ve daha iyi performans sağladığı senaryolarda özellikle yararlıdır. Bu varsayılan ayara ihtiyacınız yoksa, bağlantı özelliğinde yapılandırabilirsiniz guidFormat=none . |
No |
| sslCert | İstemciye ait PEM biçiminde olan SSL sertifika dosyasının yolu. SslKey de belirtilmelidir. | No |
| sslKey | PEM biçiminde istemcinin SSL özel anahtarının yolu. SslCert de belirtilmelidir. | No |
| treatTinyAsBoolean | true olarak ayarlandığında tinyint(1) değerleri Boole olarak döndürülür. Bu özelliğin false olarak ayarlanması, tinyint(1) değerinin SByte/Byte olarak döndürülmesine neden olur. Sürüm 2.0, tinyint(1) değerini varsayılan olarak Boole türü olarak ele alır. Daha fazla bilgi için bu makaleye bakın. Bağlayıcının sayısal değeri küçük olarak döndürmesine izin vermek için, bağlantı özelliklerinde treatTinyAsBoolean=false ayarını yapın. |
No |
Example:
{
"name": "MySQLLinkedService",
"properties": {
"type": "MySql",
"typeProperties": {
"server": "<server>",
"port": 3306,
"database": "<database>",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"sslmode": <sslmode>,
"usesystemtruststore": <UseSystemTrustStore>,
"driverVersion": "v2"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Örnek: Parolayı Azure Key Vault'ta depola
{
"name": "MySQLLinkedService",
"properties": {
"type": "MySql",
"typeProperties": {
"server": "<server>",
"port": 3306,
"database": "<database>",
"username": "<username>",
"sslmode": <sslmode>,
"usesystemtruststore": <UseSystemTrustStore>,
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
},
"driverVersion": "v2"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Sürüm 1.0 kullanıyorsanız aşağıdaki özellikler desteklenir:
| Property | Description | Required |
|---|---|---|
| type | Tür özelliği şu şekilde ayarlanmalıdır: MySql | Yes |
| connectionString | MySQL için Azure Veritabanı örneğine bağlanmak için gereken bilgileri belirtin. Ayrıca parolayı Azure Key Vault'a ekleyebilir ve password yapılandırmasını bağlantı dizesinden çıkarabilirsiniz. Daha fazla ayrıntı içeren aşağıdaki örneklere ve >Azure Key Vault makalesinde kimlik bilgilerini depola makalesine bakın. |
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. | No |
Tipik bir bağlantı dizesi Server=<server>;Port=<port>;Database=<database>;UID=<username>;PWD=<password>. Durumunuza göre ayarlayabileceğiniz daha fazla özellik:
| Property | Description | Required |
|---|---|---|
| sslMode | Bu seçenek, sürücünün MySQL'e bağlanırken TLS şifreleme ve doğrulama kullanıp kullanmadığını belirtir. Örneğin, SSLMode=<0/1/2/3/4>.Seçenekler: DEVRE DIŞI (0) / TERCIH EDİLEN (1) (Varsayılan) / GEREKLİ (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) |
Yes |
| SSLCert | İstemcinin kimliğini kanıtlamak için kullanılan SSL sertifikasını içeren bir .pem dosyasının tam yolu ve adı. Bu sertifikayı sunucuya göndermeden önce şifrelemek üzere özel bir anahtar belirtmek için özelliğini kullanın SSLKey . |
Evet, iki yönlü SSL doğrulaması kullanıyorsanız. |
| SSLKey | İki yönlü SSL doğrulaması sırasında istemci tarafı sertifikasını şifrelemek için kullanılan özel anahtarı içeren dosyanın tam yolu ve adı. | Evet, iki yönlü SSL doğrulaması kullanıyorsanız. |
| useSystemTrustStore | Bu seçenek, sistem güven deposundan veya belirli bir PEM dosyasından CA sertifikasının kullanılıp kullanılmayacağını belirtir. Örneğin; UseSystemTrustStore=<0/1>Seçenekler: Etkin (1) / Devre Dışı (0) (Varsayılan) |
No |
Example:
{
"name": "MySQLLinkedService",
"properties": {
"type": "MySql",
"typeProperties": {
"connectionString": "Server=<server>;Port=<port>;Database=<database>;UID=<username>;PWD=<password>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Veri kümesi özellikleri
Veri kümelerini tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için veri kümeleri makalesine bakın. Bu bölümde, MySQL veri kümesi tarafından desteklenen özelliklerin listesi sağlanır.
MySQL'den veri kopyalamak için aşağıdaki özellikler desteklenir:
| Property | Description | Required |
|---|---|---|
| type | Veri kümesinin tür özelliği şu şekilde ayarlanmalıdır: MySqlTable | Yes |
| tableName | MySQL veritabanındaki tablonun adı. | Hayır (etkinlik kaynağında "sorgu" belirtilirse) |
Example
{
"name": "MySQLDataset",
"properties":
{
"type": "MySqlTable",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<MySQL linked service name>",
"type": "LinkedServiceReference"
}
}
}
Yazılan veri kümesini RelationalTable kullanıyorsanız, bu veri kümesi mevcut haliyle desteklenmeye devam ederken, bundan sonra yeni bir veri kümesini kullanmanız tavsiye edilir.
Kopyalama etkinliği özellikleri
Etkinlikleri tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için Pipelines makalesine bakın. Bu bölümde, MySQL kaynağı tarafından desteklenen özelliklerin listesi sağlanır.
Kaynak olarak MySQL
MySQL'den veri kopyalamak için kopyalama etkinliği kaynağı bölümünde aşağıdaki özellikler desteklenir:
| Property | Description | Required |
|---|---|---|
| type | Kopyalama etkinliği kaynağının type özelliği şu şekilde ayarlanmalıdır: MySqlSource | Yes |
| query | Verileri okumak için özel SQL sorgusunu kullanın. Örneğin: "SELECT * FROM MyTable". |
Hayır (veri kümesinde "tableName" belirtilirse) |
Example:
"activities":[
{
"name": "CopyFromMySQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<MySQL input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "MySqlSource",
"query": "SELECT * FROM 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.
MySQL için veri türü eşlemesi
MySQL'den veri kopyalarken, MySQL veri türlerinden hizmet tarafından dahili olarak kullanılan ara veri türlerine aşağıdaki eşlemeler kullanılır. Kopyalama etkinliğinin kaynak şemayı ve veri türünü havuza nasıl eşlediğini öğrenmek için bkz . Şema ve veri türü eşlemeleri .
| MySQL veri türü | Ara hizmet veri türü (sürüm 2.0 için) | Ara hizmet veri türü (sürüm 1.0 için) |
|---|---|---|
| BIGINT | Int64 | Int64 |
| BIGINT İŞARETSIZ | UInt64 | Decimal |
| Bİt(1) | UInt64 | Boolean |
| BIT(M), M>1 | UInt64 | Byte[] |
| BLOB (İkili Büyük Nesne) | Byte[] | Byte[] |
| BOOL | Boolean (TreatTinyAsBoolean=false ise, SByte olarak eşlenir. TreatTinyAsBoolean varsayılan olarak true'dur) |
Int16 |
| CHAR | String | String |
| DATE | Tarih ve Saat | Tarih ve Saat |
| TARİHSAA T | Tarih ve Saat | Tarih ve Saat |
| ONDALIK | Decimal | Ondalık, Dize |
| ÇİFT | Double | Double |
| ÇIFT DUYARLıK | Double | Double |
| ENUM | String | String |
| FLOAT | Single | Single |
| INT | Int32 | Int32 |
| INT UNSIGNED (işaretsiz) | Int64 | Int64 |
| INTEGER | Int32 | Int32 |
| İŞARETSIZ TAMSAYı | UInt32 | Int64 |
| JSON | String | Byte[] |
| UZUN VARBINARY | Byte[] | Byte[] |
| UZUN VARCHAR | String | String |
| LONGBLOB | Byte[] | Byte[] |
| LONGTEXT | String | String |
| MEDIUMBLOB | Byte[] | Byte[] |
| MEDIUMINT | Int32 | Int32 |
| MEDIUMINT UNSIGNED (orta boyutlu işaretsiz tamsayı) | UInt32 | Int64 |
| ORTA METIN | String | String |
| SAYISAL | Decimal | Decimal |
| GERÇEK | Double | Double |
| SET | String | String |
| SMALLINT | Int16 | Int16 |
| Küçük Tamsayı İşaretsiz | UInt16 | Int32 |
| METİN | String | String |
| TIME | TimeSpan | TimeSpan |
| TIMESTAMP | Tarih ve Saat | Tarih ve Saat |
| TINYBLOB | Byte[] | Byte[] |
| TINYINT | SByte | Int16 |
| TINYINT imzasız | Int16 | Int16 |
| TINYTEXT | String | String |
| VARCHAR | String | String |
| YEAR | Int | Int |
Arama etkinliği özellikleri
Özellikler hakkında ayrıntılı bilgi edinmek için Arama etkinliği'ne bakın.
MySQL bağlayıcısını yükseltme
MySQL bağlayıcınızı yükseltmenize yardımcı olacak adımlar şunlardır:
Bağlı hizmeti düzenle sayfasında, Sürüm altında 2.0'ı seçin ve Bağlı hizmet özellikleri'ne başvurarak bağlı hizmeti yapılandırın.
Sürüm 2.0 için veri türü eşlemesi, sürüm 1.0'dan farklıdır. Sürüm 2.0 veri türü eşlemesini öğrenmek için bkz . MySQL için veri türü eşleme.
Sürüm 2.0 daha fazla MySQL sürümünü destekler. Daha fazla bilgi için bkz . Desteklenen özellikler.
MySQL bağlayıcısı sürüm 2.0 için en iyi yöntemler
Bu bölümde MySQL bağlayıcısı sürüm 2.0 için en iyi yöntemler tanıtlenmektedir.
SSL anahtarı yüklenemiyor
Belirtiler: Bağlantı özelliği olarak SSL Anahtarı ile MySQL bağlayıcısı sürüm 2.0 kullanıyorsanız, aşağıdaki hata iletisini alabilirsiniz:
Could not load the client key from your_pem_file: Unrecognized PEM header: -----BEGIN PRIVATE KEY-----Neden: Sürüm 2.0, PCKS#8 biçiminin şifresini çözemiyor.
Öneri: PEM biçimini PCKS#1'e dönüştürün.
MySQL sürüm 2.0 ile sürüm 1.0 arasındaki farklar
Aşağıdaki tabloda, sürüm 2.0 ile sürüm 1.0 kullanan MySQL arasındaki veri türü eşleme farkları gösterilmektedir.
| MySQL veri türü | Ara hizmet veri türü (sürüm 2.0 kullanılarak) | Ara hizmet veri türü (sürüm 1.0 kullanılarak) |
|---|---|---|
| BIGINT İŞARETSIZ | UInt64 | Decimal |
| Bİt(1) | UInt64 | Boolean |
| BIT(M), M>1 | UInt64 | Byte[] |
| BOOL | Boolean | Int16 |
| ONDALIK | Decimal | Ondalık, Dize |
| İŞARETSIZ TAMSAYı | UInt32 | Int64 |
| JSON | String | Byte[] |
| MEDIUMINT UNSIGNED (orta boyutlu işaretsiz tamsayı) | UInt32 | Int64 |
| Küçük Tamsayı İşaretsiz | UInt16 | Int32 |
| TINYINT | SByte | Int16 |
İlgili içerik
Kopyalama etkinliği tarafından kaynak ve havuz olarak desteklenen veri depolarının listesi için bkz . desteklenen veri depoları.