Tüm Ürünler
Search
Belge Merkezi

ApsaraDB for SelectDB:Hive veri kaynağı

Son Güncelleme:Oct 08, 2026

ApsaraDB for SelectDB birleşik sorguları destekler; bu sayede veri gölleri, veritabanları ve uzak dosyalar gibi harici veri kaynaklarını hızla entegre ederek veri analitiğini basitleştirebilir ve hızlandırabilirsiniz. Bu konuda, SelectDB hizmetinin bir katalog kullanarak Hive veri kaynağını nasıl entegre ettiği ve Hive verileri üzerinde birleşik analizlerin nasıl gerçekleştirildiği açıklanmaktadır.

Ön koşullar

  • Hive kümenizdeki tüm düğümlerin SelectDB örneği ile ağ bağlantısının bulunduğundan emin olun.

  • Hive ortamınız HDFS üzerine kurulmuşsa Hive ile SelectDB arasındaki veri aktarımı için aşağıdaki bağlantı noktalarının açık olduğundan emin olun.

    • hive.metastore.uris parametresinde belirtilen bağlantı noktası. Varsayılan bağlantı noktası 9083'tür.

    • dfs.namenode.rpc-address parametresinde belirtilen bağlantı noktası. Varsayılan bağlantı noktası 8020'dir.

    • dfs.datanode.address parametresinde belirtilen bağlantı noktası. Varsayılan bağlantı noktası 9866'dır.

  • Katalog kavramını ve temel işlemleri nasıl gerçekleştireceğinizi anlayın. Daha fazla bilgi için bkz. lakehouse.

Dikkat edilmesi gerekenler

  • Hive 1, 2 ve 3 sürümleri desteklenir.

  • Yönetilen tablolar, harici tablolar ve bazı Hive görünümleri desteklenir.

  • Hive metastore içinde depolanan Hive, Iceberg ve Hudi meta verilerinin keşfi desteklenir.

  • Şu anda ApsaraDB for SelectDB yalnızca harici bir katalogdaki verilerde okuma işlemlerini destekler.

Örnek ortam

Bu konuda Linux sistemi örnek olarak kullanılmıştır. SelectDB'de, HDFS üzerine kurulu bir Hive kümesindeki test_db.test_t tablosuna karşı birleşik sorgu çalıştırılır. Örnek değerleri kendi sisteminize ve ortamınıza uygun olacak şekilde değiştirin. Örnek ortam aşağıdaki gibidir:

  • Kullanım durumu: HA olmayan (non-HA)

  • Hive depolama altyapısı: HDFS

  • Kaynak veritabanı: test_db

  • Kaynak tablo: test_t

Kaynak verileri hazırlama

  1. Hive kümenizde oturum açın.

  2. test_db adlı bir veritabanı oluşturun.

    CREATE database if NOT EXISTS test_db;
  3. test_t adlı bir tablo oluşturun.

    CREATE TABLE IF NOT EXISTS test_t (
        id INT,
        name STRING,
        age INT
    );
  4. Tabloya veri ekleyin.

    -- Insert data
    INSERT INTO TABLE test_t VALUES
    (1, 'Alice', 25),
    (2, 'Bob', 30),
    (3, 'Charlie', 35),
    (4, 'David', 40),
    (5, 'Eve', 45);

Yordam

1. Adım: Bir örneğe bağlanma

SelectDB örneğinize bağlanın. Talimatlar için bkz. MySQL istemcisi kullanarak ApsaraDB for SelectDB örneğine bağlanma.

2. Adım: Hive entegrasyonu

SelectDB harici veri kaynaklarını harici bir katalog oluşturarak entegre eder. Farklı kullanım durumları farklı katalog özellikleri gerektirir. Ortamınıza uygun sözdizimini ve parametre değerlerini seçin.

Kataloğu oluşturduktan sonra ApsaraDB for SelectDB veritabanlarını ve tabloları veri kaynağından otomatik olarak senkronize eder. ApsaraDB for SelectDB farklı veri kaynakları ve tablo biçimleri arasındaki sütun eşlemelerini yapar. Hive ile SelectDB arasındaki tür eşlemesine aşina değilseniz bkz. Sütun türü eşleme.

