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

湖倉一體2.0使用指南

更新時(shí)間:

MaxCompute提供湖倉一體2.0方案,允許用戶建立定義外部數(shù)據(jù)源元數(shù)據(jù)和數(shù)據(jù)訪問方式的管理對(duì)象,并通過外部Schema映射機(jī)制實(shí)現(xiàn)直接訪問外部數(shù)據(jù)源Database或Schema范圍內(nèi)的全部表的功能。該方案可以打破數(shù)據(jù)湖與數(shù)據(jù)倉庫割裂的體系,并將數(shù)據(jù)湖的靈活性、豐富的多引擎生態(tài)與數(shù)據(jù)倉庫的企業(yè)級(jí)能力進(jìn)行融合,助力構(gòu)建數(shù)據(jù)湖和數(shù)據(jù)倉庫相融合的數(shù)據(jù)管理平臺(tái)(本功能處于公測(cè)階段)。

概念說明

  • 數(shù)據(jù)倉庫與數(shù)據(jù)湖對(duì)比

    類別

    能力

    數(shù)據(jù)倉庫

    更強(qiáng)調(diào)對(duì)進(jìn)入數(shù)倉的結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù)的管理和約束,并依賴強(qiáng)管理能力,獲得更好的計(jì)算性能和更規(guī)范化的管理能力。

    數(shù)據(jù)湖

    更強(qiáng)調(diào)數(shù)據(jù)存儲(chǔ)的開放性和數(shù)據(jù)格式的通用性,支持多種引擎按需生產(chǎn)或消費(fèi)數(shù)據(jù),為保障靈活性只提供弱管理能力,可以兼容非結(jié)構(gòu)化數(shù)據(jù),并支持后建Schema的使用方式,是一種更靈活的數(shù)據(jù)管理方式。

  • MaxCompute數(shù)據(jù)倉庫

    MaxCompute是基于Serverless架構(gòu)的云原生數(shù)據(jù)倉庫。您可以進(jìn)行如下操作:

    • 使用MaxCompute進(jìn)行數(shù)據(jù)倉庫建模。

    • 使用ETL工具將數(shù)據(jù)加載入有結(jié)構(gòu)定義的模型表中并存儲(chǔ)。

    • 使用標(biāo)準(zhǔn)的SQL引擎處理數(shù)倉中的海量數(shù)據(jù),并通過Hologres OLAP引擎分析數(shù)據(jù)。

  • MaxCompute在數(shù)據(jù)湖上的使用場(chǎng)景和聯(lián)邦場(chǎng)景

    在數(shù)據(jù)湖場(chǎng)景中,數(shù)據(jù)存在于湖上,并有多種引擎生產(chǎn)或消費(fèi)這些開放的數(shù)據(jù)。MaxCompute計(jì)算引擎作為湖上引擎的一種,也可以參與數(shù)據(jù)的加工和使用。此時(shí),MaxCompute需要讀取數(shù)據(jù)湖上游產(chǎn)生的數(shù)據(jù),兼容多種主流開源數(shù)據(jù)格式,在引擎內(nèi)計(jì)算,并持續(xù)向工作流下游生產(chǎn)數(shù)據(jù)。

    同時(shí),MaxCompute作為安全、高性能和高性價(jià)比、匯聚了高價(jià)值數(shù)據(jù)的數(shù)倉,也需要能夠從數(shù)據(jù)湖上獲取元數(shù)據(jù)和數(shù)據(jù),進(jìn)行外部數(shù)據(jù)的引擎內(nèi)計(jì)算,并與倉內(nèi)數(shù)據(jù)做聯(lián)邦計(jì)算提取數(shù)據(jù)價(jià)值,向強(qiáng)管理的數(shù)倉匯聚。

    除了在數(shù)據(jù)湖之上,MaxCompute作為數(shù)倉也需要獲取多種外部數(shù)據(jù)源的數(shù)據(jù),例如Hadoop、Hologres等,與倉內(nèi)數(shù)據(jù)做聯(lián)邦計(jì)算。在聯(lián)邦計(jì)算場(chǎng)景下,MaxCompute同樣需要支持讀取外部系統(tǒng)的元數(shù)據(jù)和數(shù)據(jù)。

  • MaxCompute湖倉一體2.0

    MaxCompute湖倉一體2.0基于MaxCompute計(jì)算引擎,支持通過云產(chǎn)品互聯(lián)網(wǎng)絡(luò)訪問阿里云元數(shù)據(jù)或存儲(chǔ)服務(wù),或通過專線網(wǎng)絡(luò)訪問VPC中的外部數(shù)據(jù)源,允許用戶建立定義外部數(shù)據(jù)源元數(shù)據(jù)和數(shù)據(jù)訪問方式的管理對(duì)象,并通過外部Schema映射外部數(shù)據(jù)源的Database或Schema,實(shí)現(xiàn)直接訪問外部數(shù)據(jù)源Database或Schema范圍內(nèi)的全部表的能力。

    image

    • 網(wǎng)絡(luò)連接

      詳情請(qǐng)參見訪問VPC方案(專線直連)中Networklink的相關(guān)說明。MaxCompute可以通過網(wǎng)絡(luò)連接訪問VPC網(wǎng)絡(luò)中的數(shù)據(jù)源,例如EMR實(shí)例,RDS實(shí)例(準(zhǔn)備中)。DLF(Data Lake Formation,數(shù)據(jù)湖構(gòu)建)、OSS(對(duì)象存儲(chǔ))和Hologres位于云產(chǎn)品互聯(lián)網(wǎng)絡(luò)中,MaxCompute無需設(shè)置網(wǎng)絡(luò)連接對(duì)象Networklink即可直接訪問其中的數(shù)據(jù)。

    • 外部數(shù)據(jù)源(Foreign Server)

      包含了元數(shù)據(jù)和數(shù)據(jù)訪問的信息,同時(shí)包含訪問數(shù)據(jù)源系統(tǒng)的身份認(rèn)證信息,位置信息和連接協(xié)議說明等。外部數(shù)據(jù)源是租戶面的管理對(duì)象,由租戶管理員定義。

      在開啟了項(xiàng)目級(jí)別租戶資源訪問控制功能模式下,由租戶管理員將其掛載給使用外部數(shù)據(jù)源的項(xiàng)目,項(xiàng)目管理員再通過Policy將外部數(shù)據(jù)源的使用權(quán)限授予項(xiàng)目內(nèi)部的用戶。

    • 外部Schema(External Schema)

      外部Schema是MaxCompute數(shù)倉項(xiàng)目中一種特殊Schema,如上圖所示,可以映射數(shù)據(jù)源的Database或Schema,并可直接訪問對(duì)端Database或Schema范圍內(nèi)的表和數(shù)據(jù),這種通過外部Schema映射至對(duì)端數(shù)據(jù)庫的表被稱為聯(lián)邦外表。

      聯(lián)邦外表在MaxCompute內(nèi)不存儲(chǔ)元數(shù)據(jù)信息,而是由MaxCompute通過外部數(shù)據(jù)源對(duì)象中的元數(shù)據(jù)服務(wù)實(shí)時(shí)獲取。用戶查詢時(shí)無需在數(shù)倉中通過DDL語句創(chuàng)建外部表,可直接以項(xiàng)目名稱和外部Schema名稱作為命名空間,引用數(shù)據(jù)源原表名的方式進(jìn)行操作。數(shù)據(jù)源表結(jié)構(gòu)或數(shù)據(jù)發(fā)生變化時(shí),聯(lián)邦外表能夠即時(shí)反映數(shù)據(jù)源表的最新狀態(tài)。外部Schema映射的數(shù)據(jù)源層次由外部數(shù)據(jù)源定義的層次與數(shù)據(jù)源中表層次之間的系統(tǒng)層次決定。外部數(shù)據(jù)源定義的層次由認(rèn)證身份能訪問的數(shù)據(jù)源層次決定。

    • 外部項(xiàng)目(External Project)

      在湖倉一體1.0中,外部項(xiàng)目是兩層模式,和外部Schema一樣映射一個(gè)數(shù)據(jù)源的Database或Schema,且需要依賴一個(gè)數(shù)倉項(xiàng)目才可以讀取外部數(shù)據(jù)并計(jì)算。但是外部項(xiàng)目層級(jí)較高,映射數(shù)據(jù)源Database或Schema會(huì)導(dǎo)致外部項(xiàng)目數(shù)量過多,且無法和三層模式的數(shù)倉項(xiàng)目共用,MaxCompute會(huì)逐步收斂湖倉一體1.0的外部項(xiàng)目,存量用戶可以遷移到外部Schema上。

      在湖倉一體2.0中,用戶可以通過外部Schema承接湖倉一體1.0中外部項(xiàng)目的全部能力,外部項(xiàng)目直接映射對(duì)端三層模式數(shù)據(jù)源Catalog或Database,并直接可見DLF Catalog之下的Database,或Hologres Database之下的Schema ,再以聯(lián)邦外表的方式訪問數(shù)據(jù)源表。湖倉一體2.0的外部項(xiàng)目會(huì)稍后推出,請(qǐng)關(guān)注官網(wǎng)文檔說明。

    數(shù)據(jù)源類型

    外部數(shù)據(jù)源層次

    外部Schema映射層次

    湖倉一體2.0外部項(xiàng)目(稍后推出)映射層次

    湖倉一體1.0外部項(xiàng)目(下線中)映射層次

    認(rèn)證方式

    DLF+OSS

    Region級(jí)別DLF服務(wù)和OSS服務(wù)

    DLF的Catalog.Database

    DLF的Catalog

    DLF的Catalog.Database

    RAMRole

    Hive+HDFS

    EMR實(shí)例

    Hive的Database

    不支持

    Hive的Database

    免認(rèn)證方式

    Hologres

    Hologres實(shí)例的Database

    Schema

    Database

    不支持

    RAMRole

    說明

    不同數(shù)據(jù)源的認(rèn)證方式有多種類型,MaxCompute會(huì)在后續(xù)版本逐步提供多種認(rèn)證方式,例如訪問Hologres使用當(dāng)前用戶身份方式、訪問Hive使用Kerberos認(rèn)證方式等。

