Azure Data Factory kullanarak Hive'dan veri kopyalama ve dönüştürme

ŞUNLARA UYGULANIR: Azure Data Factory Azure Synapse Analytics

İpucu

Microsoft Fabric'daki Data Factory, daha basit bir mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip yeni nesil Azure Data Factory. Veri tümleştirmeyi yeni kullanmaya başladıysanız Fabric Data Factory ile başlayın. Mevcut ADF iş yükleri veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltebilir.

Bu makalede, Hive'dan veri kopyalamak için bir Azure Data Factory veya Synapse Analytics işlem hattında Kopyalama Etkinliği'nin nasıl kullanılacağı özetlenmiştir. Kopyalama etkinliğine genel bakış makalesine dayanır ve bu makale, kopyalama etkinliğine genel bir bakış sunar.

Uyarı

Bu bağlayıcı Microsoft Fabric'daki Data Factory'de de kullanılabilir. Fabric özgü yapılandırma ve özellikler için Fabric Hive LLAP bağlayıcısı belgelerine bakın.

Önemli

Hive bağlayıcısı sürüm 1.0 devre dışı bırakma aşamasındadır. Hive bağlayıcısını sürüm 1.0'dan 2.0'a yükseltmeniz önerilir.

Desteklenen özellikler

Bu Hive bağlayıcısı aşağıdaki özellikler için desteklenir:

Desteklenen özellikler Kızılötesi
Kopyalama etkinliği (kaynak/-) (1) (2)
Haritalama veri akışı (kaynak/-) (1)
Arama etkinliği (1) (2)

(1) Azure tümleştirme çalışma zamanı (2) Yerel 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 article Windows sürümlerini destekler.

Önkoşullar

Veri deponuz bir yerel ağ, Azure sanal ağ veya Amazon Sanal Özel Bulut içinde bulunuyorsa, ona bağlanmak için kendinden barındırılan bir tümleştirme çalışma zamanı 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, izin verme listesine Azure Integration Runtime IP ekleyebilirsiniz.

Şirket içi ağa erişmek için, şirket içinde barındırılan tümleştirme çalışma zamanı yüklemeden ve yapılandırmadan Azure Data Factory 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.

Uyarı

Sürüm 2.0, yerel tümleştirme çalışma zamanı ortamı sürüm 5.54 veya daha üzeri ile desteklenir.

Başlarken

Kopyalama etkinliğini bir işlem hattıyla 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ızdaki Yönet sekmesine göz atın ve Bağlı Hizmetler'i seçin, ardından Yeni'ye tıklayın:

     Azure Data Factory UI ile yeni bir bağlı hizmet oluşturun.

  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ğlayıcısı artık 2.0 sürümünü destekliyor. Hive bağlayıcısı sürümünüzü sürüm 1.0'dan yükseltmek için bu bölüme bakın. Özellik ayrıntıları için ilgili bölümlere bakın.

Sürüm 2.0

Hive bağlı hizmeti, 2.0 sürümünü uygularken aşağıdaki özellikleri destekler:

Özellik Açıklama Gerekli
Tip Tür özelliği şu şekilde ayarlanmalıdır: Hive Evet
Sürüm Belirttiğiniz sürüm. Bu durumda değer 2.0 olur. Evet
ev sahibi Hive sunucusunun IP adresi veya ana bilgisayar adı. Evet
liman Hive sunucusunun istemci bağlantılarını dinlemek için kullandığı TCP bağlantı noktası. Azure HDInsight bağlanırsanız bağlantı noktasını 443 olarak belirtin. Evet
sunucu türü Hive sunucusunun türü.
İzin verilen değer: HiveServer2
Hayır
thriftTaşımaProtokolü Thrift katmanında kullanılacak aktarım protokolü.
İzin verilen değerler şunlardır: İkili, SASL, HTTP
Hayır
kimlik doğrulama türü Hive sunucusuna erişmek için kullanılan kimlik doğrulama yöntemi.
İzin verilen değerler şunlardır: Anonymous, UsernameAndPassword, WindowsAzureHDInsightService. Kerberos kimlik doğrulaması şu anda desteklenmiyor.
Evet
kullanıcı adı Hive Sunucusu'na erişmek için kullandığınız kullanıcı adı. Hayır
şifre Kullanıcıya karşılık gelen parola. Bu alanı güvenli bir şekilde depolamak için SecureString olarak işaretleyin veya Azure Key Vault içinde depolanan bir gizli anahtara referans verin. Hayır
httpPath Hive sunucusuna karşılık gelen kısmi URL.
WindowsAzureHDInsightService kimlik doğrulama türü için varsayılan değer olur /hive2.
Hayır
SSL'yi etkinleştir Sunucu bağlantılarının TLS kullanılarak şifrelenip şifrelenmediğini belirtir. Varsayılan değer true değeridir. Hayır
Sunucu Sertifikası Doğrulamasını Etkinleştir Bağlandığınızda sunucu SSL sertifika doğrulamasının etkinleştirilip etkinleştirilmeyeceğini belirtin. Her zaman Sistem Güven Deposu kullanın. Varsayılan değer true değeridir. Hayır
depolamaReferansı 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
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. Kendi sunucunuzda barındırılan tümleştirme çalışma zamanını kullanabilirsiniz ve sürümü 5.54 veya üzeri olmalıdır. Hayır