Hive on HDFS

Sözdizimi
CREATE CATALOG <catalog_name> PROPERTIES (
    'type'='<type>',
    'hive.metastore.uris' = '<hive.metastore.uris>',
    'hadoop.username' = '<hadoop.username>',
    'dfs.nameservices'='<hadoop.username>',
    'dfs.ha.namenodes.your-nameservice'='<dfs.ha.namenodes.your-nameservice>',
    'dfs.namenode.rpc-address.your-nameservice.nn1'='<dfs.namenode.rpc-address.your-nameservice.nn1>',
    'dfs.namenode.rpc-address.your-nameservice.nn2'='<dfs.namenode.rpc-address.your-nameservice.nn2>',
    'dfs.client.failover.proxy.provider.your-nameservice'='<dfs.client.failover.proxy.provider.your-nameservice>'
);
Parametreler

HA olmayan senaryo

Parametre

Gerekli

Açıklama

catalog_name

Evet

Kataloğun adı.

type

Evet

Katalog türü. Bu parametreyi hms olarak ayarlayın.

hive.metastore.uris

Evet

Hive metastore'un URI'si.

  • Biçim: thrift://<Hive metastore IP adresi>:<bağlantı noktası>.

  • Varsayılan bağlantı noktası 9083'tür.

  • URI'yi almak için Hive CLI'da SET hive.metastore.uris komutunu çalıştırabilirsiniz.

HA senaryosu

Parametre

Gerekli

Açıklama

catalog_name

Evet

Kataloğun adı.

type

Evet

Katalog türü. Bu parametreyi hms olarak ayarlayın.

hive.metastore.uris

Evet

Hive metastore'un URI'si.

  • Biçim: thrift://<Hive metastore IP adresi>:<bağlantı noktası>.

  • Varsayılan bağlantı noktası 9083'tür.

  • URI'yi almak için Hive CLI'da SET hive.metastore.uris komutunu çalıştırabilirsiniz.

hadoop.username

Hayır

HDFS kullanıcı adı.

dfs.nameservices

Hayır

Ad Hizmeti adı. Bu değer, Hive ortamınızdaki hdfs-site.xml yapılandırma dosyasındaki dfs.nameservices değeriyle eşleşmelidir.

dfs.ha.namenodes.[nameservice ID]

Hayır

NameNode kimliklerinin listesi. Bu değer, Hive ortamınızdaki hdfs-site.xml yapılandırma dosyasındaki karşılık gelen değerle eşleşmelidir.

dfs.namenode.rpc-address.[nameservice ID].[name node ID]

Hayır

NameNode'un RPC adresi. Adres sayısı NameNode sayısına eşit olmalı ve adresler Hive ortamınızdaki hdfs-site.xml yapılandırma dosyasındaki karşılık gelen yapılandırma öğeleriyle tutarlı olmalıdır.

dfs.client.failover.proxy.provider.[nameservice ID]

Hayır

HDFS istemcisinin etkin NameNode'a bağlanmak için kullandığı Java sınıfı. Çoğu durumda değer org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider şeklindedir.

HA olmayan senaryo örneği
CREATE CATALOG hive_catalog PROPERTIES (
    'type'='hms',
    'hive.metastore.uris' = 'thrift://master-1-1.c-7fa25a1a****.cn-hangzhou.emr.aliyuncs.com:9083'
);

Alibaba Cloud OSS üzerinde Hive oluşturma

Sözdizimi

Sözdizimi, HDFS üzerindeki Hive ile aynıdır ancak gerekli parametreler farklıdır.

Parametreler

Parametre

Gerekli

Açıklama

type

Evet

Katalog türü. Bu parametreyi hms olarak ayarlayın.

hive.metastore.uris

Evet

Hive metastore'un URI'si.

  • Biçim: thrift://<Hive metastore IP adresi>:<bağlantı noktası>.

  • Varsayılan bağlantı noktası 9083'tür.

  • URI'yi almak için Hive CLI'da SET hive.metastore.uris komutunu çalıştırabilirsiniz.