使用限制

  • 僅華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華南1(深圳)、中國香港、新加坡和德國(法蘭克福)地域支持構(gòu)建湖倉一體2.0能力。

  • MaxCompute需要與DLF、OSS部署在同一地域。

  • 外部Schema操作需要在內(nèi)部項(xiàng)目中執(zhí)行,因此要求內(nèi)部項(xiàng)目必須已啟用三層模型,您可在控制臺(tái)界面進(jìn)行操作,詳情請(qǐng)參見功能開啟。

注意事項(xiàng)

  • 您需要為MaxCompute項(xiàng)目(即將創(chuàng)建External Schema的目標(biāo)項(xiàng)目)開啟項(xiàng)目級(jí)元數(shù)據(jù)支持的Schema開關(guān),詳情請(qǐng)參見項(xiàng)目級(jí)元數(shù)據(jù)支持的Schema開關(guān)。image

  • 您需要在執(zhí)行Schema操作或查詢External Schema的數(shù)據(jù)前,開啟SQL語法支持的Schema開關(guān),詳情請(qǐng)參見SQL語法支持的Schema開關(guān)

  • 執(zhí)行SHOW tables IN <external_schema_name>命令(訪問數(shù)據(jù)源系統(tǒng))時(shí):

    • 若在DataWorks數(shù)據(jù)開發(fā)IDE中執(zhí)行,系統(tǒng)顯示無法解析Schema時(shí),除以上兩點(diǎn)之外,您還需要保證DataWorks資源組集成的MaxCompute CMD為V0.46.8及以上版本,若CMD版本低于V0.46.8,請(qǐng)?zhí)峤还温?lián)系MaxCompute技術(shù)支持人員進(jìn)行升級(jí)。

    • 若在MaxCompute客戶端(odpscmd)中執(zhí)行,也需要將其升級(jí)至V0.46.8及以上版本。

    說明

    您可以執(zhí)行SHOW VERSION;命令查看當(dāng)前版本。

  • 創(chuàng)建的外部Schema支持查看Schema列表、查看Schema信息及刪除Schema,其命令及使用方法與內(nèi)部Schema相同。詳情請(qǐng)參見Schema操作。

查看創(chuàng)建完成的外部數(shù)據(jù)源

在外部數(shù)據(jù)源管理列表中可以查看到已創(chuàng)建的外部表和數(shù)據(jù)源,參數(shù)信息如下:

參數(shù)名

描述

數(shù)據(jù)源名稱

外部數(shù)據(jù)源的名稱。

類型

外部數(shù)據(jù)源類型。目前支持DLF+OSS、Hive+HDFS和Hologres三種類型。

網(wǎng)絡(luò)連接

使用了網(wǎng)絡(luò)連接的外部數(shù)據(jù)源會(huì)顯示網(wǎng)絡(luò)連接名稱。目前只有Hive+HDFS類型支持使用網(wǎng)絡(luò)連接。

Owner賬號(hào)

創(chuàng)建外部數(shù)據(jù)源的賬號(hào)信息,外部Schema等會(huì)依賴外部數(shù)據(jù)源訪問源端系統(tǒng),訪問的權(quán)限來源于外部數(shù)據(jù)源中創(chuàng)建者指定的身份信息。

  • 開啟項(xiàng)目級(jí)別租戶資源訪問控制:創(chuàng)建者可以通過設(shè)置外部數(shù)據(jù)源與項(xiàng)目的掛載關(guān)系,指定哪些項(xiàng)目可以使用其創(chuàng)建的外部數(shù)據(jù)源,再由項(xiàng)目管理員通過Policy對(duì)項(xiàng)目內(nèi)部的用戶授予使用外部數(shù)據(jù)源的權(quán)限。

  • 未開啟項(xiàng)目級(jí)別租戶資源訪問控制:任何創(chuàng)建了外部項(xiàng)目或外部Schema的用戶,都可以使用此外部數(shù)據(jù)源,訪問外部系統(tǒng)時(shí)同樣需要基于外部數(shù)據(jù)源中創(chuàng)建者指定的RAMRole權(quán)限進(jìn)行訪問。