Örnek:

{
    "name": "HiveLinkedService",
    "properties": {
        "type": "Hive",
        "version": "2.0",
        "typeProperties": {
            "host" : "<host>",
            "port" : "<port>",
            "authenticationType" : "WindowsAzureHDInsightService",
            "username" : "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            },
            "serverType": "HiveServer2",
            "thriftTransportProtocol": "HTTP",
            "enableSsl": true,
            "enableServerCertificateValidation": true
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Sürüm 1.0

1.0 sürümünü uygularken Hive bağlı hizmeti için aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
Tip Tür özelliği şu şekilde ayarlanmalıdır: Hive Evet
ev sahibi Hive sunucusunun IP adresi veya ana bilgisayar adı, birden çok konak için ';' ile ayrılmıştır (yalnızca serviceDiscoveryMode etkinleştirildiğinde). Evet
liman Hive sunucusunun istemci bağlantılarını dinlemek için kullandığı TCP bağlantı noktası. Azure HDInsight bağlanırsanız bağlantı noktasını 443 olarak belirtin. Evet
sunucu türü Hive sunucusunun türü.
İzin verilen değerler şunlardır: HiveServer1, HiveServer2, HiveThriftServer
Hayır
thriftTaşımaProtokolü Thrift katmanında kullanılacak aktarım protokolü.
İzin verilen değerler şunlardır: İkili, SASL, HTTP
Hayır
kimlik doğrulama türü 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.
Evet
hizmetKeşifModu ZooKeeper hizmetini kullanmayı belirtmek için true, kullanmamak için false. 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
kullanıcı adı Hive Sunucusu'na erişmek için kullandığınız kullanıcı adı. Hayır
şifre Kullanıcıya karşılık gelen parola. Bu alanı güvenli bir şekilde depolamak için SecureString olarak işaretleyin veya Azure Key Vault içinde depolanan bir gizli anahtara referans verin. Hayır
httpPath Hive sunucusuna karşılık gelen kısmi URL. Hayır
SSL'yi etkinleştir Sunucu bağlantılarının TLS kullanılarak şifrelenip şifrelenmediğini belirtir. Varsayılan değer false'dur. 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
Sistem Güven Deposu Kullan Sistem güven deposundan veya belirtilen PEM dosyasından CA sertifikası kullanılıp kullanılmayacağını belirtir. Varsayılan değer false'dur. Hayır
allowHostNameCNHataliEslesmesineIzinVer 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 false'dur. Hayır
Kendi İmzaladığınız Sunucu Sertifikasına İzin Ver Sunucudan otomatik olarak imzalanan sertifikalara izin verilip verilmeyeceğini belirtir. Varsayılan değer false'dur. 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
depolamaReferansı 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
Tip Veri kümesinin tür özelliği şu şekilde ayarlanmalıdır: HiveObject Evet
şema Şemanın adı. Hayır (etkinlik kaynağında "sorgu" belirtilirse)
tablo Tablonun adı. Hayır (etkinlik kaynağında "sorgu" belirtilirse)
tabloAdı Ş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 schema ve table kullanın. 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ği özellikleri

Etkinlikleri tanımlamak için kullanılabilecek tüm bölümlerin ve özelliklerin listesi için Yapılandırma 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
Tip Kopyalama etkinliği kaynağının type özelliği şu şekilde ayarlanmalıdır: HiveSource Evet
soru 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>"
            }
        }
    }
]

