Azure Data Factory veya Synapse Analytics kullanarak MySQL için Azure Veritabanı verileri kopyalama ve dönüştürme
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, Azure Data Factory veya Synapse Analytics işlem hatlarında kopyalama etkinliğini kullanarak verileri MySQL için Azure Veritabanı ve MySQL için Azure Veritabanı'de verileri dönüştürmek için Veri Akışı kullanma adımları açıklanmaktadır. Daha fazla bilgi edinmek için Azure Data Factory ve Synapse Analytics'e yönelik giriş makalelerini okuyun.
Bu bağlayıcı,
Şirket içinde veya bulutta bulunan genel MySQL veritabanından veri kopyalamak için MySQL bağlayıcısını kullanın.
Önkoşullar
Bu hızlı başlangıç için başlangıç noktası olarak aşağıda belirtilen aşağıdaki kaynaklar ve yapılandırma gerekir:
- Genel erişime veya özel uç noktaya sahip MySQL için mevcut bir Azure veritabanı Tek sunucu veya MySQL Esnek Sunucusu.
- MySQL sunucusunun ağ sayfasında Azure'daki herhangi bir Azure hizmetinden bu sunucuya genel erişime izin ver'i etkinleştirin. Bu, Data factory studio'yu kullanmanıza olanak sağlar.
Desteklenen özellikler
Bu MySQL için Azure Veritabanı bağlayıcısı aşağıdaki özellikler için desteklenir:
Desteklenen özellikler | IR | Yönetilen özel uç nokta |
---|---|---|
Kopyalama etkinliği (kaynak/havuz) | (1) (2) | ✓ |
Eşleme veri akışı (kaynak/havuz) | (1) | ✓ |
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ı
Başlarken
İşlem hattıyla Kopyalama etkinliği gerçekleştirmek için aşağıdaki araçlardan veya SDK'lardan birini kullanabilirsiniz:
- Veri Kopyalama aracı
- Azure portal
- .NET SDK'sı
- Python SDK'sı
- Azure PowerShell
- The REST API
- Azure Resource Manager şablonu
Kullanıcı arabirimini kullanarak MySQL için Azure Veritabanı bağlı hizmet oluşturma
Azure portalı kullanıcı arabiriminde MySQL için Azure Veritabanı bağlı bir hizmet oluşturmak için aşağıdaki adımları kullanın.
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:
MySQL'i arayın ve MySQL 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, MySQL için Azure Veritabanı 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
Bağlı MySQL için Azure Veritabanı hizmet için aşağıdaki özellikler desteklenir:
Özellik | Açıklama | Gerekli |
---|---|---|
Tür | Tür özelliği şu şekilde ayarlanmalıdır: AzureMySql | 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. Azure Integration Runtime veya Şirket İçinde Barındırılan Tümleştirme Çalışma Zamanı'nı (veri deponuz özel ağda bulunuyorsa) kullanabilirsiniz. Belirtilmezse, varsayılan Azure Integration Runtime'ı kullanır. | Hayır |
Tipik bir bağlantı dizesi.Server=<server>.mysql.database.azure.com;Port=<port>;Database=<database>;UID=<username>;PWD=<password>
Servis talebinize göre ayarlayabileceğiniz diğer özellikler:
Özellik | Açıklama | Seçenekler | Zorunlu |
---|---|---|---|
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> |
DEVRE DIŞI (0) / TERCIH EDİLEN (1) (Varsayılan) / GEREKLİ (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) | Hayır |
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>; |
Etkin (1) / Devre Dışı (0) (Varsayılan) | Hayır |
Örnek:
{
"name": "AzureDatabaseForMySQLLinkedService",
"properties": {
"type": "AzureMySql",
"typeProperties": {
"connectionString": "Server=<server>.mysql.database.azure.com;Port=<port>;Database=<database>;UID=<username>;PWD=<password>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Örnek: Azure Key Vault'ta parola depolama
{
"name": "AzureDatabaseForMySQLLinkedService",
"properties": {
"type": "AzureMySql",
"typeProperties": {
"connectionString": "Server=<server>.mysql.database.azure.com;Port=<port>;Database=<database>;UID=<username>;",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"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 için Azure Veritabanı veri kümesi tarafından desteklenen özelliklerin listesi sağlanır.
MySQL için Azure Veritabanı'dan veri kopyalamak için veri kümesinin tür özelliğini AzureMySqlTable olarak ayarlayın. Aşağıdaki özellikler desteklenir:
Özellik | Açıklama | Gerekli |
---|---|---|
Tür | Veri kümesinin tür özelliği şu şekilde ayarlanmalıdır: AzureMySqlTable | Yes |
tableName | MySQL veritabanındaki tablonun adı. | Hayır (etkinlik kaynağında "sorgu" belirtilirse) |
Örnek
{
"name": "AzureMySQLDataset",
"properties": {
"type": "AzureMySqlTable",
"linkedServiceName": {
"referenceName": "<Azure MySQL linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"tableName": "<table name>"
}
}
}
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üm, MySQL için Azure Veritabanı kaynak ve havuz tarafından desteklenen özelliklerin listesini sağlar.
Kaynak olarak MySQL için Azure Veritabanı
verileri MySQL için Azure Veritabanı 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: AzureMySqlSource | Yes |
query | Verileri okumak için özel SQL sorgusunu kullanın. Örneğin: "SELECT * FROM MyTable" . |
Hayır (veri kümesinde "tableName" belirtilirse) |
queryCommandTimeout | Sorgu isteğinin zaman aşımına uğraması için bekleme süresi. Varsayılan değer 120 dakikadır (02:00:00) | Hayır |
Örnek:
"activities":[
{
"name": "CopyFromAzureDatabaseForMySQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<Azure MySQL input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "AzureMySqlSource",
"query": "<custom query e.g. SELECT * FROM MyTable>"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Havuz olarak MySQL için Azure Veritabanı
Verileri MySQL için Azure Veritabanı kopyalamak için kopyalama etkinliği havuzu bölümünde aşağıdaki özellikler desteklenir:
Özellik | Açıklama | Gerekli |
---|---|---|
Tür | Kopyalama etkinliği havuzu type özelliği şu şekilde ayarlanmalıdır: AzureMySqlSink | Yes |
preCopyScript | Her çalıştırmada MySQL için Azure Veritabanı 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 |
writeBatchSize | Arabellek boyutu writeBatchSize değerine ulaştığında MySQL için Azure Veritabanı tablosuna veri ekler. İzin verilen değer, satır sayısını temsil eden tamsayıdır. |
Hayır (varsayılan değer 10.000'dir) |
writeBatchTimeout | Zaman aşımına uğramadan önce toplu ekleme işleminin tamamlanması için bekleme süresi. İzin verilen değerler Zaman Aralığı'dır. Örnek olarak 00:30:00 (30 dakika) gösteriliyor. |
Hayır (varsayılan değer: 00:00:30) |
Örnek:
"activities":[
{
"name": "CopyToAzureDatabaseForMySQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Azure MySQL output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "AzureMySqlSink",
"preCopyScript": "<custom SQL script>",
"writeBatchSize": 100000
}
}
}
]
Eşleme veri akışı özellikleri
Eşleme veri akışındaki verileri dönüştürürken, MySQL için Azure Veritabanı tablolarını okuyabilir ve tablolara yazabilirsiniz. Daha fazla bilgi için bkz . Eşleme veri akışlarında kaynak dönüştürme ve havuz dönüşümü . Kaynak ve havuz türü olarak bir MySQL için Azure Veritabanı veri kümesini veya satır içi veri kümesini kullanmayı seçebilirsiniz.
Kaynak dönüştürme
Aşağıdaki tabloda, MySQL için Azure Veritabanı 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) tableName |
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 bir 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" . |
Hayır | String | query |
Saklı yordam | 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 (Giriş olarak Saklı yordam'ı seçerseniz) | String | procedureName |
Yordam parametreleri | Giriş olarak Saklı yordam'ı seçerseniz, saklı yordam için herhangi bir giriş parametresini yordamda ayarlanan sırayla belirtin veya formu @paraName kullanarak tüm yordam parametrelerini içeri aktarmak için İçeri Aktar'ı seçin. |
Hayır | Dizi | Giriş |
Toplu iş boyutu | Büyük verileri toplu işlere ayırmak için bir toplu iş boyutu belirtin. | Hayır | Tamsayı | batchSize |
Yalıtım Düzeyi | Aşağıdaki yalıtım düzeylerinden birini seçin: - Okundu - Okunmamış (varsayılan) - Yinelenebilir Okuma -Serileştirilebilir - Yok (yalıtım düzeyini yoksay) |
Hayır | READ_COMMITTED READ_UNCOMMITTED REPEATABLE_READ SERİLEŞTİRİLEBİLİR HİÇBİRİ |
isolationLevel |
MySQL için Azure Veritabanı kaynak betik örneği
Kaynak türü olarak MySQL için Azure Veritabanı kullandığınızda, ilişkili veri akışı betiği şöyledir:
source(allowSchemaDrift: true,
validateSchema: false,
isolationLevel: 'READ_UNCOMMITTED',
query: 'select * from mytable',
format: 'query') ~> AzureMySQLSource
Havuz dönüşümü
Aşağıdaki tabloda MySQL için Azure Veritabanı 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 eylemlerin satırlarını etiketlemek için bir Değişiklik satırı dönüştürmesi gerekir. |
Yes | true veya false |
deletable eklenebilir güncelleştirilebilir upsertable |
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ın ayarlanması gerekir. Anahtar olarak seçtiğiniz sütun adı, sonraki upsert, delete güncelleştirmesinin bir parçası olarak kullanılır. Bu nedenle, Havuz eşlemesinde var olan bir sütun seçmelisiniz. |
Hayır | Dizi | keys |
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 |
skipKeyWrites |
Tablo eylemi | 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 hiçbir eylem yapılmaz. - Yeniden oluştur: Tablo bırakılır ve yeniden oluşturulur. Dinamik olarak yeni bir tablo oluşturuyorsanız gereklidir. - Kesme: Hedef tablodaki tüm satırlar kaldırılır. |
Hayır | true veya false |
Yeni -den oluşturun truncate |
Toplu iş boyutu | Her toplu işlemde kaç satır yazıldığını belirtin. Daha büyük toplu iş boyutları sıkıştırmayı ve bellek iyileştirmeyi geliştirir, ancak verileri önbelleğe alırken bellek özel durumlarının dışına çıkma riskiyle karşı karşıyadır. | Hayır | Tamsayı | batchSize |
SQL Betikleri Ö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 | String | preSQL'ler postSQL'ler |
İpucu
- Birden çok komut içeren tek toplu iş betiklerini birden çok toplu iş olarak bölmeniz önerilir.
- 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.
Okumaya baştan 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ülmesinde tüm satırları okumasını bildirecektir.
havuz betiği örneği MySQL için Azure Veritabanı
havuz türü olarak MySQL için Azure Veritabanı 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) ~> AzureMySQLSink
Arama etkinliği özellikleri
Özellikler hakkında ayrıntılı bilgi edinmek için Arama etkinliği'ne bakın.
MySQL için Azure Veritabanı için veri türü eşlemesi
MySQL için Azure Veritabanı verileri kopyalarken, MySQL veri türlerinden hizmet içinde 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 için Azure Veritabanı veri türü | Ara hizmet veri türü |
---|---|
bigint |
Int64 |
bigint unsigned |
Decimal |
bit |
Boolean |
bit(M), M>1 |
Byte[] |
blob |
Byte[] |
bool |
Int16 |
char |
String |
date |
Datetime |
datetime |
Datetime |
decimal |
Decimal, String |
double |
Double |
double precision |
Double |
enum |
String |
float |
Single |
int |
Int32 |
int unsigned |
Int64 |
integer |
Int32 |
integer unsigned |
Int64 |
long varbinary |
Byte[] |
long varchar |
String |
longblob |
Byte[] |
longtext |
String |
mediumblob |
Byte[] |
mediumint |
Int32 |
mediumint unsigned |
Int64 |
mediumtext |
String |
numeric |
Decimal |
real |
Double |
set |
String |
smallint |
Int16 |
smallint unsigned |
Int32 |
text |
String |
time |
TimeSpan |
timestamp |
Datetime |
tinyblob |
Byte[] |
tinyint |
Int16 |
tinyint unsigned |
Int16 |
tinytext |
String |
varchar |
String |
year |
Int32 |
İlgili içerik
Kopyalama etkinliği tarafından kaynak ve havuz olarak desteklenen veri depolarının listesi için bkz . desteklenen veri depoları.