已掛載項(xiàng)目

外部數(shù)據(jù)源掛載的項(xiàng)目數(shù)量。

創(chuàng)建時(shí)間

創(chuàng)建外部數(shù)據(jù)源的時(shí)間。

更新時(shí)間

上一次修改并保存外部數(shù)據(jù)源可編輯屬性的時(shí)間。

操作-掛載項(xiàng)目

創(chuàng)建者設(shè)置外部數(shù)據(jù)源與項(xiàng)目的掛載關(guān)系。

  • 當(dāng)某項(xiàng)目開啟項(xiàng)目級(jí)別租戶資源訪問控制時(shí),如果租戶管理員沒有配置此項(xiàng)目與引用的外部數(shù)據(jù)源的掛載關(guān)系,則項(xiàng)目無法基于此外部數(shù)據(jù)源訪問外部系統(tǒng)。

  • 如果項(xiàng)目沒有開啟項(xiàng)目級(jí)別租戶資源訪問控制,則不會(huì)檢查項(xiàng)目與引用的外部數(shù)據(jù)源的掛載關(guān)系。

操作-詳情

查看外部數(shù)據(jù)源屬性。

操作-編輯

修改外部數(shù)據(jù)源屬性。

重要

修改了權(quán)限等信息,可能會(huì)造成項(xiàng)目內(nèi)配置的授權(quán)關(guān)系因?yàn)榭梢妼?duì)象范圍變化而失效。

操作-刪除

刪除當(dāng)前外部數(shù)據(jù)源。

重要

刪除外部數(shù)據(jù)源后,依賴此外部數(shù)據(jù)源的任務(wù)都會(huì)失去訪問外部系統(tǒng)的權(quán)限,且一并刪除此外部數(shù)據(jù)源與所有項(xiàng)目之間的已配置的掛載關(guān)系。

創(chuàng)建并使用DLF+OSS湖倉一體

DLF+OSS數(shù)據(jù)源是以O(shè)SS作為數(shù)據(jù)湖存儲(chǔ)服務(wù),以DLF為湖上元數(shù)據(jù)管理服務(wù)的常用數(shù)據(jù)湖形態(tài)。MaxCompute支持創(chuàng)建此類型的外部數(shù)據(jù)源。通過MaxCompute與DLF和OSS的組合,可以實(shí)現(xiàn)數(shù)據(jù)倉庫和數(shù)據(jù)湖的一體化,提供更加靈活和高效的數(shù)據(jù)管理和處理能力。

重要

如您當(dāng)前賬號(hào)沒有開啟過租戶級(jí)Schema語法開關(guān),需要在下文SQL前增加SET odps.namespace.schema=true;語句,以便后續(xù)執(zhí)行Schema相關(guān)語句。

步驟一:授權(quán)

當(dāng)您通過MaxCompute與DLF和OSS構(gòu)建湖倉一體時(shí),授權(quán)方法如下。MaxCompute項(xiàng)目的賬號(hào)未經(jīng)授權(quán)無法訪問DLF,您需要執(zhí)行授權(quán)操作。授權(quán)方式包含以下兩種:

  • 一鍵授權(quán):當(dāng)創(chuàng)建MaxCompute項(xiàng)目的賬號(hào)和部署DLF的賬號(hào)相同時(shí)。推薦您直接單擊授權(quán)DLF進(jìn)行一鍵授權(quán)。

  • 自定義授權(quán):當(dāng)創(chuàng)建MaxCompute項(xiàng)目的賬號(hào)和部署DLF的賬號(hào)相同或不相同,都可以使用該方式。詳情請(qǐng)參見自定義授權(quán)DLF。

步驟二:創(chuàng)建DLF+OSS外部數(shù)據(jù)源

  1. 登錄MaxCompute控制臺(tái),在左上角選擇地域。

  2. 在左側(cè)導(dǎo)航欄,選擇租戶管理>外部數(shù)據(jù)源。

  3. 外部數(shù)據(jù)源頁面,單擊創(chuàng)建外部數(shù)據(jù)源。

  4. 新增外部數(shù)據(jù)源對(duì)話框,根據(jù)界面提示配置相關(guān)參數(shù)。參數(shù)說明如下:

    參數(shù)

    說明

    外部數(shù)據(jù)源類型

    選擇DLF+OSS

    外部數(shù)據(jù)源名稱

    可自定義命名。命名規(guī)則如下:

    • 以字母開頭,且只能包含小寫字母、下劃線和數(shù)字。

    • 不能超過128個(gè)字符。

    外部數(shù)據(jù)源描述

    根據(jù)需要填寫。

    地域

    默認(rèn)為當(dāng)前地域。

    DLF Endpoint

    默認(rèn)為當(dāng)前地域的DLF Endpoint。

    OSS Endpoint

    默認(rèn)為當(dāng)前地域的OSS Endpoint。

    RoleARN

    RAM角色的ARN信息。此角色需要包含能夠同時(shí)訪問DLF和OSS服務(wù)的權(quán)限。

    您可以登錄RAM訪問控制臺(tái),在左側(cè)導(dǎo)航欄選擇身份管理>角色,單擊對(duì)應(yīng)的RAM角色名稱,即可在基本信息區(qū)域獲取ARN信息。

    示例:acs:ram::124****:role/aliyunodpsdefaultrole。

    外部數(shù)據(jù)源補(bǔ)充屬性

    為外部數(shù)據(jù)源特殊聲明的屬性,指定后,使用此外部數(shù)據(jù)源的任務(wù)可以按照參數(shù)定義的行為訪問源系統(tǒng)。

    說明

    支持的具體參數(shù)請(qǐng)關(guān)注后續(xù)官網(wǎng)文檔更新說明,具體參數(shù)將隨產(chǎn)品能力演進(jìn)逐步放開。

  5. 單擊確定,完成外部數(shù)據(jù)源的創(chuàng)建。

步驟三:創(chuàng)建外部Schema

引用了DLF+OSS類型外部數(shù)據(jù)源的外部Schema創(chuàng)建命令如下:

CREATE EXTERNAL SCHEMA IF NOT EXISTS <external_schema_name>
with <dlfoss_foreign_server_name>
ON '<dlf_calaog_id>.<database_name>';

