日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Hive數(shù)據(jù)源

更新時(shí)間:

云數(shù)據(jù)庫(kù) SelectDB 版支持聯(lián)邦查詢(xún),能夠快速集成數(shù)據(jù)湖、數(shù)據(jù)庫(kù)、遠(yuǎn)端文件等外部數(shù)據(jù)源,為您提供簡(jiǎn)便而高效的數(shù)據(jù)分析體驗(yàn)。本文介紹SelectDB如何使用Catalog集成Hive數(shù)據(jù)源,對(duì)Hive數(shù)據(jù)源進(jìn)行聯(lián)邦分析。

前提條件

  • 已將Hive集群所有節(jié)點(diǎn)IP添加至SelectDB的白名單。具體操作,請(qǐng)參見(jiàn)設(shè)置白名單

  • 如果您的Hive是基于HDFS構(gòu)建的,確保HDFS開(kāi)放了以下端口,用于Hive與SelectDB之間的傳輸數(shù)據(jù)。

    • hive.metastore.uris中指定的端口,默認(rèn)為9083。

    • dfs.namenode.rpc-address中指定的端口,默認(rèn)為8020。

    • dfs.datanode.address中指定的端口,默認(rèn)為9866。

  • 了解什么是Catalog,以及Catalog的基本操作。更多詳情,請(qǐng)參見(jiàn)湖倉(cāng)一體

注意事項(xiàng)

  • 支持Hive1、Hive2、Hive3版本。

  • 支持Managed Table、External Table以及部分Hive View。

  • 支持識(shí)別Hive Metastore中存儲(chǔ)的Hive、Iceberg、Hudi元數(shù)據(jù)。

  • 目前,云數(shù)據(jù)庫(kù) SelectDB 版對(duì)External Catalog中的數(shù)據(jù)只支持讀操作。

示例環(huán)境

本示例以L(fǎng)inux系統(tǒng)為例,在SelectDB中,使用聯(lián)邦技術(shù)查詢(xún)基于HDFS構(gòu)建的Hive中test_db.test_t數(shù)據(jù)。在實(shí)際使用中,請(qǐng)根據(jù)您的系統(tǒng)和使用環(huán)境修改對(duì)應(yīng)參數(shù)。示例環(huán)境如下:

  • 業(yè)務(wù)場(chǎng)景:非HA

  • 源數(shù)據(jù)Hive的構(gòu)建類(lèi)型:HDFS

  • 源數(shù)據(jù)庫(kù):test_db

  • 源數(shù)據(jù)表:test_t

源數(shù)據(jù)準(zhǔn)備

  1. 登錄目標(biāo)源數(shù)據(jù)Hive。

  2. 創(chuàng)建數(shù)據(jù)庫(kù)testdb。

    CREATE database if NOT EXISTS test_db;
  3. 創(chuàng)建表Hive_t。

    CREATE TABLE IF NOT EXISTS test_t (
        id INT,
        name STRING,
        age INT
    );
  4. 插入數(shù)據(jù)。

    -- 插入數(shù)據(jù)
    INSERT INTO TABLE test_t VALUES
    (1, 'Alice', 25),
    (2, 'Bob', 30),
    (3, 'Charlie', 35),
    (4, 'David', 40),
    (5, 'Eve', 45);

操作步驟

步驟一:連接實(shí)例

連接SelectDB實(shí)例。具體操作,請(qǐng)參見(jiàn)通過(guò)MySQL客戶(hù)端連接云數(shù)據(jù)庫(kù)SelectDB版實(shí)例

步驟二:集成Hive

SelectDB通過(guò)創(chuàng)建External Catalog集成外部數(shù)據(jù)源,不同的業(yè)務(wù)場(chǎng)景,Catalog的配置參數(shù)不同,根據(jù)您的業(yè)務(wù)場(chǎng)景,選擇合適的語(yǔ)法以及參數(shù)配置。

創(chuàng)建Catalog后,云數(shù)據(jù)庫(kù) SelectDB 版會(huì)自動(dòng)同步數(shù)據(jù)目錄的數(shù)據(jù)庫(kù)和表。針對(duì)不同的數(shù)據(jù)目錄和數(shù)據(jù)表格式,云數(shù)據(jù)庫(kù) SelectDB 版會(huì)進(jìn)行列與列之間的關(guān)系映射。如果您還不清楚Hive與SelectDB的列映射關(guān)系,請(qǐng)參見(jiàn)下述列類(lèi)型映射章節(jié)。

Hive基于HDFS構(gòu)建

語(yǔ)法
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>'
);
參數(shù)說(shuō)明

非HA場(chǎng)景

參數(shù)

必選

說(shuō)明

catalog_name

Catalog的名稱(chēng)。

type

Catalog類(lèi)型。固定填寫(xiě)hms。

hive.metastore.uris

Hive MetaStore的URI。

  • 格式為thrift://<Hive MetaStore的IP地址>:<端口號(hào)>

  • 端口號(hào)默認(rèn)為9083。

  • 可通過(guò)SET hive.metastore.uris在Hive終端執(zhí)行獲取。

HA場(chǎng)景

