開始使用統一目錄

預覽

聯合目錄是在公共預覽。參與預覽,請聯係您的磚的代表。

本指南幫助您開始使用統一目錄,磚數據治理的框架。

需求

在AWS配置存儲桶和我的角色

  1. 找到你的磚帳戶ID。

    1. 登錄到磚賬戶控製台

    2. 點擊用戶配置文件用戶配置文件

    3. 從彈出,複製帳戶ID價值。

  2. 在AWS,創建一個S3 bucket。

    這個S3 bucket的默認存儲位置表統一目錄管理。使用專用為每個metastore S3 bucket。記下S3 bucket的路徑,它開始s3: / /

    重要的

    bucket名稱不能包含點符號()。更多桶命名的指導,請參閱AWS桶命名規則

    如果你啟用公裏加密S3 bucket,記下公裏加密密鑰的名稱。

  3. 在AWS,創建一個相同的AWS帳戶我政策S3 bucket。

    在下麵這個示例中政策,取代以下值:

    • <桶>:S3 bucket名稱前一步。

    • < KMS_KEY >:公裏密鑰進行加密S3 bucket名稱內容,如果啟用了加密。如果加密被禁用,刪除我的公裏部分政策。

    • < AWS_ACCOUNT_ID >:當前AWS帳戶的帳戶ID(不是你的磚賬戶)。

    • < AWS_IAM_ROLE_NAME >:AWS的名字我將在下一個步驟中創建的作用。

    {“版本”:“2012-10-17”,“聲明”:({“行動”:(“s3: GetObject”,“s3: GetObjectVersion”,“s3: propertynames”,“s3: PutObjectAcl”,“s3: DeleteObject”,“s3: ListBucket”,“s3: GetBucketLocation”),“資源”:(“攻擊:aws: s3::: <桶> / *”,“攻擊:aws: s3::: <桶>”),“效應”:“允許”},{“行動”:(“公裏:解密”,“公裏:加密”,公裏:GenerateDataKey *”),“資源”:(“攻擊:aws:公裏:< KMS_KEY >”),“效應”:“允許”},{“行動”:(“sts: AssumeRole”),“資源”:(“攻擊:aws:我::< AWS_ACCOUNT_ID >: / < AWS_IAM_ROLE_NAME >”角色),“效應”:“允許”}]}

    請注意

    如果你需要我更具限製性的政策,統一編目,聯係你的磚代表的援助。

  4. 創建一個我的角色,使用我您在前麵步驟中創建的政策。

    1. EC2作為受信任的實體。這是一個占位符,沒有對信任關係的影響。

    2. 在角色的許可選項卡,把我剛才創建的政策。

    3. 建立cross-account信任關係,以便統一目錄可以假設角色訪問桶中的數據代表磚JSON的用戶通過粘貼以下政策信任關係選項卡。

      • 不要修改這個角色是在主要節,這是一個靜態值,引用一個角色由磚。

      • sts: ExternalId部分,取代< DATABRICKS_ACCOUNT_ID >與你磚的帳戶ID(不是你的AWS帳戶ID)的第一步。

      {“版本”:“2012-10-17”,“聲明”:({“效應”:“允許”,“校長”:{“AWS”:“攻擊:aws:我::414351767826:角色/ unity-catalog-prod-UCMasterRole-14S5ZJVKOTYTL”},“行動”:“sts: AssumeRole”,“條件”:{“StringEquals”:{“sts: ExternalId”:“< DATABRICKS_ACCOUNT_ID >”}}}]}

創建您的第一個metastore並附上一個工作區

metastore是頂層容器中的數據統一目錄。每個metastore公開了一個三層的名稱空間(目錄模式數據可以組織)。

單個metastore可以跨多個數據磚共享工作空間在一個帳戶。每個鏈接的工作區metastore相同的數據視圖,和數據訪問控製可以在工作區管理。磚允許metastore /地區。如果你有一個多區磚部署,您可能希望單獨metastores對於每一個地區,但它是良好的實踐使用少量的metastores除非你組織需要硬隔離界限的數據集。數據不容易加入或跨metastores查詢。

創建一個metastore:

  1. 登錄到磚賬戶控製台

  2. 點擊數據圖標數據

  3. 點擊創建Metastore

    1. metastore輸入一個名稱。

    2. 輸入地區metastore將部署。最佳性能、共同部署工作區metastore和雲存儲位置在同一地區。

    3. 進入S3 bucket路徑(可以省略s3: / /桶的)和我的角色名稱和角色中創建在AWS配置存儲桶和我的角色

  4. 點擊創建

    的用戶創建一個metastore是其所有者和metastore admin。磚建議你重新分配metastore admin角色。看到從你的國內流離失所者(推薦)同步戶頭級別身份

  5. 當出現提示時,選擇鏈接到metastore工作區。

的用戶創建一個metastore是它的主人。磚建議你重新分配metastore admin角色。看到從你的國內流離失所者(推薦)同步戶頭級別身份