參數(shù)說明如下:

  • external_schema_name:外部Schema名稱。

  • dlfoss_foreign_server_name:上述已創(chuàng)建的外部數(shù)據(jù)源名稱,外部Schema歸屬的項(xiàng)目必須與外部數(shù)據(jù)源處于同一地域。

  • dlf_calaog_id:DLF數(shù)據(jù)目錄ID。數(shù)據(jù)目錄創(chuàng)建方法請(qǐng)參見新建數(shù)據(jù)目錄(Catalog)。

  • database_name:DLF中指定數(shù)據(jù)目錄下的數(shù)據(jù)庫名稱。詳情請(qǐng)參見創(chuàng)建數(shù)據(jù)庫。

步驟四:使用SQL訪問數(shù)據(jù)源系統(tǒng)

  • 命令格式:列出DLF和OSS的表名稱。

    • 方式1:

      SHOW tables IN <external_schema_name>; --external_schema_name為外部Schema名稱。
    • 方式2:

      USE SCHEMA <external_schema_name>; --external_schema_name為外部Schema名稱。
      SHOW tables;
  • 使用示例:

    1. 查詢名稱為es_dlf的外部Schema下的所有表名。

      USE SCHEMA es_dlf;
      SHOW TABLES;

      返回結(jié)果示例:

      ALIYUN$xxx@test.aliyunid.com:hellocsv
      ALIYUN$xxx@test.aliyunid.com:t1
      ALIYUN$xxx@test.aliyunid.com:t2
      ALIYUN$xxx@test.aliyunid.com:t3
    2. 查詢lakehouse47_3項(xiàng)目中es_dlfSchema的hellocsv表數(shù)據(jù)。

      SELECT * FROM lakehouse47_3.es_dlf.hellocsv;

      返回結(jié)果示例:

      +------------+------------+------------+------------+
      | col1       | col2       | col3       | col4       |
      +------------+------------+------------+------------+
      | 1          | hello      | test       | world      |
      +------------+------------+------------+------------+
    3. 從數(shù)據(jù)源將聯(lián)邦外表hellocsv的數(shù)據(jù)復(fù)制入數(shù)倉。

      -- 將聯(lián)邦外表的數(shù)據(jù)復(fù)制到數(shù)倉中
      CREATE TABLE hellocsv_copy AS SELECT * FROM lakehouse47_3.es_dlf.hellocsv;
      
      -- 查詢數(shù)倉中已復(fù)制的表數(shù)據(jù)
      SELECT * FROM hellocsv_copy;

      返回結(jié)果示例:

      +------------+------------+------------+------------+
      | col1       | col2       | col3       | col4       |
      +------------+------------+------------+------------+
      | 1          | hello      | test       | world      |
      +------------+------------+------------+------------+

創(chuàng)建并使用Hive+HDFS聯(lián)邦

Hive是常見的開源大數(shù)據(jù)的數(shù)據(jù)倉庫解決方案,元數(shù)據(jù)大多存儲(chǔ)在HMS中,數(shù)據(jù)大多存儲(chǔ)在HDFS上。MaxCompute支持創(chuàng)建此類型的外部數(shù)據(jù)源。通過MaxCompute與Hive的聯(lián)邦,可以實(shí)現(xiàn)數(shù)據(jù)倉庫訪問、匯聚開源大數(shù)據(jù)系統(tǒng)數(shù)據(jù)的能力。

重要
  • Hive+HDFS模式的SQL后付費(fèi)聯(lián)邦計(jì)算任務(wù)在公測(cè)期間暫不收費(fèi)。

  • 如您當(dāng)前賬號(hào)沒有開啟過租戶級(jí)Schema語法開關(guān),需要在SQL前增加SET odps.namespace.schema=true;語句,以便后續(xù)執(zhí)行Schema相關(guān)語句。

步驟一:創(chuàng)建Hive+HDFS外部數(shù)據(jù)源

  1. 登錄MaxCompute控制臺(tái),在左上角選擇地域。

  2. 在左側(cè)導(dǎo)航欄,選擇租戶管理>外部數(shù)據(jù)源。

  3. 外部數(shù)據(jù)源頁面,單擊創(chuàng)建外部數(shù)據(jù)源

  4. 新增外部數(shù)據(jù)源對(duì)話框,根據(jù)界面提示配置相關(guān)參數(shù)。參數(shù)說明如下:

    參數(shù)

    說明

    外部數(shù)據(jù)源類型

    選擇Hive+HDFS

    外部數(shù)據(jù)源名稱

    可自定義命名。命名規(guī)則如下:

    • 以字母開頭,且只能包含小寫字母、下劃線和數(shù)字。

    • 不能超過128個(gè)字符。

    外部數(shù)據(jù)源描述

    根據(jù)需要填寫。

    網(wǎng)絡(luò)連接對(duì)象

    網(wǎng)絡(luò)連接名稱,選擇或創(chuàng)建MaxCompute到阿里云E-MapReduce或Hadoop VPC網(wǎng)絡(luò)的連接。參數(shù)詳情請(qǐng)參見訪問VPC方案(專線直連)中的創(chuàng)建MaxCompute與目標(biāo)VPC網(wǎng)絡(luò)間的網(wǎng)絡(luò)連接步驟。

    說明
    • 網(wǎng)絡(luò)連接基本概念請(qǐng)參見Networklink。

    • VPC必須與MaxCompute外部數(shù)據(jù)源及外部數(shù)據(jù)源掛載的項(xiàng)目處于同一地域。

    集群名稱

    在Hadoop集群高可用環(huán)境下用于指代NameNode的名稱。在構(gòu)建Hadoop集群場(chǎng)景下,您可以通過hdfs-site.xml文件中的dfs.nameservices配置參數(shù)獲取集群名稱。

    NameNode 地址

    目標(biāo)Hadoop集群的Active和Standby NameNode服務(wù)地址和端口號(hào)(端口號(hào)通常是8020)。您可聯(lián)系Hadoop集群管理員獲取。

    HMS 服務(wù)地址

    目標(biāo)Hadoop集群的Active和Standby NameNode的Hive元數(shù)據(jù)服務(wù)地址和端口號(hào)(端口號(hào)通常是9083)。您可聯(lián)系Hadoop集群管理員獲取。

    認(rèn)證類型

    暫時(shí)僅支持無認(rèn)證方式。

    外部數(shù)據(jù)源補(bǔ)充屬性

    為外部數(shù)據(jù)源特殊聲明的屬性,指定后,使用此外部數(shù)據(jù)源的任務(wù)可以按照參數(shù)定義的行為訪問源系統(tǒng)。

    說明

    支持的具體參數(shù)請(qǐng)關(guān)注后續(xù)官網(wǎng)文檔更新說明,具體參數(shù)將隨產(chǎn)品能力演進(jìn)逐步放開。

  5. 單擊確定,完成外部數(shù)據(jù)源的創(chuàng)建。

步驟二:創(chuàng)建外部Schema

外部Schema是項(xiàng)目內(nèi)的對(duì)象,可以使用SQL進(jìn)行操作。若您當(dāng)前賬號(hào)沒有打開過租戶級(jí)別Schema語法開關(guān),需要在SQL前增加SET odps.namespace.schema=true;語句,以方便后續(xù)執(zhí)行Schema相關(guān)命令。

