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

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

更新時(shí)間:

本文介紹云數(shù)據(jù)庫(kù) SelectDB 版如何通過(guò)Catalog集成Iceberg數(shù)據(jù)源,對(duì)Iceberg數(shù)據(jù)源進(jìn)行聯(lián)邦分析。

前提條件

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

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

注意事項(xiàng)

  • 支持Iceberg V1、V2表格式。

    說(shuō)明

    V2表格式僅支持Position Delete方式,不支持Equality Delete

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

操作步驟

本示例中,iceberg_catalog為目標(biāo)External Catalog,根據(jù)您的實(shí)際情況,替換成自己的參數(shù)。

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

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

步驟二:集成Iceberg

SelectDB通過(guò)創(chuàng)建External Catalog集成外部數(shù)據(jù)源,不同的Catalog類型,其訪問(wèn)Iceberg元數(shù)據(jù)的API不同,根據(jù)您的具體需求,選擇合適的Catalog類型。

基于Hive API訪問(wèn)

如果您的Iceberg構(gòu)建在Hive之上,并期望SelectDB調(diào)用Hive的API獲取Iceberg元數(shù)據(jù),您可以創(chuàng)建hms類型的Catalog進(jìn)行集成Iceberg。具體操作與SelectDB集成Hive相同,此處僅提供簡(jiǎn)單示例,更多詳情,請(qǐng)參見(jiàn)Hive數(shù)據(jù)源

CREATE CATALOG iceberg_catalog PROPERTIES (
    'type'='hms',
    'hive.metastore.uris' = 'thrift://172.21.0.1:7004',
    'hadoop.username' = 'hive',
    'dfs.nameservices'='your-nameservice',
    'dfs.ha.namenodes.your-nameservice'='nn1,nn2',
    'dfs.namenode.rpc-address.your-nameservice.nn1'='172.21.0.2:4007',
    'dfs.namenode.rpc-address.your-nameservice.nn2'='172.21.0.3:4007',
    'dfs.client.failover.proxy.provider.your-nameservice'='org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider'
);

基于Iceberg API訪問(wèn)

如果您期望SelectDB調(diào)用Iceberg的API獲取Iceberg元數(shù)據(jù),您可以根據(jù)Iceberg的服務(wù)類型,選擇合適的Catalog類型。

支持調(diào)用Iceberg的API獲取Iceberg元數(shù)據(jù)的服務(wù)有Hadoop File System、Hive、REST、DLF等。

重要

創(chuàng)建Iceberg Catalog中dfs相關(guān)的參數(shù)與Iceberg配置文件hdfs-site.xml中的參數(shù)是一一映射關(guān)系,參數(shù)和參數(shù)含義都相同。所以此處dfs相關(guān)參數(shù)值均需與配置文件hdfs-site.xml中的值保持一致。

Hadoop Catalog

-- 非HA集群
CREATE CATALOG iceberg_hadoop PROPERTIES (
    'type'='iceberg',
    'iceberg.catalog.type' = 'hadoop',
    'warehouse' = 'hdfs://your-host:8020/dir/key'
);
-- HA集群
CREATE CATALOG iceberg_hadoop_ha PROPERTIES (
    'type'='iceberg',
    'iceberg.catalog.type' = 'hadoop',
    'warehouse' = 'hdfs://your-nameservice/dir/key',
    'dfs.nameservices'='your-nameservice',
    'dfs.ha.namenodes.your-nameservice'='nn1,nn2',
    'dfs.namenode.rpc-address.your-nameservice.nn1'='172.21.0.2:4007',
    'dfs.namenode.rpc-address.your-nameservice.nn2'='172.21.0.3:4007',
    'dfs.client.failover.proxy.provider.your-nameservice'='org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider'
);

如果您的數(shù)據(jù)存放在對(duì)象存儲(chǔ)(OSS)中,需要在PROPERTIES中配置以下參數(shù)。

"oss.access_key" = "ak"
"oss.secret_key" = "sk"
"oss.endpoint" = "oss-cn-beijing-internal.aliyuncs.com"
"oss.region" = "oss-cn-beijing"
參數(shù)說(shuō)明
說(shuō)明

如果您的數(shù)據(jù)存放在對(duì)象存儲(chǔ)(OSS)中,OSS相關(guān)參數(shù)為必選參數(shù)。

參數(shù)

是否必選

說(shuō)明

type

Catalog類型,固定為iceberg。

warehouse

倉(cāng)庫(kù)的HDFS路徑。

iceberg.catalog.type

Iceberg的catalog類型。固定為hadoop。

dfs.nameservices

命名服務(wù)的名稱。

dfs.ha.namenodes.[nameservice ID]

NameNode的ID列表。

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

NameNode的RPC地址,數(shù)量與NameNode數(shù)量相同。

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

HDFS客戶端連接活躍NameNode的Java類,通常是org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

oss.region

訪問(wèn)OSS數(shù)據(jù)的地域。

oss.endpoint

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

oss.access_key

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

oss.secret_key

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

Hive Metastore

CREATE CATALOG iceberg_catalog PROPERTIES (
    'type'='iceberg',
    'iceberg.catalog.type'='hms',
    'hive.metastore.uris' = 'thrift://172.21.0.1:7004',
    'hadoop.username' = 'hive',
    'dfs.nameservices'='your-nameservice',
    'dfs.ha.namenodes.your-nameservice'='nn1,nn2',
    'dfs.namenode.rpc-address.your-nameservice.nn1'='172.21.0.2:4007',
    'dfs.namenode.rpc-address.your-nameservice.nn2'='172.21.0.3:4007',
    'dfs.client.failover.proxy.provider.your-nameservice'='org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider'
);

