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

基于Hive Metastore訪問OSS數據湖數據(Beta)

Hologres從V2.2版本開始,支持通過Hive Metastore訪問存儲于OSS上的數據湖數據,如您使用EMR集群構建了基于OSS的數據湖環境,可通過簡單配置實現Hologres加速讀寫OSS和OSS-HDFS數據。

前提條件

  • 已開通OSS服務。具體操作,請參見控制臺快速入門。

  • 已創建EMR數據湖集群構建測試數據。具體操作,請參見創建集群。Hologres支持的EMR集群需滿足以下條件:

    • Hive為3.1.3及以上版本。

    • 未開啟Kerberos身份認證。

    • 元數據選擇自建RDS或者內置MySQL。

  • 已購買Hologres實例并開啟數據湖加速,然后登錄Hologres實例并創建數據庫。具體操作,請參見購買Hologres創建數據庫

    說明

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

  • 已完成網絡打通。

    您需要先提交網絡打通申請(網絡打通申請鏈接請參見網絡打通申請)。收到您的申請后,阿里云Hologres技術支持人員會聯系并協助您完成以下操作,從而實現網絡互通:

    登錄專有網絡管理控制臺創建反向終端節點,具體操作請參見創建反向終端節點。終端節點服務選擇其他終端節點服務,然后輸入EMR集群所在地域的終端節點服務的名稱。各地域終端節點服務名稱如下。

    地域

    終端節點服務名稱

    北京

    com.aliyuncs.privatelink.cn-beijing.epsrv-2zeokrydzjd6kx3cbwmb

    上海

    com.aliyuncs.privatelink.cn-shanghai.epsrv-uf61fvlfwta7f7dv9n3x

    張家口

    com.aliyuncs.privatelink.cn-zhangjiakou.epsrv-8vbno4k4wwvys0eg2swp

    說明
    • 如您所在地域未提供終端節點服務名稱,Hologres會在您提交網絡打通申請后為您創建并提供反饋。

    • 專有網絡VPC(Virtual Private Cloud)是基于阿里云構建的一個隔離的網絡環境,VPC網絡之間、VPC網絡與傳統經典網絡之間邏輯上徹底隔離,默認無法進行互訪。Hologres服務先于VPC網絡存在,部署在經典網絡里,因此需要通過配置反向終端節點來實現網絡聯通。

    • 當前網絡配置是通過IP來進行連接,當EMR集群IP發生變化后,需要重新配置。

限制條件

  • Hologres只讀從實例暫不支持開啟數據湖加速功能。

  • 不支持對外部表執行UPDATEDELETETRUNCATE等操作。

  • 暫不支持通過Auto Load方式映射來自HMS的外部表。

  • 暫不支持開啟了Kerberos身份認證的Hive集群。