引用了Hive+HDFS類型的外部數(shù)據(jù)源的外部Schema創(chuàng)建命令如下:

CREATE EXTERNAL SCHEMA IF NOT EXISTS <external_schema_name>
WITH  <hive_foreign_server_name>
ON '<database_name>' ;

參數(shù)說明如下:

  • external_schema_name:外部Schema名稱。

  • hive_foreign_server_name:已創(chuàng)建的外部數(shù)據(jù)源名稱。

  • database_name:Hive數(shù)據(jù)庫名稱。

步驟三:使用SQL訪問數(shù)據(jù)源系統(tǒng)

  • 命令格式:列出Hive的表名稱。

    • 方式1:

      SHOW tables IN <external_schema_name>; --external_schema_name為外部Schema名稱。
    • 方式2:

      USE SCHEMA <external_schema_name>; --external_schema_name為外部Schema名稱。
      SHOW tables;
  • 使用示例:

    1. 查詢名稱為es_hive3的外部Schema下的所有表名。

      USE SCHEMA es_hive3;
      SHOW TABLES;

      返回結(jié)果示例:

      ALIYUN$xxx@test.aliyunid.com:t1
    2. 查詢lakehouse47_3項(xiàng)目中es_hive3Schema的t1表數(shù)據(jù)。

      SELECT * FROM lakehouse47_3.es_hive3.t1;

      返回結(jié)果示例:

      +------------+
      | id         |
      +------------+
      | 1          |
      +------------+
    3. 從數(shù)據(jù)源將聯(lián)邦外表hellocsv的數(shù)據(jù)復(fù)制入數(shù)倉。

      -- 將聯(lián)邦外表的數(shù)據(jù)復(fù)制到數(shù)倉中
      CREATE TABLE t1_copy AS SELECT * FROM lakehouse47_3.es_hive3.t1;
      
      -- 查詢數(shù)倉中已復(fù)制的表數(shù)據(jù)
      SELECT * FROM t1_copy;

      返回結(jié)果示例:

      +------------+
      | id         |
      +------------+
      | 1          |
      +------------+

創(chuàng)建并使用Hologres聯(lián)邦

Hologres是一站式實(shí)時(shí)數(shù)據(jù)倉庫引擎,支持海量數(shù)據(jù)實(shí)時(shí)寫入、實(shí)時(shí)更新、實(shí)時(shí)分析,支持標(biāo)準(zhǔn)SQL(兼容PostgreSQL協(xié)議),支持PB級(jí)數(shù)據(jù)多維分析(OLAP)與即席分析(Ad Hoc),支持高并發(fā)低延遲的在線數(shù)據(jù)服務(wù)(Serving)。Hologres與MaxCompute深度融合,Hologres可以支持MaxCompute數(shù)倉上的OLAP模型的創(chuàng)建、分析和查詢。MaxCompute支持創(chuàng)建Hologres外部數(shù)據(jù)源,通過與Hologres的聯(lián)邦,可以實(shí)現(xiàn)以下場(chǎng)景。

  • 超大規(guī)模數(shù)據(jù)倉庫讀取實(shí)時(shí)數(shù)倉的數(shù)據(jù)并歸檔。

  • 讀取維度數(shù)據(jù)或數(shù)據(jù)集市模型數(shù)據(jù),與ODS、DWD、DWS層事實(shí)表關(guān)聯(lián)計(jì)算。

  • 讀取OLAP模型數(shù)據(jù)進(jìn)行高性能低成本離線計(jì)算,并將模型結(jié)果通過Hologres外部表或遠(yuǎn)端函數(shù)調(diào)用等方式返回給實(shí)時(shí)數(shù)倉進(jìn)行分析。

重要

如您當(dāng)前賬號(hào)沒有開啟過租戶級(jí)Schema語法開關(guān),需要在下文SQL前增加SET odps.namespace.schema=true;語句,以便后續(xù)執(zhí)行Schema相關(guān)語句。

步驟一:創(chuàng)建Hologres外部數(shù)據(jù)源

  1. 登錄MaxCompute控制臺(tái),在左上角選擇地域。

  2. 在左側(cè)導(dǎo)航欄,選擇租戶管理>外部數(shù)據(jù)源。

  3. 外部數(shù)據(jù)源頁面,單擊創(chuàng)建外部數(shù)據(jù)源。

  4. 新增外部數(shù)據(jù)源對(duì)話框,根據(jù)界面提示配置相關(guān)參數(shù)。參數(shù)說明如下:

    參數(shù)

    說明

    外部數(shù)據(jù)源類型

    選擇Hologres

    外部數(shù)據(jù)源名稱

    可自定義命名。命名規(guī)則如下:

    • 以字母開頭,且只能包含小寫字母、下劃線和數(shù)字。

    • 不能超過128個(gè)字符。

    外部數(shù)據(jù)源描述

    根據(jù)需要填寫。

    連接方式

    目前只支持云產(chǎn)品互聯(lián)網(wǎng)絡(luò)連接方式。

    Host

    Hologres實(shí)例的Host信息。

    您可以登錄Hologres管理控制臺(tái),在左側(cè)導(dǎo)航欄選擇實(shí)例列表,并單擊對(duì)應(yīng)的實(shí)例ID,即可在實(shí)例詳情頁面的網(wǎng)絡(luò)信息區(qū)域獲取Host。

    示例:hgpostcn-cn-3m***-cn-shanghai-internal.hologres.aliyuncs.com。

    Port

    Hologres實(shí)例的端口信息。

    您可以登錄Hologres管理控制臺(tái),在左側(cè)導(dǎo)航欄選擇實(shí)例列表,并單擊對(duì)應(yīng)的實(shí)例ID,即可在實(shí)例詳情頁面的網(wǎng)絡(luò)信息區(qū)域獲取端口。端口一般為80。

    DBNAME

    Hologres實(shí)例的數(shù)據(jù)庫名稱。

    認(rèn)證方式

    • RAMRole:使用RAM角色扮演認(rèn)證鑒權(quán)方式,支持跨主賬號(hào)的方式訪問Hologres。聯(lián)邦外表暫時(shí)只支持RAMRole方式。RoleARN填寫示例:acs:ram::uid:role/aliyunodpsholorole。aliyunodpsholorole角色配置及授權(quán),詳情請(qǐng)參見創(chuàng)建Hologres外部表(STS模式)

    • ExecuteWithUserAuth:MaxCompute和Hologres之間的用戶身份互認(rèn)模式,允許MaxCompute和Hologres基于相同的賬號(hào),當(dāng)前用戶以自身的身份可以在兩個(gè)系統(tǒng)中看到有權(quán)訪問的表和數(shù)據(jù),可以直接通過CALL EXEC_EXTERNAL_QUERY函數(shù)執(zhí)行命令,不需要額外設(shè)置認(rèn)證信息。

      重要

      ExecuteWithUserAuth模式暫不支持聯(lián)邦外表使用方式。

    RoleARN

    RAM角色的ARN信息,此角色需要包含能夠訪問Hologres服務(wù)的權(quán)限。認(rèn)證方式選擇RAMRole時(shí)需要填寫該參數(shù)。

    您可以登錄RAM訪問控制臺(tái),在左側(cè)導(dǎo)航欄選擇身份管理>角色,單擊對(duì)應(yīng)的RAM角色名稱,即可在基本信息區(qū)域獲取ARN信息。

    外部數(shù)據(jù)源補(bǔ)充屬性

    為外部數(shù)據(jù)源特殊聲明的屬性,指定后,使用此外部數(shù)據(jù)源的任務(wù)可以按照參數(shù)定義的行為訪問源系統(tǒng)。

    說明

    支持的具體參數(shù)請(qǐng)關(guān)注后續(xù)官網(wǎng)文檔更新說明,具體參數(shù)將隨產(chǎn)品能力演進(jìn)逐步放開。

  5. 單擊確定,完成外部數(shù)據(jù)源的創(chuàng)建。

