Azure Data Factory veya Synapse Analytics kullanarak MongoDB'den veri kopyalama (eski)
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, MongoDB veritabanından veri kopyalamak için Azure Data Factory veya Synapse Analytics işlem hattında Kopyalama Etkinliği'nin nasıl kullanılacağı özetlenmiştir. Kopyalama etkinliğine genel bir genel bakış sunan kopyalama etkinliğine genel bakış makalesini oluşturur.
Önemli
Hizmet, bu ODBC tabanlı uygulamaya kıyasla daha iyi yerel MongoDB desteği sağlayan yeni bir MongoDB bağlayıcısı yayımladı. Ayrıntılarla ilgili MongoDB bağlayıcısı makalesine bakın.
Desteklenen özellikler
MongoDB veritabanındaki verileri desteklenen herhangi bir havuz veri deposuna kopyalayabilirsiniz. Kopyalama etkinliği tarafından kaynak/havuz olarak desteklenen veri depolarının listesi için Desteklenen veri depoları tablosuna bakın.
Bu MongoDB bağlayıcısı özellikle şunları destekler:
- MongoDB sürüm 2.4, 2.6, 3.0, 3.2, 3.4 ve 3.6.
- Temel veya Anonim kimlik doğrulaması kullanarak verileri kopyalama.
Ö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 yerleşik bir MongoDB sürücüsü sağlar, bu nedenle MongoDB'den veri kopyalarken 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:
- Veri Kopyalama aracı
- Azure portal
- .NET SDK'sı
- Python SDK'sı
- Azure PowerShell
- The REST API
- Azure Resource Manager şablonu
Kullanıcı arabirimini kullanarak MongoDB'ye bağlı hizmet oluşturma
Azure portalı kullanıcı arabiriminde MongoDB'ye 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:
Mongo'yu arayın ve MongoDB 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, MongoDB 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
MongoDB 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: MongoDb | Yes |
sunucu | MongoDB sunucusunun IP adresi veya ana bilgisayar adı. | Yes |
port | MongoDB sunucusunun istemci bağlantılarını dinlemek için kullandığı TCP bağlantı noktası. | Hayır (varsayılan değer 27017'dir) |
veritabanıAdı | Erişmek istediğiniz MongoDB veritabanının adı. | Yes |
authenticationType | MongoDB veritabanına bağlanmak için kullanılan kimlik doğrulama türü. İzin verilen değerler şunlardır: Temel ve Anonim. |
Yes |
username | MongoDB'ye erişmek için kullanıcı hesabı. | Evet (temel kimlik doğrulaması kullanılıyorsa). |
password | Kullanıcının parolası. Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin veya Azure Key Vault'ta depolanan bir gizli diziye başvurun. | Evet (temel kimlik doğrulaması kullanılıyorsa). |
authSource | Kimlik doğrulaması için kimlik bilgilerinizi denetlemek için kullanmak istediğiniz MongoDB veritabanının adı. | Hayır Temel kimlik doğrulaması için, varsayılan olarak databaseName özelliği kullanılarak belirtilen yönetici hesabı ve veritabanı kullanılır. |
enableSsl | Sunucu bağlantılarının TLS kullanılarak şifrelenip şifrelenmediğini belirtir. Varsayılan değer olarak yanlış kullanılır. | Hayır |
allowSelfSignedServerCert | Sunucudan otomatik olarak imzalanan sertifikalara izin verilip verilmeyeceğini belirtir. Varsayılan değer olarak yanlış kullanılır. | 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": "MongoDBLinkedService",
"properties": {
"type": "MongoDb",
"typeProperties": {
"server": "<server name>",
"databaseName": "<database name>",
"authenticationType": "Basic",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<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 bkz . Veri kümeleri ve bağlı hizmetler. MongoDB veri kümesi için aşağıdaki özellikler desteklenir:
Özellik | Açıklama | Gerekli |
---|---|---|
Tür | Veri kümesinin type özelliği şu şekilde ayarlanmalıdır: MongoDbCollection | Yes |
collectionName | MongoDB veritabanındaki koleksiyonun adı. | Yes |
Örnek:
{
"name": "MongoDbDataset",
"properties": {
"type": "MongoDbCollection",
"linkedServiceName": {
"referenceName": "<MongoDB linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"collectionName": "<Collection 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ümde MongoDB kaynağı tarafından desteklenen özelliklerin listesi sağlanır.
Kaynak olarak MongoDB
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: MongoDbSource | Yes |
query | Verileri okumak için özel SQL-92 sorgusunu kullanın. Örneğin: MyTable'dan * öğesini seçin. | Hayır (veri kümesinde "collectionName" belirtilirse) |
Örnek:
"activities":[
{
"name": "CopyFromMongoDB",
"type": "Copy",
"inputs": [
{
"referenceName": "<MongoDB input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "MongoDbSource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
İpucu
SQL sorgusunu belirtirken DateTime biçimine dikkat edin. Örneğin: SELECT * FROM Account WHERE LastModifiedDate >= '2018-06-01' AND LastModifiedDate < '2018-06-02'
veya parametresini kullanmak için SELECT * FROM Account WHERE LastModifiedDate >= '@{formatDateTime(pipeline().parameters.StartTime,'yyyy-MM-dd HH:mm:ss')}' AND LastModifiedDate < '@{formatDateTime(pipeline().parameters.EndTime,'yyyy-MM-dd HH:mm:ss')}'
Data Factory'ye göre şema
Azure Data Factory hizmeti, koleksiyondaki en son 100 belgeyi kullanarak mongoDB koleksiyonundan şema çıkartır . Bu 100 belge tam şema içermiyorsa, kopyalama işlemi sırasında bazı sütunlar yoksayılabilir.
MongoDB için veri türü eşlemesi
MongoDB'den veri kopyalarken, MongoDB 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 .
MongoDB veri türü | Ara hizmet veri türü |
---|---|
İkilik | Bayt[] |
Boolean | Boolean |
Tarih | DateTime |
NumberDouble | Çift |
NumberInt | Int32 |
SayıBoyu | Int64 |
ObjectID | String |
String | String |
UUID | GUID |
Object | İç içe ayırıcı olarak "_" ile düzleştirilmiş sütunlar halinde yeniden normalleştirilmiş |
Not
Sanal tabloları kullanan diziler için destek hakkında bilgi edinmek için Sanal tabloları kullanarak karmaşık türler için destek bölümüne bakın.
Şu anda aşağıdaki MongoDB veri türleri desteklenmez: DBPointer, JavaScript, Max/Min tuşu, Normal İfade, Sembol, Zaman Damgası, Tanımsız.
Sanal tabloları kullanan karmaşık türler için destek
Hizmet, MongoDB veritabanınıza bağlanmak ve bu veritabanından veri kopyalamak için yerleşik bir ODBC sürücüsü kullanır. Belgeler arasında farklı türlere sahip diziler veya nesneler gibi karmaşık türler için, sürücü verileri karşılık gelen sanal tablolara yeniden normalleştirir. Özellikle, bir tablo bu tür sütunlar içeriyorsa, sürücü aşağıdaki sanal tabloları oluşturur:
- Karmaşık tür sütunları dışında gerçek tabloyla aynı verileri içeren temel tablo. Temel tablo, temsil ettiği gerçek tabloyla aynı adı kullanır.
- İç içe verileri genişleten her karmaşık tür sütunu için bir sanal tablo. Sanal tablolar, gerçek tablonun adı, ayırıcı "_" ve dizi veya nesne adı kullanılarak adlandırılır.
Sanal tablolar gerçek tablodaki verilere başvurur ve sürücünün normalleştirilmiş verilere erişmesini sağlar. Sanal tabloları sorgulayıp birleştirerek MongoDB dizilerinin içeriğine erişebilirsiniz.
Örnek
Örneğin, ExampleTable burada, her hücrede Bir Nesne dizisi olan bir sütuna sahip bir MongoDB tablosudur - Faturalar ve Skaler türleri dizisine sahip bir sütun - Derecelendirmeler.
_id | Müşteri Adı | Faturalar | Hizmet Düzeyi | Değerlendirmeler |
---|---|---|---|---|
1111 | ABC | [{invoice_id:"123", item:"toaster", price:"456", discount:"0.2"}, {invoice_id:"124", item:"oven", price: "1235", discount: "0.2"}] | Silver | [5,6] |
2222 | XYZ | [{invoice_id:"135", item:"buzdolabı", fiyat: "12543", indirim: "0,0"}] | Gold | [1,2] |
Sürücü, bu tek tabloyu temsil eden birden çok sanal tablo oluşturur. İlk sanal tablo, örnekte gösterilen "ExampleTable" adlı temel tablodur. Temel tablo özgün tablonun tüm verilerini içerir, ancak dizilerdeki veriler atlanmış ve sanal tablolarda genişletilmiştir.
_id | Müşteri Adı | Hizmet Düzeyi |
---|---|---|
1111 | ABC | Silver |
2222 | XYZ | Gold |
Aşağıdaki tablolarda örnekteki özgün dizileri temsil eden sanal tablolar gösterilmektedir. Bu tablolar aşağıdakileri içerir:
- Özgün dizinin satırına karşılık gelen özgün birincil anahtar sütununa başvuru (_id sütunu aracılığıyla)
- Verilerin özgün dizideki konumunun göstergesi
- Dizideki her öğe için genişletilmiş veriler
Tablo "ExampleTable_Invoices":
_id | ExampleTable_Invoices_dim1_idx | invoice_id | öğe | price | Discount |
---|---|---|---|---|---|
1111 | 0 | 123 | Tost makinesi | 456 | 0,2 |
1111 | 1 | 124 | fırın | 1235 | 0,2 |
2222 | 0 | 135 | buzdolabı | 12543 | 0,0 |
Tablo "ExampleTable_Ratings":
_id | ExampleTable_Ratings_dim1_idx | ExampleTable_Ratings |
---|---|---|
1111 | 0 | 5 |
1111 | 1 | 6 |
2222 | 0 | 1 |
2222 | 1 | 2 |
İlgili içerik
Kopyalama etkinliği tarafından kaynak ve havuz olarak desteklenen veri depolarının listesi için bkz . desteklenen veri depoları.