oss.endpoint

Evet

Object Storage Service (OSS) verilerine erişmek için kullanılan uç nokta. Uç nokta hakkında bilgi edinmek için bkz. Bölgeler ve uç noktalar.

oss.access_key

Evet

OSS verilerine erişmek için kullanılan AccessKey ID.

oss.secret_key

Evet

OSS verilerine erişmek için kullanılan AccessKey secret.

Örnek

CREATE CATALOG hive_catalog PROPERTIES (
    "type"="hms",
    "hive.metastore.uris" = "thrift://172.0.0.1:9083",
    "oss.endpoint" = "oss-cn-beijing.aliyuncs.com",
    "oss.access_key" = "ak",
    "oss.secret_key" = "sk"
);

3. Adım: Katalogları görüntüleme

Kataloğun başarıyla oluşturulduğunu doğrulamak için aşağıdaki ifadeyi çalıştırın.

SHOW CATALOGS; -- Verify whether the catalog is created successfully.
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
| CatalogId    | CatalogName  | Type     | IsCurrent | CreateTime              | LastUpdateTime      | Comment                |
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
| 436009309195 | hive_catalog | hms      |           | 2024-07-19 17:09:08.058 | 2024-07-19 18:04:37 |                        |
|            0 | internal     | internal | yes       | UNRECORDED              | NULL                | Doris internal catalog |
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+

4. Adım: Hive verilerini görüntüleme

  • Harici katalogdan Hive veritabanlarını ve tablolarını görüntüleyin.

    Not

    Bir SelectDB örneğine bağlandığınızda varsayılan çalışma dizini dahili katalogdur.

    1. Hedef harici kataloğa geçiş yapın.

      SWITCH hive_catalog;
    2. Verileri görüntüleyin.

      Hedef kataloğa geçtikten sonra verilerine dahili katalogdaki gibi erişebilirsiniz. Örneğin:

      • Veritabanlarını listeleyin: SHOW DATABASES;

      • Bir veritabanına geçin: USE test_db;

      • Bir veritabanındaki tabloları listeleyin: SHOW TABLES;

      • Tablo verilerini sorgulayın: SELECT * FROM test_t;

  • Dahili katalogdan Hive verilerini görüntüleyin.

    -- View data from the test_t table in the test_db database under the hive_catalog.
    SELECT * FROM hive_catalog.test_db.test_t;

Ek işlemler: Veri geçişi

Veri kaynağını entegre ettikten sonra geçmiş verileri Hive'dan SelectDB hizmetine geçirmek için INSERT INTO ifadesini kullanın. Daha fazla bilgi için bkz. INSERT INTO.

Sütun türü eşleme

Not
  • Aşağıdaki Hive metastore tür eşlemeleri Hive, Iceberg ve Hudi gibi Hive metastore kullanan veri kaynakları için geçerlidir.

  • Hive metastore ve SelectDB için bazı karmaşık türler iç içe geçmeyi destekler.

    • array<type>: İç içe geçme örneği: array<map<string, int>>

    • map<KeyType, ValueType>: İç içe geçme örneği: map<string, array<int>>

    • struct<col1: Type1, col2: Type2, ...>: İç içe geçme örneği: struct<col1: array<int>, col2: map<int, date>>


HMS türü


SelectDB türü


BOOLEAN


BOOLEAN


TINYINT


TINYINT


SMALLINT


SMALLINT


INT


INT


BIGINT


BIGINT


DATE


DATE


TIMESTAMP


DATETIME


FLOAT


FLOAT


DOUBLE


DOUBLE


CHAR


CHAR


VARCHAR


VARCHAR


DECIMAL


DECIMAL


ARRAY<type>


ARRAY<type>


MAP<KeyType, ValueType>


MAP<KeyType, ValueType>


STRUCT<col1: Type1, col2: Type2, ...>


STRUCT<col1: Type1, col2: Type2, ...>


Diğer


Desteklenmiyor