步驟二:創(chuàng)建外部Schema

外部Schema是項(xiàng)目內(nèi)的對(duì)象,可以使用SQL進(jìn)行操作。若您當(dāng)前賬號(hào)沒有打開過租戶級(jí)別Schema語法開關(guān),需要在SQL前增加SET odps.namespace.schema=true;語句,以方便后續(xù)執(zhí)行Schema相關(guān)命令。

引用了Hologres類型外部數(shù)據(jù)源的外部Schema創(chuàng)建命令如下:

CREATE EXTERNAL SCHEMA IF NOT EXISTS <external_schema_name>
with  <holo_foreign_server_name>
ON '<holoschema_name>' ;

參數(shù)說明如下:

  • external_schema_name:外部Schema名稱。

  • holo_foreign_server_name:已創(chuàng)建的外部數(shù)據(jù)源名稱。

  • holoschema_name:Hologres需要映射的Schema名稱。

步驟三:使用SQL訪問數(shù)據(jù)源系統(tǒng)

  • 命令格式:列出Hologres Schema中的表名稱。

    • 方式1:

      SHOW tables IN <external_schema_name>; --external_schema_name為外部Schema名稱。
    • 方式2:

      USE SCHEMA <external_schema_name>; --external_schema_name為外部Schema名稱。
      SHOW tables;
  • 使用示例:

    1. 查詢名稱為es_holo_rolearn_nonl的外部Schema下的所有表名:

      SET odps.namespace.schema=true;
      USE SCHEMA es_holo_rolearn_nonl;
      SHOW TABLES;

      返回結(jié)果示例:

      ALIYUN$xxx@test.aliyunid.com:mc_holo_external
    2. 查詢lakehouse47_3項(xiàng)目中es_holo_rolearn_nonlSchema的mc_holo_external表數(shù)據(jù)。

      SELECT * FROM lakehouse47_3.es_holo_rolearn_nonl.mc_holo_external;

      返回結(jié)果示例:

      +------------+------------+------------+------------+
      | col1       | col2       | col3       | col4       |
      +------------+------------+------------+------------+
      | 1          | hello      | test       | world      |
      +------------+------------+------------+------------+
    3. 從數(shù)據(jù)源將聯(lián)邦外表hellocsv的數(shù)據(jù)復(fù)制入數(shù)倉。

      -- 將聯(lián)邦外表的數(shù)據(jù)復(fù)制到數(shù)倉中
      CREATE TABLE mc_holo_external_copy AS SELECT * FROM lakehouse47_3.es_holo_rolearn_nonl.mc_holo_external;
      
      -- 查詢數(shù)倉中已復(fù)制的表數(shù)據(jù)
      SELECT * FROM mc_holo_external_copy;

      返回結(jié)果示例:

      +------------+------------+------------+------------+
      | col1       | col2       | col3       | col4       |
      +------------+------------+------------+------------+
      | 1          | hello      | test       | world      |
      +------------+------------+------------+------------+

基于當(dāng)前用戶身份向Hologres提交執(zhí)行命令

MaxCompute支持使用CALL命令,運(yùn)行EXEC_EXTERNAL_QUERY函數(shù),向Hologres側(cè)提交可執(zhí)行的SQL命令。

  • 命令語法

    CALL EXEC_EXTERNAL_QUERY (
      '<holo_ExecuteWithUserAuth_foreign_server_name>',
      r"###(
        <holo_query>)###");
    • holo_ExecuteWithUserAuth_foreign_server_name:即上文中以ExecuteWithUserAuth模式創(chuàng)建的Hologres外部數(shù)據(jù)源名稱。

    • r:表示即將執(zhí)行的命令。

    • holo_query:是在邊界符中填寫的具體Hologres SQL命令。

    說明

    函數(shù)參考C++的Raw String方式,用""()加delimiter的邊界符方式,避免前后邊界符與holo_query中的特殊字符發(fā)生沖突。 delimiter字符串可以修改,注意"[delimiter]( )[delimiter]"一定要前后成對(duì)。邊界符不包括<>,建議的邊界符為"###(<holo_query>)###"。

  • 使用示例

    • 示例1:在MaxCompute中提交一條向Hologres內(nèi)部表public.current_user_test進(jìn)行INSERT OVERWRITE操作的SQL,數(shù)據(jù)來源是Hologres查詢當(dāng)前用戶UID的Query:SELECT current_user;

      1. 在MaxCompute中執(zhí)行如下SQL。

        CALL EXEC_EXTERNAL_QUERY (
          'fs_holo_ExecuteWithUserAuth_nonl_y',
          r"###(
            CALL hg_insert_overwrite(
              'public.current_user_test',
              $$SELECT current_user$$
        );)###");
      2. 在Hologres中查詢內(nèi)部表public.current_user_test的數(shù)據(jù)。

        SELECT * FROM current_user_test;

        返回結(jié)果:返回當(dāng)前MaxCompute側(cè)與Hologres側(cè)相同用戶身份的UID,如1117xxxxxx519

    • 示例2:在MaxCompute中提交一條向Hologres內(nèi)部表public.hologres_parent_insert1,分區(qū)子表是2020,進(jìn)行INSERT OVERWRITE操作的SQL,數(shù)據(jù)來源是Hologres內(nèi)部的一張基于MaxCompute表的外部表:SELECT * FROM mc_external_table WHERE a='2020';

      1. 在MaxCompute中執(zhí)行如下SQL。

        CALL EXEC_EXTERNAL_QUERY (
          'fs_holo_ExecuteWithUserAuth_nonl_y',
          r"###(
            CALL hg_insert_overwrite(
              'public.hologres_parent_insert1',
              '2020',
              $$SELECT * FROM mc_external_table WHERE a='2020'$$
        );)###");
      2. 在Hologres中查詢內(nèi)部表public.hologres_parent_insert1的數(shù)據(jù)。

        -- hologres查表,會(huì)多一條數(shù)據(jù)
        SELECT * FROM hologres_parent_insert1;

        返回結(jié)果:

        a			b	c														d
        2020	1	2024-06-19 10:27:46.201636	a

