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

Not

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.

Önemli

Önerilen sürücü sürümünü kullanan MySQL bağlayıcısı, geliştirilmiş yerel MySQL desteği sağlar. Eski sürücü sürümüyle kullanıyorsanız lütfen 31 Ekim 2024'e kadar sürücü sürümünüzü yükseltin. Eski ve önerilen sürüm arasındaki fark hakkında ayrıntılı bilgi için bu bölüme bakın.

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) Ş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.

Bu bağlayıcı, eski sürücü sürümü için önerilen yeni sürücü sürümü v2 ve 5.6, 5.7 ve 8.0 altında MySQL sürüm 5.5, 5.6, 5.7, 8.0, 8.1 ve 8.2'yi 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 başlayarak yerleşik bir MySQL 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 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.

  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. MySQL'i arayın ve MySQL bağlayıcısını seçin.

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

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

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

Önerilen sürücü sürümünü kullanırsanız, MySQL 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: MySql Yes
driverVersion Önerilen sürücü sürümünü seçtiğinizde sürücü sürümü. Değer v2'dir. Yes
sunucu MySQL Sunucunuzun adı. Yes
port MySQL sunucusuna bağlanmak için bağlantı noktası numarası. Hayır
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'ta depolanan bir gizli diziye başvurabilirsiniz. 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)
Hayır
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

Örnek:

{
    "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: Azure Key Vault'ta parola depolama

{
    "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"
        }
    }
}

Eski sürücü sürümünü kullanıyorsanız aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
Tür 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 Azure Key Vault'a parola ekleyebilir ve yapılandırmayı password bağlantı dizesi çıkarabilirsiniz. Diğer ayrıntılarla birlikte aşağıdaki örneklere ve Azure Key Vault'ta kimlik bilgilerini depolama makalesine bakın.
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

Tipik bir bağlantı dizesi.Server=<server>;Port=<port>;Database=<database>;UID=<username>;PWD=<password> Servis talebinize göre ayarlayabileceğiniz diğer özellikler:

Özellik Açıklama Gerekli
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)
Hayır

Örnek:

{
    "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:

Özellik Açıklama Gerekli
Tür 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)

Örnek

{
    "name": "MySQLDataset",
    "properties":
    {
        "type": "MySqlTable",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<MySQL linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

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

Kopyalama etkinliğinin özellikleri

Etkinlikleri tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için İşlem hatları makalesine bakın. Bu bölümde, 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:

Özellik Açıklama Gerekli
Tür 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)

Örnek:

"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ü Ara hizmet veri türü (eski sürücü sürümü için)
bigint Int64 Int64
bigint unsigned Decimal Decimal
bit(1) UInt64 Boolean
bit(M), M>1 UInt64 Byte[]
blob Byte[] Byte[]
bool Boolean
(TreatTinyAsBoolean=false ise, olarak SByteeşlenir. TreatTinyAsBoolean varsayılan olarak true değeridir )
Int16
char String String
date Datetime Datetime
datetime Datetime Datetime
decimal Decimal Decimal, String
double Double Double
double precision Double Double
enum String String
float Single Single
int Int32 Int32
int unsigned Int64 Int64
integer Int32 Int32
integer unsigned Int64 Int64
JSON String -
long varbinary Byte[] Byte[]
long varchar String String
longblob Byte[] Byte[]
longtext String String
mediumblob Byte[] Byte[]
mediumint Int32 Int32
mediumint unsigned Int64 Int64
mediumtext String String
numeric Decimal Decimal
real Double Double
set String String
smallint Int16 Int16
smallint unsigned Int32 Int32
text String String
time TimeSpan TimeSpan
timestamp Datetime Datetime
tinyblob Byte[] Byte[]
tinyint SByte Int16
tinyint unsigned 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 sürücü sürümünü yükseltme

MySQL sürücü sürümünüzü yükseltmenize yardımcı olan adımlar şunlardır:

  1. Bağlı hizmeti düzenle sayfasında, Sürücü sürümü altında Önerilen'i seçin ve Bağlı hizmet özellikleri'ne başvurarak bağlı hizmeti yapılandırın.

  2. En son MySQL 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 . MySQL için veri türü eşlemesi.

  3. En son sürücü sürümü v2 daha fazla MySQL sürümünü destekler. Daha fazla bilgi için bkz . Desteklenen özellikler.

Aşağıdaki tabloda, önerilen ve eski sürücü sürümü kullanılarak MySQL arasındaki veri türü eşleme farkları gösterilmektedir.

MySQL veri türü Ara hizmet veri türü (önerilen sürücü sürümünü kullanarak) Ara hizmet veri türü (eski sürücü sürümünü kullanarak)
bit(1) UInt64 Boolean
bit(M), M>1 UInt64 Bayt[]
ikili Boolean Int16
JSON String Bayt[]

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