Veri akışı haritalama ö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ı şeklinde 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
Mağaza Mağaza şu şekilde olmalıdır: hive evet hive depolamak
Biçim Bir tablodan mı yoksa sorgudan mı okuyorsunuz? evet table veya query biçim
Şema adı Bir tablodan okuyorsanız, kaynak tablonun şeması Evet, eğer biçim table ise Dize şemaAdı
Tablo adı Bir tablodan okuyorsanız, tablo adı Evet, eğer biçim table ise Dize tabloAdı
Sorgu Eğer biçim query şeklindeyse, Hive bağlantılı hizmetteki kaynak sorgu Evet, eğer biçim query ise Dize soru
Aşamalı Hive tablosu her zaman ön işleme aşamasında olacaktı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 Dize depolama kabı
Ara veritabanı Bağlı hizmette belirtilen kullanıcı hesabının erişime sahip olduğu şema/veritabanı. Hazırlık aşamasında dış tablolar oluşturmak için kullanılır ve sonrasında silinir. hayır true veya false hazırlıkVeritabanıAdı
Ön SQL Betikleri Verileri okumadan önce Hive tablosunda çalıştırılacak SQL kodu hayır Dize preSQL'ler

Kaynak örneği

Hive kaynak yapılandırması örneği aşağıda verilmiştir:

Hive veri 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 okuma için desteklenmez.
  • Hive bağlayıcısı yalnızca sürüm 4.0 veya üzeri (Apache Hive 3.1.0) Azure HDInsight Hive tablolarını destekler
  • Hive sürücüsü varsayılan olarak çıkışta "tableName.columnName" sunar. 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.

Hive için veri türü eşlemesi

Hive'dan ve Hive'a veri kopyalanırken, hizmetin içinde aşağıdaki ara veri türü eşlemeleri 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.

Hive veri türü Ara hizmet veri türü (sürüm 2.0 için) Ara hizmet veri türü (sürüm 1.0 için)
TINYINT Sbyte Int16
SMALLINT (Küçük Tamsayı) Int16 Int16
INT Int32 Int32
BIGINT Int32 Int64
boolean Boolean (Boole Mantığı) Boolean (Boole Mantığı)
yüzen nesne Tek Tek
ÇİFT Çift İki kat
ONDALIK Ondalık On -da -lık
Dize (kesinlik > 28)
İPLİK Dize Dize
VARCHAR Dize Dize
CHAR Dize Dize
ZAMAN DAMGASI TarihSaatÖtelemesi Tarih ve Saat
TARİH Tarih ve Saat Tarih ve Saat
İKİLİ Bayt[] Byte[]
DİZİ Dize Dize
HARİTA Dize Dize
Yapı Dize Dize

Arama etkinliği özellikleri

Özellikler hakkında ayrıntılı bilgi edinmek için Arama etkinliği'ne bakın.

Hive bağlayıcısının yaşam döngüsü ve güncellenmesi

Aşağıdaki tabloda Hive bağlayıcısının farklı sürümleri için yayın aşaması ve değişiklik günlükleri gösterilmektedir:

Sürüm Yayın aşaması Değişiklik Kaydı
Sürüm 1.0 Removed Uygulanamaz.
Sürüm 2.0 Ga sürümü kullanılabilir • Kendi kendine barındırılan tümleştirme çalışma zamanı sürümü 5.54 veya üzeri olmalıdır.

enableServerCertificateValidation desteklenir.

• varsayılan değeri enableSSL true'dur.

• WindowsAzureHDInsightService kimlik doğrulama türü için varsayılan değeri httpPath olur /hive2.

• ONDALıK, Ondalık Veri Türü olarak okunur.

• TINYINT, SByte veri türü olarak okunur.

• TIMESTAMP, DateTimeOffset veri türü olarak okunur.

trustedCertPath, useSystemTrustStoreallowHostNameCNMismatch ve allowSelfSignedServerCert desteklenmez.

• Birden çok ana bilgisayarı ayırmak için ';' kullanılması (yalnızca serviceDiscoveryMode etkinleştirildiğinde) desteklenmez.

• HiveServer1 ve HiveThriftServer için ServerType desteklenmez.

• Kullanıcı adı kimlik doğrulama türü desteklenmiyor. SASL aktarım protokolü yalnızca UsernameAndPassword kimlik doğrulama türünü destekler. İkili aktarım protokolü yalnızca Anonim kimlik doğrulama türünü destekler.

serviceDiscoveryModezooKeeperNameSpaceve useNativeQuery desteklenmez.

Hive bağlayıcısını sürüm 1.0'dan sürüm 2.0'a yükseltme

  1. Bağlı hizmeti düzenle sayfasında sürüm 2.0'ı seçin ve Bağlı hizmet özellikleri sürüm 2.0'a başvurarak bağlı hizmeti yapılandırın.

  2. Hive bağlı hizmet sürümü 2.0 için veri türü eşlemesi, sürüm 1.0'dan farklıdır. En son veri türü eşlemesini öğrenmek için bkz. Hive için veri türü eşlemesi.

  3. Sürüm 5.54 veya üzeri bir kendi kendine barındırılan tümleştirme çalışma zamanı uygulayın.

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