外部數(shù)據(jù)源的權(quán)限配置

外部數(shù)據(jù)源是MaxCompute租戶面的資源對(duì)象,RAM用戶是否能夠執(zhí)行對(duì)外部數(shù)據(jù)源的操作,取決于租戶管理員在RAM訪問控制臺(tái)權(quán)限管理>權(quán)限策略中對(duì)外部數(shù)據(jù)源配置的權(quán)限,創(chuàng)建權(quán)限策略詳情請(qǐng)參見通過腳本編輯模式創(chuàng)建自定義權(quán)限策略。

示例:使用阿里云賬號(hào)創(chuàng)建一條名為ForeignServerTest的權(quán)限策略,并將其授權(quán)給子賬號(hào)。權(quán)限策略示例如下:

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "odps:CreateForeignServer",
            "Resource": "acs:odps:*:12xxxxxxxx07:foreignservers/*"
        }
    ]
}

增加查詢?nèi)客獠繑?shù)據(jù)源和獲取某個(gè)外部數(shù)據(jù)源信息的權(quán)限:

說明
  • 如果您在創(chuàng)建外部數(shù)據(jù)源(CreateForeignServer)的同時(shí),需要指定NetworkLink,則Resource中需要添加networklink。

  • 如果指定了RAM Role,需要有對(duì)RAM Role的ram:PassRole權(quán)限。

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "odps:CreateForeignServer",
                "odps:GetForeignServer",
                "odps:ListForeignServers"
            ],
            "Resource": "acs:odps:*:12xxxxxxxx07:foreignservers/*"
        }
    ]
}

其他Action說明如下:

Action名稱

描述

CreateForeignServer

創(chuàng)建外部數(shù)據(jù)源。

UpdateForeignServer

更新外部數(shù)據(jù)源。

DeleteForeignServer

刪除外部數(shù)據(jù)源。

GetForeignServer

獲取某個(gè)外部數(shù)據(jù)源信息。

ListForeignServers

查詢?nèi)客獠繑?shù)據(jù)源。

將已創(chuàng)建的Policy授權(quán)給子賬號(hào),即可對(duì)已授權(quán)的外部數(shù)據(jù)源執(zhí)行相應(yīng)操作。

項(xiàng)目級(jí)別租戶資源訪問控制

湖倉一體2.0引入的外部數(shù)據(jù)源是一種租戶粒度的資源,權(quán)限由RAM Policy控制。而用戶在項(xiàng)目中使用歸屬項(xiàng)目的對(duì)象(例如表),權(quán)限由項(xiàng)目管理員控制。對(duì)于租戶對(duì)象是否有權(quán)被項(xiàng)目使用,以及在項(xiàng)目中使用權(quán)限的再分配,有兩種安全管理模式。

  • 若開啟項(xiàng)目級(jí)別租戶資源訪問控制,創(chuàng)建者可以通過設(shè)置外部數(shù)據(jù)源與項(xiàng)目的掛載關(guān)系,指定哪些項(xiàng)目可以使用其創(chuàng)建的外部數(shù)據(jù)源,再由項(xiàng)目管理員通過Policy對(duì)項(xiàng)目內(nèi)部的用戶授予使用外部數(shù)據(jù)源的權(quán)限。

  • 若未開啟項(xiàng)目級(jí)別租戶資源訪問控制,任何創(chuàng)建了外部項(xiàng)目或外部Schema的用戶,都可以使用此外部數(shù)據(jù)源,訪問外部系統(tǒng)時(shí)同樣基于外部數(shù)據(jù)源中創(chuàng)建者指定的RAMRole權(quán)限進(jìn)行訪問。除了湖倉一體2.0引入的外部數(shù)據(jù)源,網(wǎng)絡(luò)連接、自定義鏡像、配額組(Quota)也是租戶粒度的對(duì)象,一起受項(xiàng)目級(jí)別租戶資源訪問控制開關(guān)的控制。

說明

項(xiàng)目級(jí)別租戶資源訪問控制詳情請(qǐng)參見項(xiàng)目級(jí)別租戶資源訪問控制。目前此功能僅提供預(yù)覽,暫不支持開啟檢查。

開啟項(xiàng)目級(jí)別租戶資源訪問控制,使用外部數(shù)據(jù)源和外部Schema訪問聯(lián)邦外表需要執(zhí)行如下操作:

  1. 進(jìn)行租戶對(duì)象與項(xiàng)目的掛載關(guān)系配置,配置方法為點(diǎn)擊租戶對(duì)象,例如外部數(shù)據(jù)源,選擇掛載的項(xiàng)目,確定完成關(guān)系的配置。掛載完成的租戶對(duì)象可以在項(xiàng)目的已掛載租戶對(duì)象列表中查詢到。

  2. 對(duì)于已掛載到項(xiàng)目上的租戶對(duì)象,進(jìn)行Policy配置。配置方法參考Policy權(quán)限控制。

    • 操作步驟

      1. 在MaxCompute控制臺(tái)的工作區(qū)>項(xiàng)目管理頁面,單擊目標(biāo)Project操作列的管理。

      2. 角色權(quán)限頁簽,單擊目標(biāo)角色操作列的編輯角色。

      3. 在編輯角色對(duì)話框中,選擇授權(quán)方式Policy。

      4. Policy授權(quán)腳本框中修改角色Policy。

    • 示例

      以外部數(shù)據(jù)源為例,配置用戶a可以使用外部數(shù)據(jù)源fs_hive的Policy如下:

      {
          "Statement":[
              {
                  "Action":[
                      "odps:Usage"
                  ],
                  "Effect":"Allow",
                  "Resource":[
                      "acs:odps:*:servers/fs_hive"
                  ]
              }
          ],
          "Version":"1"
      }

      當(dāng)用戶具有租戶資源使用權(quán)限后,才可以在開啟項(xiàng)目級(jí)別租戶資源訪問控制模式下,進(jìn)行用戶/角色粒度的租戶資源使用權(quán)限控制。

  3. 項(xiàng)目開啟租戶對(duì)象檢查開關(guān)(即開啟項(xiàng)目級(jí)別租戶資源訪問控制)。

    1. 登錄MaxCompute控制臺(tái),選擇地域。

    2. 在左側(cè)導(dǎo)航欄的工作區(qū)>項(xiàng)目管理頁面,單擊目標(biāo)Project操作列的管理。

    3. 參數(shù)配置頁簽的權(quán)限屬性區(qū)域,單擊編輯。

    4. 打開開啟項(xiàng)目級(jí)別租戶資源訪問控制開關(guān),并單擊提交。

    重要

    開啟后,項(xiàng)目將立即對(duì)正在使用和后續(xù)使用的租戶對(duì)象(包括外部數(shù)據(jù)源、網(wǎng)絡(luò)連接、自定義鏡像、配額組(quota))進(jìn)行使用權(quán)限校驗(yàn)。因此在沒有完全完成租戶對(duì)象與項(xiàng)目的掛載關(guān)系配置,以及Policy授權(quán)之前,請(qǐng)勿輕易打開檢查開關(guān)。權(quán)限缺失可能會(huì)造成依賴權(quán)限的任務(wù)失敗。

