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:

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.

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

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

    Hive'a bağlı bir hizmet yapılandırın.

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 tablekullanı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:

Hive kaynağı örneği

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.

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