如果您的數(shù)據(jù)存放在對(duì)象存儲(chǔ)(OSS)中,需要在PROPERTIES中配置以下參數(shù)。

"oss.access_key" = "ak"
"oss.secret_key" = "sk"
"oss.endpoint" = "oss-cn-beijing-internal.aliyuncs.com"
"oss.region" = "oss-cn-beijing"
參數(shù)說(shuō)明
說(shuō)明

如果您的數(shù)據(jù)存放在對(duì)象存儲(chǔ)(OSS)中,OSS相關(guān)參數(shù)為必選參數(shù)。

參數(shù)

是否必選

說(shuō)明

type

Catalog類型,固定為iceberg。

iceberg.catalog.type

Iceberg的Catalog類型。固定為hms。

hive.metastore.uris

Hive的metastore服務(wù)器URI。

hadoop.username

HDFS用戶名。

dfs.nameservices

Name Service名稱。

dfs.ha.namenodes.[nameservice ID]

NameNode的ID列表。

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

NameNode的RPC地址,數(shù)量與NameNode數(shù)量相同。

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

HDFS客戶端連接活躍NameNode的Java類,通常是org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

oss.region

訪問(wèn)OSS數(shù)據(jù)的地域。

oss.endpoint

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

oss.access_key

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

oss.secret_key

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

REST Catalog

該方式需要預(yù)先提供REST服務(wù),您需實(shí)現(xiàn)獲取Iceberg元數(shù)據(jù)的REST接口。

CREATE CATALOG iceberg PROPERTIES (
    'type'='iceberg',
    'iceberg.catalog.type'='rest',
    'uri' = 'http://172.21.0.1:8181'
);

如果您使用HDFS存儲(chǔ)數(shù)據(jù),并開(kāi)啟了高可用模式,還需在Catalog中增加HDFS高可用配置。

CREATE CATALOG iceberg PROPERTIES (
    'type'='iceberg',
    'iceberg.catalog.type'='rest',
    'uri' = 'http://172.21.0.1:8181',
    'dfs.nameservices'='your-nameservice',
    'dfs.ha.namenodes.your-nameservice'='nn1,nn2',
    'dfs.namenode.rpc-address.your-nameservice.nn1'='172.21.0.1:8020',
    'dfs.namenode.rpc-address.your-nameservice.nn2'='172.21.0.2:8020',
    'dfs.client.failover.proxy.provider.your-nameservice'='org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider'
);
參數(shù)說(shuō)明

參數(shù)

是否必選

說(shuō)明

type

Catalog類型,固定為iceberg。

uri

REST服務(wù)的URI。

iceberg.catalog.type

Iceberg的catalog類型。固定為rest。

dfs.nameservices

Name Service名稱。

dfs.ha.namenodes.[nameservice ID]

NameNode的ID列表。

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

NameNode的RPC地址,數(shù)量與NameNode數(shù)量相同,與hdfs-site.xml保持一致。

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

HDFS客戶端連接活躍NameNode的Java類,通常是org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

步驟三:查看Catalog

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

SHOW CATALOGS; --查看CATALOG是否創(chuàng)建成功
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
| CatalogId    | CatalogName  | Type     | IsCurrent | CreateTime              | LastUpdateTime      | Comment                |
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
| 436009309195 | iceberg_catalog | jdbc      |           | 2024-08-06 17:09:08.058 | 2024-07-19 18:04:37 |                        |
|            0 | internal     | internal | yes       | UNRECORDED              | NULL                | Doris internal catalog |
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+

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

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

    說(shuō)明

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

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

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

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

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

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

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

      • 查看表數(shù)據(jù)。

        在Iceberg中,每次對(duì)表的寫操作都會(huì)產(chǎn)生一個(gè)新的快照(Snapshot)。

        默認(rèn)情況下,SelectDB的讀請(qǐng)求只會(huì)讀取Iceberg最新版本的快照,您可以使用FOR time AS OF FOR version AS OF語(yǔ)句,根據(jù)快照ID或者快照產(chǎn)生的時(shí)間讀取歷史版本的數(shù)據(jù)。示例如下:

        -- 查詢表test_t最新快照版本的數(shù)據(jù)。
        SELECT * FROM test_t;
        -- 查詢表test_t指定時(shí)間的數(shù)據(jù)。
        SELECT * FROM test_t FOR TIME AS OF "2022-10-07 17:20:37";
        -- 查詢指定快照ID對(duì)應(yīng)表test_t的數(shù)據(jù)。
        SELECT * FROM test_t FOR VERSION AS OF 868895038****72;

        如果您不知道iceberg表的各類元數(shù)據(jù)信息,如操作歷史、生成的快照、文件元數(shù)據(jù)等,可通過(guò)表函數(shù)iceberg_meta獲取,更多表函數(shù)iceberg_meta詳情,請(qǐng)參見(jiàn)ICEBERG_META

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

    --查看iceberg_catalog目錄下,數(shù)據(jù)庫(kù)test_db中表test_t的最新快照版本的數(shù)據(jù)。
    SELECT * FROM iceberg_catalog.test_db.test_t;
    -- 查詢指定時(shí)間test_t的數(shù)據(jù)。
    SELECT * FROM iceberg_catalog.test_db.test_t FOR TIME AS OF "2022-10-07 17:20:37";
    -- 查詢指定快照ID對(duì)應(yīng)的test_t表的數(shù)據(jù)。
    SELECT * FROM iceberg_catalog.test_db.test_t FOR VERSION AS OF 868895038****72;

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

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

類型映射

Iceberg數(shù)據(jù)源和SelectDB的列映射關(guān)系,與Hive數(shù)據(jù)源和SelectDB的映射關(guān)系一致。映射詳情,請(qǐng)參見(jiàn)Hive數(shù)據(jù)源