外部Schema內(nèi)對(duì)聯(lián)邦外表授權(quán)

當(dāng)外部Schema創(chuàng)建成功后,其表的所有者歸屬于外部Schema的賬號(hào)。如果您需要將外部Schema權(quán)限或表操作權(quán)限授予其他用戶,請(qǐng)執(zhí)行下述操作。

重要
  • 由于MaxCompute在湖倉一體模式下不持久化數(shù)據(jù)源的元數(shù)據(jù),權(quán)限策略依據(jù)數(shù)據(jù)源對(duì)象名稱管理。數(shù)據(jù)源對(duì)象名稱變更會(huì)導(dǎo)致授權(quán)失效,須通過Revoke命令或刪除Policy方式移除授權(quán);未及時(shí)移除可能導(dǎo)致新同名對(duì)象繼承舊策略的權(quán)限定義,允許原用戶獲得外部項(xiàng)目中的數(shù)據(jù)源新同名對(duì)象的非預(yù)期權(quán)限。

  • 開啟Project內(nèi)租戶對(duì)象鑒權(quán)后,創(chuàng)建外部Schema之前需要將當(dāng)前項(xiàng)目掛載在外部數(shù)據(jù)源上,如果沒有提前進(jìn)行掛載操作,會(huì)在創(chuàng)建外部Schema的時(shí)候報(bào)錯(cuò)

假設(shè)創(chuàng)建和管理External Schema的項(xiàng)目名稱為test_lakehouse_project:

操作

所需權(quán)限

示例步驟

創(chuàng)建External Schema

  • Project的CreateSchema權(quán)限。

  • 如果開啟項(xiàng)目級(jí)別租戶資源訪問控制,需要Foreign Server的Usage權(quán)限。

  1. 指定當(dāng)前項(xiàng)目,并授予項(xiàng)目CreateSchema權(quán)限。

    -- 指定當(dāng)前項(xiàng)目
    use test_lakehouse_project;
    
    -- 為RAM用戶授予項(xiàng)目的CreateSchema權(quán)限
    GRANT CreateSchema ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
  2. (可選)如果開啟了項(xiàng)目級(jí)別租戶資源訪問控制,且已經(jīng)完成外部數(shù)據(jù)源與當(dāng)前項(xiàng)目的掛載配置,在項(xiàng)目內(nèi)對(duì)用戶的授權(quán)如下:

    -- 為當(dāng)前項(xiàng)目空間增加RAM賬號(hào)體系
    ADD accountprovider ram;
    
    -- 添加ram用戶
    ADD USER `RAM$xxx@test.aliyunid.com:test_user`;
    
    -- 創(chuàng)建項(xiàng)目角色
    CREATE role test_lakhouse_role;
    
    -- 為項(xiàng)目角色添加policy,允許使用外部數(shù)據(jù)源
    put policy D:\bin\allow.policy ON role test_lakhouse_role;
    
    -- 將RAM用戶添加到項(xiàng)目角色
    GRANT role test_lakhouse_role TO `RAM$xxx@test.aliyunid.com:test_user`;

    其中allow.policy文件內(nèi)容如下:

    {
      "Version": "1",
      "Statement": [{
        "Action": "odps:Usage",
        "Effect": "Allow",
        "Resource": ["acs:odps:*:servers/fs_hive"]
      }]
    }
  3. 創(chuàng)建External Schema。

    CREATE EXTERNAL SCHEMA IF NOT EXISTS es_hive3
    with fs_hive
    ON 'default' ;

查詢?nèi)縀xternal Schema

Project的CreateInstance和List權(quán)限。

  1. 為RAM用戶授予項(xiàng)目CreateInstance權(quán)限。

    GRANT CreateInstance ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
  2. 授予項(xiàng)目List權(quán)限。

    GRANT List ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
  3. 查看全部Schema。

    SHOW schemas;

查詢某個(gè)External Schema

Schema的Describe權(quán)限。

  1. 為RAM用戶授予某Schema的Describe權(quán)限。

    GRANT DESCRIBE ON SCHEMA es_hive3 TO USER RAM$xxx@test.aliyunid.com:test_user;
  2. 查詢某個(gè)External Schema。

    DESC SCHEMA es_hive3;

修改External Schema屬性

目前暫不支持修改External Schema屬性。

刪除某個(gè)External Schema

Schema的Drop權(quán)限。

  1. 為RAM用戶授予某Schema的Drop權(quán)限。

    GRANT DROP ON SCHEMA es_hive3 TO USER RAM$xxx@test.aliyunid.com:test_user;
  2. 刪除某個(gè)External Schema。

    DROP SCHEMA es_hive3;

使用某個(gè)External Schema

  • 普通三層模式項(xiàng)目不涉及。

  • 當(dāng)項(xiàng)目從兩層模式升級(jí)為三層模式時(shí),需要Schema的Describe權(quán)限。

指定當(dāng)前使用某個(gè)External Schema。

USE SCHEMA es_hive3;

若項(xiàng)目從兩層模式升級(jí)為三層模式,需要對(duì)指定的Schema授予Describe權(quán)限。

GRANT DESCRIBE ON SCHEMA es_hive3 TO USER RAM$xxx@test.aliyunid.com:test_user;

查詢某個(gè)External Schema下的表

Schema內(nèi)表的Select權(quán)限

  1. 為RAM用戶授予某Schema內(nèi)某張表的Select權(quán)限。

    GRANT SELECT ON TABLE es_hive3.t1 TO USER RAM$xxx@test.aliyunid.com:test_user;
  2. 查詢某個(gè)External Schema下的表。

    SELECT * FROM es_hive3.t1;

將某個(gè)External Schema下的表數(shù)據(jù)導(dǎo)入至內(nèi)部表

  • Schema中表的Select權(quán)限。

  • Project的CreateTable、CreateInstance權(quán)限。

  1. 為RAM用戶授予項(xiàng)目CreateTable權(quán)限。

    GRANT CreateTable ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
  2. 授予項(xiàng)目CreateInstance權(quán)限。

    GRANT CreateInstance ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
  3. 授予對(duì)某張表Select權(quán)限。

    GRANT SELECT ON TABLE es_hive3.t1 TO USER RAM$xxx@test.aliyunid.com:test_user;
  4. 導(dǎo)入某個(gè)External Schema中的表數(shù)據(jù)至內(nèi)部表。

    CREATE TABLE default.t1_copy_ram3 AS SELECT * FROM t1;