操作步驟

  1. 執行SQL命令,創建EXTENSION。

    創建EXTENSION需要Superuser權限,該操作針對整個DB生效,一個DB只需執行一次。

    CREATE EXTENSION IF NOT EXISTS hive_fdw;
  2. 基于hive_fdw創建Foreign Server(外部服務器)并配置Endpoint信息。

    CREATE SERVER IF NOT EXISTS <server_name> FOREIGN DATA WRAPPER hive_fdw 
    OPTIONS (
       hive_metastore_uris 'thrift://<Hive metastore的IP地址>:<端口號>',
       oss_endpoint 'oss-<nation>-<region>-internal.aliyuncs.com | <bucket>.oss-<nation>-<region>.oss-dls.aliyuncs.com' 
    );

    參數

    是否必填

    說明

    示例值

    server_name

    自定義Foreign Server名稱。

    hive_server

    hive_metastore_uris

    Hive MetaStore的URI。格式為thrift://<Hive metastore的IP地址>:<端口號>,端口號默認為9083。

    說明

    您可以登錄E-MapReduce控制臺,單擊目標集群操作列中的節點管理。在節點管理頁簽,獲取master節點的內網 IP,內網IP即Hive metastore的IP地址。

    thrift://172.16.0.250:9083

    oss_endpoint

    OSS的Endpoint地址。您可以根據自己實際業務選擇:

    • 原生OSS存儲:為獲得更好的訪問性能,推薦使用OSS的內網Endpoint。

    • OSS-HDFS存儲:目前僅支持內網訪問。

    說明

    您可以登錄OSS管理控制臺,進入Bucket文件的概覽頁面,在訪問端口區域,獲取OSS的Endpoint地址。

    • OSS

      oss-cn-shanghai-internal.aliyuncs.com
    • OSS-HDFS

      <bucket_name>.cn-beijing.oss-dls.aliyuncs.com
  3. (可選)創建用戶映射。

    Hologres支持通過CREATE USER MAPPING來指定其他用戶身份訪問特定的Foreign Server。例如:Foreign Server的Owner可以通過CREATE USER MAPPING指定RAM用戶(123xxx)來訪問OSS外部數據。CREATE USER MAPPING詳情,請參見postgres create user mapping

    CREATE USER mapping FOR <賬號> server <server_name> options
    (
        dlf_access_id 'accessid', 
        dlf_access_key 'accesskey',
        oss_access_id 'accessid', 
        oss_access_key 'accesskey'
    );

    示例如下。

    --為當前用戶創建用戶映射
    CREATE USER mapping FOR current_user server <server_name> options
    (
        dlf_access_id 'LTAI5txxx', 
        dlf_access_key 'y8LUUyyy',
        oss_access_id 'LTAI5txxx', 
        oss_access_key 'y8LUUyyy'
    );
    
    --為RAM用戶123xxx創建用戶映射
    CREATE USER mapping FOR "p4_123xxx" server <server_name> options
    (
        dlf_access_id 'LIlY5txxx', 
        dlf_access_key 'KsjkXKyyy',
        oss_access_id 'LIlY5txxx', 
        oss_access_key 'KsjkXKyyy'
    );
    
    --刪除用戶映射
    Drop USER MAPPING FOR CURRENT_USER server <server_name>;
    Drop USER MAPPING FOR "p4_123xxx" server <server_name>;
  4. 創建外部表。

    Hologres支持以下命令創建外部表:

    • CREATE FOREIGN TABLE:一次僅創建一張外部表,但支持通過指定部分列來自定義創建外部表,適用于需要創建的外部表較少且無需映射所有外部表字段的情況。

    • IMPORT FOREIGN SCHEMA:批量創建外部表,適用于需要創建多張外部表或者外部數據源批量映射的場景。

    說明
    • Hologres支持讀取OSS中的分區表,并且支持將TEXT、VARCHAR和INT作為分區鍵的數據類型。使用CREATE FOREIGN TABLE方式時,由于只進行字段映射而不實際存儲數據,只需要將分區字段作為普通字段來創建即可;而使用IMPORT FOREIGN SCHEMA方式時,則無需關心表字段,系統會自動處理表字段映射。

    • 如果OSS外部表存在和Hologres內部表同名的表,IMPORT FOREIGN SCHEMA會跳過該外部表的創建。建議使用CREATE FOREIGN TABLE來定義一個非重復表名來創建。

    -- CREATE FOREIGN TABLE方式
    CREATE FOREIGN TABLE <holo_schema_name>.<table_name>
    (
      { column_name data_type }
      [, ... ]
      ] )
    )
    SERVER <hive_server_name>
    OPTIONS
    (
      schema_name '<ext_db_name>',
      table_name '<ext_table_name>'
    );
    
    
    -- IMPORT FOREIGN SCHEMA方式
    IMPORT FOREIGN SCHEMA <ext_db_name> 
    [
      { limit TO | EXCEPT } 
      ( table_name [, ...] ) 
    ]
    FROM server <hive_server_name>
    INTO <holo_schema_name> 
    options(
      if_table_exist 'update',
      if_unsupported_type 'error'
            );
  5. 查詢外部表。

    創建外部表成功后,可以直接查詢外部表讀取OSS中的數據。

    • 非分區表

      SELECT * FROM <holo_schema>.<hive_table>;
    • 分區表

      SELECT * FROM <holo_schema>.<hive_partition_table> WHERE <partition_key> = '<partition_value>';