添加用戶和組

統一目錄metastore可以跨多個數據磚共享工作區。這磚有一致的視圖的用戶和組的所有工作空間,您現在可以創建用戶和組帳戶級別身份。遵循以下步驟創建帳戶級別身份。

請注意

手動添加用戶:

  1. 登錄到賬戶控製台(需要一個用戶帳戶管理)。

  2. 點擊用戶圖標用戶和組

  3. 添加用戶:

    1. 點擊用戶

    2. 點擊添加用戶

    3. 為用戶輸入一個名稱和電子郵件地址。

    4. 點擊發送邀請

    登錄一個工作區,用戶也必須添加到工作區。創建工作區級別用戶看到管理工作區級別用戶

  4. 添加一個組:

    1. 點擊

    2. 點擊添加組

    3. 輸入一個名稱的組。

    4. 點擊確認

    5. 當出現提示時,將用戶添加到組。

首先,創建一個名為數據使用者。在本文的稍後部分中,使用。

創建一個計算資源

表中定義的統一目錄由細粒度訪問控製保護。確保訪問控製執行,統一編目需要計算資源符合安全配置。統一目錄默認情況下是安全的,這意味著非相容的計算資源不能訪問表中統一目錄。

磚提供了兩種計算資源:

  • 集群,用於工作負載數據科學與工程和磚機器學習persona-based環境。

  • SQL倉庫在磚用於執行查詢的SQL。

創建一個計算資源的類型可以訪問數據統一目錄:

創建一個集群

創建一個集群,可以訪問統一目錄,統一編目的工作區必須啟用。

重要的

當啟用了加州大學在一個工作區,以下功能將不可用在新的共享訪問模式集群創建的UI。磚建議對分配統一目錄metastore工作區需要這些功能共享集群。

  • 集群級和全球init腳本

  • 集群級庫

  • Python udf

  1. 登錄到工作區工作管理。

  2. 點擊計算圖標計算

  3. 點擊創建集群

    1. 輸入一個名稱為集群。

    2. 磚的運行時版本的運行時:11.1 (Scala 2.12.14,火花3.3.0)或更高版本。

  4. 點擊訪問模式。集單用戶orgydF4y2Ba共享根據使用。

    共享集群可以由多個用戶共享,但隻有SQL和Python支持工作負載。

    單用戶可以運行工作負載集群在Scala中,R, Python和SQL。所有查詢執行指定用戶的特權。隻有指定的用戶可以使用集群(默認情況下集群的所有者);其他用戶無法連接到集群。磚建議使用單用戶集群調度自動化作業;工作和集群應該有相同的所有者,理想情況下,一個服務主體。單用戶訪問模式不支持動態視圖。

    更多的信息特性在每個安全模式下,明白了_

  5. 點擊創建集群

創建一個SQL倉庫

創建一個可以訪問的SQL倉庫統一編目數據:

  1. 登錄到工作區工作管理。

  2. 從角色切換,選擇SQL

  3. 點擊創建,然後選擇SQL倉庫

  4. 高級設置通道預覽

  1. (可選)配置SQL倉庫作為Serverless SQL倉庫(預覽)。

    Serverless SQL倉庫在幾秒內啟動,而不是分鍾。有關更多信息,請參見Serverless計算

自動創建SQL倉庫與正確的安全模式,不需要配置。

創建您的第一個表

在統一目錄,metastores包含目錄包含模式(數據庫),而你總是在一個模式創建一個表。

你可以引用一個表使用三級符號:

<目錄> . <模式> . <>

這是一個新的metastore包含一個目錄命名主要和一個空的模式命名默認的。在這個例子中,您將創建一個表命名部門默認的模式的主要目錄。

創建一個表,你必須是一個賬戶管理,metastore管理員,或一個用戶創建在家長模式和許可使用允許在父目錄和模式。

