Azure Data Factory kullanarak Hive'dan veri 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, Hive'dan veri kopyalamak için Azure Data Factory veya Synapse Analytics işlem hattında Kopyalama Etkinliğinin nasıl kullanılacağı özetlenmiştir. Kopyalama etkinliğine genel bir genel bakış sunan kopyalama etkinliğine genel bakış makalesini oluşturur.
Desteklenen özellikler
Bu Hive bağlayıcısı aşağıdaki özellikler için desteklenir:
Desteklenen özellikler | IR |
---|---|
Kopyalama etkinliği (kaynak/-) | (1) (2) |
Eşleme veri akışı (kaynak/-) | (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ı
Kopyalama etkinliği tarafından kaynak/havuz olarak desteklenen veri depolarının listesi için Desteklenen veri depoları tablosuna bakın.
Hizmet, bağlantıyı etkinleştirmek için yerleşik bir sürücü sağlar, bu nedenle bu bağlayıcıyı kullanarak herhangi bir sürücüyü el ile yüklemeniz gerekmez.
Bağlayıcı, bu makaledeki Windows sürümlerini 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.
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 Hive'a bağlı hizmet oluşturma
Azure portalı kullanıcı arabiriminde Hive'a 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:
Hive'ı arayın ve Hive 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, Hive 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
Hive 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: Hive | Yes |
host | Hive sunucusunun IP adresi veya ana bilgisayar adı, birden çok konak için ';' ile ayrılmıştır (yalnızca serviceDiscoveryMode etkinleştirildiğinde). | Yes |
port | Hive sunucusunun istemci bağlantılarını dinlemek için kullandığı TCP bağlantı noktası. Azure HDInsight'a bağlanırsanız bağlantı noktasını 443 olarak belirtin. | Yes |
serverType | Hive sunucusunun türü. İzin verilen değerler şunlardır: HiveServer1, HiveServer2, HiveThriftServer |
Hayır |
thriftTransportProtocol | Thrift katmanında kullanılacak aktarım protokolü. İzin verilen değerler şunlardır: İkili, SASL, HTTP |
Hayır |
authenticationType | Hive sunucusuna erişmek için kullanılan kimlik doğrulama yöntemi. İzin verilen değerler şunlardır: Anonim, Kullanıcı Adı, KullanıcıAdıAndPassword, WindowsAzureHDInsightService. Kerberos kimlik doğrulaması şu anda desteklenmiyor. |
Yes |
serviceDiscoveryMode | ZooKeeper hizmetini kullanmayı belirtmek için true, false değil. | Hayır |
zooKeeperNameSpace | Hive Server 2 düğümlerinin eklendiği ZooKeeper'daki ad alanı. | Hayır |
useNativeQuery | Sürücünün yerel HiveQL sorguları kullanıp kullanmadığını veya bunları HiveQL'de eşdeğer bir forma dönüştürdüğünü belirtir. | Hayır |
username | Hive Sunucusu'na erişmek için kullandığınız kullanıcı adı. | Hayır |
password | Kullanıcıya karşılık gelen parola. Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin veya Azure Key Vault'ta depolanan bir gizli diziye başvurun. | Hayır |
httpPath | Hive sunucusuna karşılık gelen kısmi URL. | Hayı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 |
trustedCertPath | TLS üzerinden bağlanırken sunucuyu doğrulamak için güvenilen CA sertifikalarını içeren .pem dosyasının tam yolu. Bu özellik yalnızca şirket içinde barındırılan IR üzerinde TLS kullanılırken ayarlanabilir. Varsayılan değer, IR ile yüklenen cacerts.pem dosyasıdır. | Hayır |
useSystemTrustStore | Sistem güven deposundan veya belirtilen PEM dosyasından CA sertifikası kullanılıp kullanılmayacağını belirtir. Varsayılan değer olarak yanlış kullanılır. | Hayır |
allowHostNameCNMismatch | TLS üzerinden bağlanırken sunucunun ana bilgisayar adıyla eşleşmesi için CA tarafından verilen tls/SSL sertifika adının gerekip gerekmediğ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 |
storageReference | Eşleme veri akışında verileri hazırlama için kullanılan depolama hesabının bağlı hizmetine başvuru. Bu yalnızca eşleme veri akışında Hive bağlı hizmeti kullanılırken gereklidir | Hayır |
Örnek:
{
"name": "HiveLinkedService",
"properties": {
"type": "Hive",
"typeProperties": {
"host" : "<cluster>.azurehdinsight.net",
"port" : "<port>",
"authenticationType" : "WindowsAzureHDInsightService",
"username" : "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
}
}
}
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 Hive veri kümesi tarafından desteklenen özelliklerin listesi sağlanır.
Hive'dan veri kopyalamak için veri kümesinin type özelliğini HiveObject 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: HiveObject | Yes |
schema | Şemanın adı. | Hayır (etkinlik kaynağında "sorgu" belirtilirse) |
table | Tablonun adı. | Hayır (etkinlik kaynağında "sorgu" belirtilirse) |
tableName | Şema bölümü de dahil olmak üzere tablonun adı. Bu özellik geriye dönük uyumluluk için desteklenir. Yeni iş yükü için ve table kullanınschema . |
Hayır (etkinlik kaynağında "sorgu" belirtilirse) |
Örnek
{
"name": "HiveDataset",
"properties": {
"type": "HiveObject",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<Hive linked service name>",
"type": "LinkedServiceReference"
}
}
}
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 Hive kaynağı tarafından desteklenen özelliklerin listesi sağlanır.
Kaynak olarak HiveSource
Hive'dan veri kopyalamak için kopyalama etkinliğindeki kaynak türünü HiveSource olarak ayarlayın. 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: HiveSource | 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": "CopyFromHive",
"type": "Copy",
"inputs": [
{
"referenceName": "<Hive input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "HiveSource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Eşleme veri akışı özellikleri
Hive bağlayıcısı, eşleme veri akışlarında satır içi veri kümesi kaynağı olarak desteklenir. Sorgu kullanarak veya doğrudan HDInsight'taki hive tablosundan okuma. Hive verileri, bir veri akışının parçası olarak dönüştürülmeden önce depolama hesabında parquet dosyaları olarak hazırlanır.
Kaynak özellikleri
Aşağıdaki tabloda bir hive 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 |
---|---|---|---|---|
Store | Mağaza şu şekilde olmalıdır: hive |
evet | hive |
eklemesini iste |
Biçimlendir | Bir tablodan mı yoksa sorgudan mı okuyorsunuz? | evet | table veya query |
format |
Şema adı | Bir tablodan okuyorsanız, kaynak tablonun şeması | Evet, biçim table |
String | schemaName |
Tablo adı | Bir tablodan okuyorsanız, tablo adı | Evet, biçim table |
String | tableName |
Sorgu | Biçim ise query , Hive bağlı hizmetindeki kaynak sorgu |
Evet, biçim query |
String | query |
Aşamalı | Hive tablosu her zaman hazırlanacaktır. | evet | true |
Aşamalı |
Depolama Kapsayıcısı | Hive'dan okumadan veya Hive'a yazmadan önce verileri hazırlamak için kullanılan depolama kapsayıcısı. Hive kümesinin bu kapsayıcıya erişimi olmalıdır. | evet | String | storageContainer |
Hazırlama veritabanı | Bağlı hizmette belirtilen kullanıcı hesabının erişime sahip olduğu şema/veritabanı. Hazırlama sırasında dış tablolar oluşturmak için kullanılır ve daha sonra bırakılır | hayır | true veya false |
stagingDatabaseName |
SQL Betikleri Öncesi | Verileri okumadan önce Hive tablosunda çalıştırılacak SQL kodu | hayır | String | preSQL'ler |
Kaynak örneği
Hive kaynak yapılandırması örneği aşağıda verilmiştir:
Bu ayarlar aşağıdaki veri akışı betiğine çevrilir:
source(
allowSchemaDrift: true,
validateSchema: false,
ignoreNoFilesFound: false,
format: 'table',
store: 'hive',
schemaName: 'default',
tableName: 'hivesampletable',
staged: true,
storageContainer: 'khive',
storageFolderPath: '',
stagingDatabaseName: 'default') ~> hivesource
Bilinen sınırlamalar
- Diziler, haritalar, yapılar ve birleşimler gibi karmaşık türler okunması desteklenmez.
- Hive bağlayıcısı yalnızca Azure HDInsight sürüm 4.0 veya üzeri (Apache Hive 3.1.0) hive tablolarını destekler
- Hive sürücüsü varsayılan olarak havuz içinde "tableName.columnName" sağlar. Sütun adında tablo adını görmek istemiyorsanız, bunu düzeltmenin iki yolu vardır. a. Hive sunucu tarafında "hive.resultset.use.unique.column.names" ayarını denetleyin ve false olarak ayarlayın. b. Sütun adını yeniden adlandırmak için sütun eşlemesini kullanın.
Arama etkinliği özellikleri
Özellikler hakkında ayrıntılı bilgi edinmek için Arama etkinliği'ne bakı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ı.