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

數據湖加速查詢

基于阿里云數據湖構建(Data Lake Formation,DLF)和對象存儲(Object Storage Service,OSS)推出的Hologres數據湖加速服務,提供了靈活的數據訪問和分析能力以及高效的數據處理能力,顯著加快了對OSS數據湖的查詢和分析過程。

背景信息

企業數字化轉型不斷深入,數據量急劇增長,傳統數據分析在成本、規模、數據多樣性等方面面臨很大挑戰。Hologres聯合DLF、OSS推出湖倉一體架構的數據湖加速服務,助力企業實現海量數據的低成本存儲、統一的元數據管理和高效的數據分析和洞察。

Hologres通過與DLF、OSS無縫集成,以外部表的方式,無需移動數據(外表只做字段映射,不真正存儲數據),就能直接加速讀寫存儲于OSS上的Hudi、Delta、Paimon、ORC、Parquet、CSV、SequenceFile等格式類型的數據,降低開發運維成本,打破數據孤島,實現業務洞察。Hologres支持獨享實例(資源獨占)和共享集群 Serverless (按使用付費)兩種模式,詳見購買Hologres

實時數據湖涉及的阿里云服務介紹如下:

服務

介紹

相關鏈接

阿里云數據湖構建(Data Lake Formation,DLF)

是一款全托管的快速幫助用戶構建云上數據湖及Lakehouse的服務,產品提供了云上數據湖統一的元數據管理、統一的權限與安全管理、便捷的數據入湖能力以及一鍵式數據探索能力。

DLF產品簡介

阿里云對象存儲(Object Storage Service,OSS)

DLF將OSS作為云上數據湖的統一存儲,OSS是一款海量、安全、低成本、高可靠的云存儲服務,適合存放任意類型的文件,可提供12個9的數據持久性,已成為湖數據存儲的事實標準。

什么是對象存儲OSS

OSS-HDFS服務(又名JindoFS)是云原生數據湖存儲,相比原生OSS存儲,OSS-HDFS與Hadoop生態計算引擎無縫集成,在典型的基于Hive和Spark的離線ETL場景擁有更好的表現,在完全兼容HDFS文件系統接口的同時,提供充分的POSIX能力支持,可以更好地滿足大數據和AI等領域的數據湖計算場景。

什么是OSS-HDFS服務

注意事項

Hologres共享集群不存儲數據,僅支持外表查詢OSS數據湖。

準備工作

本文以上海地域為例開通OSS、DLF和Hologres服務。

  1. 開通OSS服務并準備測試數據。

    1. 打開OSS開通頁面,按照界面指引完成開通操作。

      說明
    2. 登錄OSS管理控制臺,創建存儲空間(Bucket)。具體操作,請參見控制臺快速入門

    3. 上傳tpch_10g_orc_3.zip測試數據至Bucket目錄。image.png

      說明
      • 測試數據文件上傳后,若存在.DS_Store等文件需手動刪除。

      • 考慮到下載速度,這里僅包含本文需要的nation_orc、supplier_orc、partsupp_orc數據表。

  2. 開通DLF服務并導入OSS測試數據。

    1. 訪問開通DLF頁面,您也可以單擊免費開通,免費試用DLF產品

    2. 登錄數據湖管理控制臺,在元數據管理頁面,單擊新建數據庫。具體操作,請參見創建元數據庫。

      本文以創建mydatabase數據庫為例。

    3. 元數據抽取頁面,創建元數據抽取任務,將OSS測試數據導入。具體操作,請參見元數據抽取

      抽取完成后,您可以在元數據管理頁面的數據表頁簽查看。

      image.png

  3. 開通Hologres服務并購買Hologres實例。具體操作,請參見購買Hologres

    說明

    若您是新用戶可以通過阿里云免費試用頁面,申請免費試用Hologres。試用詳情,請參見查詢Hologres數據

步驟一:配置環境

  1. 在Hologres實例中開啟數據湖加速功能。

    訪問Hologres實例列表,單擊目標實例操作列中的數據湖加速并確認,開啟數據湖加速功能后,Hologres實例將重啟。

  2. 登錄Hologres實例,創建數據庫。具體操作,請參見連接HoloWeb并執行查詢

  3. (可選)創建Extension。本文以dlf_fdw為例。

    說明

    Hologres V2.1版本已默認創建,您無需進行此操作。您可以訪問Hologres實例列表,在實例詳情頁面確認您的實例版本。

    CREATE EXTENSION IF NOT EXISTS dlf_fdw;
    說明

    使用Superuser在SQL編輯器-HoloWeb中執行上述語句創建Extension,該操作針對整個DB生效,一個DB只需執行一次。關于Hologres賬號授權詳情,請參見授權服務賬號。

  4. 執行以下語句,創建dlf_server外部服務器并配置Endpoint信息,確保Hologres、DLF和OSS之間的正常訪問。關于更多的創建方式和相關參數介紹詳情,請參見創建外部服務器。

    --創建外部服務器,以上海reigon為例
    CREATE SERVER IF NOT EXISTS dlf_server FOREIGN data wrapper dlf_fdw options (
        dlf_region 'cn-shanghai',
        dlf_endpoint 'dlf-share.cn-shanghai.aliyuncs.com',
        oss_endpoint 'oss-cn-shanghai-internal.aliyuncs.com'); 

步驟二:通過Hologres外部表查詢OSS數據湖