按照以下步驟手動創建一個表。你也可以導入一個例如筆記本電腦並運行它來創建一個目錄、模式和表,以及管理權限。

  1. 創建一個筆記本並將它附加到集群中創建創建一個計算資源

    筆記本電腦語言,選擇SQL,Python,R,或Scala,這取決於您想要使用的語言。

  2. 授予創建表的權限默認的模式。

    創建表,用戶要求創建使用權限模式除了使用許可目錄。所有用戶接收使用上的特權主要目錄和main.default模式創建metastore時。

    賬戶管理員、metastore管理員和所有者的模式main.default可以使用下麵的命令嗎格蘭特創建特權用戶或組:

    格蘭特創建模式<目錄- - - - - -的名字><模式- - - - - -的名字>' <EMAIL_ADDRESS> ';
    火花sql(“格蘭特創建模式<目錄名稱>。<模式名稱>,< EMAIL_ADDRESS >”)
    圖書館(SparkR)sql(“格蘭特創建模式<目錄名稱>。<模式名稱>,< EMAIL_ADDRESS >”)
    火花sql(“格蘭特創建模式<目錄名稱>。<模式名稱>,< EMAIL_ADDRESS >”)

    例如,允許該組織的成員數據使用者創建表的main.default:

    格蘭特創建模式主要默認的數據- - - - - -消費者;
    火花sql(“格蘭特創建模式main.default數據消費者”)
    圖書館(SparkR)sql(“格蘭特創建模式main.default數據消費者”)
    火花sql(“格蘭特創建模式main.default數據消費者”)

    運行單元。

  3. 創建一個新表部門

    添加一個新的筆記本電池。粘貼在下麵的代碼,它指定表名,它的列,並將五行插入。

    創建主要默認的部門(deptcodeINT,deptname字符串,位置字符串);插入主要默認的部門(10,“金融”,“愛丁堡”),(20.,“軟件”,帕丁頓的),(30.,“銷售”,梅德斯通的),(40,“市場營銷”,達靈頓的),(50,“管理”,“伯明翰”);
    pyspark.sql.types進口StructType,StructField,IntegerType,StringType模式=StructType([\StructField(“deptcode”,IntegerType(),真正的),StructField(“deptname”,StringType(),真正的),StructField(“位置”,StringType(),真正的)])火花目錄不知道(的表=“main.default.department”,模式=模式\)dfInsert=火花createDataFrame(數據=((10,“金融”,“愛丁堡”),(20.,“軟件”,“帕丁頓”),(30.,“銷售”,“梅德斯通”),(40,“市場營銷”,“達靈頓”),(50,“ADMIN”,“伯明翰”)),模式=模式)dfInsertsaveAsTable(的名字=“main.default.department”,模式=“添加”)
    圖書館(SparkR)模式=structType(structField(“deptcode”,“整數”,真正的),structField(“deptname”,“字符串”,真正的),structField(“位置”,“字符串”,真正的))df=createDataFrame(數據=列表(),模式=模式)saveAsTable(df=df,的表=“main.default.department”)數據=列表(列表(“deptcode”=10 l,“deptname”=“金融”,“位置”=“愛丁堡”),列表(“deptcode”=20 l,“deptname”=“軟件”,“位置”=“帕丁頓”),列表(“deptcode”=30升,“deptname”=“銷售”,“位置”=“梅德斯通”),列表(“deptcode”=40 l,“deptname”=“市場營銷”,“位置”=“達靈頓”),列表(“deptcode”=50 l,“deptname”=“ADMIN”,“位置”=“伯明翰”))dfInsert=createDataFrame(數據=數據,模式=模式)insertInto(x=dfInsert,的表=“main.default.department”)
    進口火花值得一提的_進口orgapache火花sql類型StructType瓦爾df=火花createDataFrame(java跑龍套ArrayList()(),StructType()添加(“deptcode”,“int”)添加(“deptname”,“字符串”)添加(“位置”,“字符串”))df格式(“δ”)saveAsTable(“main.default.department”)瓦爾dfInsert=Seq((10,“金融”,“愛丁堡”),(20.,“軟件”,“帕丁頓”),(30.,“銷售”,“梅德斯通”),(40,“市場營銷”,“達靈頓”),(50,“ADMIN”,“伯明翰”))。toDF(“deptcode”,“deptname”,“位置”)dfInsertinsertInto(“main.default.department”)

    運行單元。

  4. 查詢表格。

    添加一個新的筆記本電池。粘貼在下麵的代碼,然後運行單元。

    選擇*主要默認的部門;
    顯示(火花(“main.default.department”))
    顯示(tableToDF(“main.default.department”))
    顯示(火花(“main.default.department”))
  5. 格蘭特能夠讀取和查詢的表數據使用者您在創建組添加用戶和組

    添加一個新電池的筆記本和粘貼以下代碼:

    格蘭特選擇主要默認的部門數據- - - - - -消費者;
    火花sql(“格蘭特選擇main.default.department數據消費者”)
    sql(“格蘭特選擇main.default.department數據消費者”)
    火花sql(“格蘭特選擇main.default.department數據消費者”)

    請注意

    讀訪問權授予所有帳戶級別用戶而不是數據使用者,使用組名賬戶用戶代替。

    運行單元。

捷徑:使用筆記本一個示例創建一個目錄,模式和表

您可以使用下麵的示例筆記本創建一個目錄,模式和表,以及管理權限。

創建和管理一個聯合目錄表和SQL

在新標簽頁打開筆記本

與Python創建和管理一個聯合目錄表

在新標簽頁打開筆記本

(可選)安裝統一目錄CLI

統一目錄CLI的一部分磚CLI。使用統一的CLI目錄,請執行以下操作:

  1. 設置CLI

  2. 設置身份驗證

  3. 可選地,創建一個或多個連接配置文件使用CLI。

  4. 學習如何使用磚CLI一般來說。

  5. 開始使用的統一目錄CLI

下一個步驟