參數(shù)

必選

說(shuō)明

catalog_name

Catalog的名稱(chēng)。

type

Catalog類(lèi)型。固定填寫(xiě)hms。

hive.metastore.uris

Hive MetaStore的URI。

  • 格式為thrift://<Hive MetaStore的IP地址>:<端口號(hào)>

  • 端口號(hào)默認(rèn)為9083。

  • 可通過(guò)SET hive.metastore.uris在Hive終端執(zhí)行獲取。

hadoop.username

HDFS用戶(hù)名。

dfs.nameservices

Name Service名稱(chēng),與已有Hive環(huán)境依賴(lài)的hdfs-site.xml配置文件里dfs.nameservices的值保持一致。

dfs.ha.namenodes.[nameservice ID]

NameNode的ID列表,與已有Hive環(huán)境依賴(lài)的hdfs-site.xml配置文件里的相應(yīng)配置項(xiàng)的值保持一致。

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

NameNode的RPC地址,數(shù)量與NameNode數(shù)量相同,與已有Hive環(huán)境依賴(lài)的hdfs-site.xml配置文件里的相應(yīng)配置項(xiàng)的值保持一致。

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

HDFS客戶(hù)端連接活躍NameNode的Java類(lèi),通常是org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

非HA場(chǎng)景示例
CREATE CATALOG hive_catalog PROPERTIES (
    'type'='hms',
    'hive.metastore.uris' = 'thrift://master-1-1.c-7fa25a1a****.cn-hangzhou.emr.aliyuncs.com:9083'
);

Hive基于阿里云OSS構(gòu)建

語(yǔ)法

此處語(yǔ)法同Hive基于HDFS構(gòu)建一致,只是必選參數(shù)不同。

參數(shù)說(shuō)明

參數(shù)

必選

說(shuō)明

type

Catalog類(lèi)型。固定填寫(xiě)hms。

hive.metastore.uris

Hive MetaStore的URI。

  • 格式為thrift://<Hive MetaStore的IP地址>:<端口號(hào)>

  • 端口號(hào)默認(rèn)為9083。

  • 可通過(guò)SET hive.metastore.uris在Hive終端執(zhí)行獲取。

oss.endpoint

訪(fǎng)問(wèn)OSS數(shù)據(jù)的Endpoint。如何獲取,請(qǐng)參見(jiàn)訪(fǎng)問(wèn)域名和數(shù)據(jù)中心

oss.access_key

訪(fǎng)問(wèn)OSS數(shù)據(jù)的Accesskey ID

oss.secret_key

訪(fǎng)問(wèn)OSS數(shù)據(jù)的AccessKey Secret

示例

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"
);

步驟三:查看Catalog

您可以通過(guò)以下語(yǔ)句,查看Catalog創(chuàng)建是否成功。

SHOW CATALOGS; --查看CATALOG是否創(chuàng)建成功
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
| 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 |
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+

步驟四:查看Hive庫(kù)表數(shù)據(jù)

  • 在目標(biāo)External Catalog目錄下查看Hive庫(kù)表數(shù)據(jù)。

    說(shuō)明

    連接SelectDB實(shí)例后,默認(rèn)操作目錄為Internal Catalog。

    1. 切換目錄至目標(biāo)External Catalog。

      SWITCH hive_catalog;
    2. 查看數(shù)據(jù)。

      完成目標(biāo)目錄切換后,您可以像使用Internal Catalog一樣,對(duì)External Catalog的數(shù)據(jù)進(jìn)行查看和訪(fǎng)問(wèn)。例如以下操作:

      • 查看數(shù)據(jù)庫(kù)列表:SHOW DATABASES;

      • 切換數(shù)據(jù)庫(kù):USE test_db;

      • 查看數(shù)據(jù)庫(kù)表列表:SHOW TABLES;

      • 查看表數(shù)據(jù):SELECT * FROM test_t;

  • 在Internal Catalog目錄下查看Iceberg庫(kù)表數(shù)據(jù)。

    --查看hive_catalog目錄下,數(shù)據(jù)庫(kù)test_db中表test_t的數(shù)據(jù)。
    SELECT * FROM hive_catalog.test_db.test_t;

更多操作:遷移數(shù)據(jù)

完成數(shù)據(jù)源集成后,如果你需要將Hive的歷史數(shù)據(jù)遷移至SelectDB中,您可通過(guò)內(nèi)聯(lián)語(yǔ)法進(jìn)行歷史數(shù)據(jù)遷移,具體操作,請(qǐng)參見(jiàn)Insert Into

列類(lèi)型映射

說(shuō)明
  • 以下HMS Type適用于Hive、Iceberg和Hudi。

  • 以下部分復(fù)雜結(jié)構(gòu)的HMS Type和SelectDB Type支持嵌套

    • array<type>:嵌套示例:array<map<string, int>>

    • map<KeyType, ValueType>:嵌套示例:map<string, array<int>>

    • struct<col1: Type1, col2: Type2, ...>:嵌套示例:struct<col1: array<int>, col2: map<int, date>>

HMS Type

SelectDB Type

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

other

unsupported