Hologres外部表保存與OSS數據湖數據的映射關系,數據在OSS數據湖中存儲,不占用Hologres存儲空間,查詢性能一般在秒級至分鐘級。

  1. 創建Hologres外部表,并將OSS數據湖數據映射至Hologres外部表。

    IMPORT FOREIGN SCHEMA mydatabase LIMIT TO ----本文以mydatabase為例,創建時需替換為您在DLF元數據管理中的自定義的數據庫名稱
    (
      nation_orc,
      supplier_orc,
      partsupp_orc
    )
    FROM SERVER dlf_server INTO public options (if_table_exist 'update');
  2. 數據查詢。

    創建外部表成功后,可以直接查詢外部表讀取OSS中的數據。示例語句如下。

    --TPCH Q11查詢語句
    select
            ps_partkey,
            sum(ps_supplycost * ps_availqty) as value
    from
            partsupp_orc,
            supplier_orc,
            nation_orc
    where
            ps_suppkey = s_suppkey
            and s_nationkey = n_nationkey
            and RTRIM(n_name) = 'EGYPT'
    group by
            ps_partkey having
                    sum(ps_supplycost * ps_availqty) > (
                            select
                                    sum(ps_supplycost * ps_availqty) * 0.000001
                            from
                                    partsupp_orc,
                                    supplier_orc,
                                    nation_orc
                            where
                                    ps_suppkey = s_suppkey
                                    and s_nationkey = n_nationkey
                                    and RTRIM(n_name) = 'EGYPT'
                    )
    order by
            value desc;

步驟三:(可選)通過Hologres內部表查詢OSS數據湖

Hologres內部表查詢是將OSS數據湖數據導入至Hologres中,數據將在Hologres中存儲,可獲得更好的查詢性能和更高的數據處理能力。關于存儲費用詳情介紹,請參見計費概述

  1. 在Hologres中創建與外部表相同表結構的內部表,示例如下。

    -- 創建nation表
    DROP TABLE IF EXISTS NATION;
    
    BEGIN;
    CREATE TABLE NATION (
        N_NATIONKEY int NOT NULL PRIMARY KEY,
        N_NAME text NOT NULL,
        N_REGIONKEY int NOT NULL,
        N_COMMENT text NOT NULL
    );
    CALL set_table_property ('NATION', 'distribution_key', 'N_NATIONKEY');
    CALL set_table_property ('NATION', 'bitmap_columns', '');
    CALL set_table_property ('NATION', 'dictionary_encoding_columns', '');
    COMMIT;
    
    -- 創建supplier表
    DROP TABLE IF EXISTS SUPPLIER;
    
    BEGIN;
    CREATE TABLE SUPPLIER (
        S_SUPPKEY int NOT NULL PRIMARY KEY,
        S_NAME text NOT NULL,
        S_ADDRESS text NOT NULL,
        S_NATIONKEY int NOT NULL,
        S_PHONE text NOT NULL,
        S_ACCTBAL DECIMAL(15, 2) NOT NULL,
        S_COMMENT text NOT NULL
    );
    CALL set_table_property ('SUPPLIER', 'distribution_key', 'S_SUPPKEY');
    CALL set_table_property ('SUPPLIER', 'bitmap_columns', 'S_NATIONKEY');
    CALL set_table_property ('SUPPLIER', 'dictionary_encoding_columns', '');
    COMMIT;
    
    -- 創建partsupp表
    DROP TABLE IF EXISTS PARTSUPP;
    
    BEGIN;
    CREATE TABLE PARTSUPP (
        PS_PARTKEY int NOT NULL,
        PS_SUPPKEY int NOT NULL,
        PS_AVAILQTY int NOT NULL,
        PS_SUPPLYCOST DECIMAL(15, 2) NOT NULL,
        PS_COMMENT text NOT NULL,
        PRIMARY KEY (PS_PARTKEY, PS_SUPPKEY)
    );
    CALL set_table_property ('PARTSUPP', 'distribution_key', 'PS_PARTKEY');
    CALL set_table_property ('PARTSUPP', 'bitmap_columns', 'ps_availqty');
    CALL set_table_property ('PARTSUPP', 'dictionary_encoding_columns', '');
    COMMIT;
  2. 同步Hologres外部表數據至Hologres內部表。

    ---將Hologres外表數據導入內表
    INSERT INTO nation SELECT * FROM nation_orc;
    INSERT INTO supplier SELECT * FROM supplier_orc;
    INSERT INTO partsupp SELECT * FROM partsupp_orc;
  3. 查詢Hologres內部表數據。

    --TPCH Q11查詢語句
    select
            ps_partkey,
            sum(ps_supplycost * ps_availqty) as value
    from
            partsupp,
            supplier,
            nation
    where
            ps_suppkey = s_suppkey
            and s_nationkey = n_nationkey
            and RTRIM(n_name) = 'EGYPT'
    group by
            ps_partkey having
                    sum(ps_supplycost * ps_availqty) > (
                            select
                                    sum(ps_supplycost * ps_availqty) * 0.000001
                            from
                                    partsupp,
                                    supplier,
                                    nation
                            where
                                    ps_suppkey = s_suppkey
                                    and s_nationkey = n_nationkey
                                    and RTRIM(n_name) = 'EGYPT'
                    )
    order by
            value desc;

常見問題

創建Hologres外表時,出現ERROR: babysitter not ready,req:name:"HiveAccess"

  • 問題原因:未開啟數據湖加速。

  • 解決方法:訪問Hologres實例列表,單擊目標實例操作列中的數據湖加速并確認,開啟數據湖加速功能。

相關文檔

以上為示例教程,關于數據湖功能的完整介紹,請參見OSS數據湖加速。