開始使用統一目錄
預覽
聯合目錄是在公共預覽。參與預覽,請聯係您的磚的代表。
本指南幫助您開始使用統一目錄,磚數據治理的框架。
需求
你必須是一個磚賬戶管理。
必須在你的磚賬戶保費計劃或以上。
在AWS,你必須有能力創建S3 bucket,我的角色,我政策,cross-account信任關係。
您必須至少有一個工作區,您想要使用統一的目錄。看到創建和管理工作區使用帳戶控製台。
在AWS配置存儲桶和我的角色
找到你的磚帳戶ID。
登錄到磚賬戶控製台。
點擊
用戶配置文件。
從彈出,複製帳戶ID價值。
在AWS,創建一個S3 bucket。
這個S3 bucket的默認存儲位置表統一目錄管理。使用專用為每個metastore S3 bucket。記下S3 bucket的路徑,它開始
s3: / /
。重要的
bucket名稱不能包含點符號(
。
)。更多桶命名的指導,請參閱AWS桶命名規則。如果你啟用公裏加密S3 bucket,記下公裏加密密鑰的名稱。
在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 >”角色),“效應”:“允許”}]}
請注意
如果你需要我更具限製性的政策,統一編目,聯係你的磚代表的援助。
創建一個我的角色,使用我您在前麵步驟中創建的政策。
集EC2作為受信任的實體。這是一個占位符,沒有對信任關係的影響。
在角色的許可選項卡,把我剛才創建的政策。
建立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:
登錄到磚賬戶控製台。
點擊
數據。
點擊創建Metastore。
metastore輸入一個名稱。
輸入地區metastore將部署。最佳性能、共同部署工作區metastore和雲存儲位置在同一地區。
進入S3 bucket路徑(可以省略
s3: / /
桶的)和我的角色名稱和角色中創建在AWS配置存儲桶和我的角色。
點擊創建。
的用戶創建一個metastore是其所有者和metastore admin。磚建議你重新分配metastore admin角色。看到從你的國內流離失所者(推薦)同步戶頭級別身份。
當出現提示時,選擇鏈接到metastore工作區。
的用戶創建一個metastore是它的主人。磚建議你重新分配metastore admin角色。看到從你的國內流離失所者(推薦)同步戶頭級別身份。
添加用戶和組
統一目錄metastore可以跨多個數據磚共享工作區。這磚有一致的視圖的用戶和組的所有工作空間,您現在可以創建用戶和組帳戶級別身份。遵循以下步驟創建帳戶級別身份。
請注意
必須創建用戶和組帳戶級別身份才可以訪問統一目錄。
如果你有大量的用戶或組,磚建議你同步用戶和組的身份提供商(IdP)。
手動添加用戶:
登錄到賬戶控製台(需要一個用戶帳戶管理)。
點擊
用戶和組。
添加用戶:
點擊用戶。
點擊添加用戶。
為用戶輸入一個名稱和電子郵件地址。
點擊發送邀請。
添加一個組:
點擊組。
點擊添加組。
輸入一個名稱的組。
點擊確認。
當出現提示時,將用戶添加到組。
首先,創建一個名為數據使用者。在本文的稍後部分中,使用。
創建一個計算資源
表中定義的統一目錄由細粒度訪問控製保護。確保訪問控製執行,統一編目需要計算資源符合安全配置。統一目錄默認情況下是安全的,這意味著非相容的計算資源不能訪問表中統一目錄。
磚提供了兩種計算資源:
創建一個計算資源的類型可以訪問數據統一目錄:
創建一個集群
創建一個集群,可以訪問統一目錄,統一編目的工作區必須啟用。
重要的
當啟用了加州大學在一個工作區,以下功能將不可用在新的共享訪問模式集群創建的UI。磚建議對分配統一目錄metastore工作區需要這些功能共享集群。
集群級和全球init腳本
集群級庫
Python udf
登錄到工作區工作管理。
點擊
計算。
點擊創建集群。
輸入一個名稱為集群。
集磚的運行時版本的來運行時:11.1 (Scala 2.12.14,火花3.3.0)或更高版本。
點擊訪問模式。集單用戶orgydF4y2Ba共享根據使用。
共享集群可以由多個用戶共享,但隻有SQL和Python支持工作負載。
單用戶可以運行工作負載集群在Scala中,R, Python和SQL。所有查詢執行指定用戶的特權。隻有指定的用戶可以使用集群(默認情況下集群的所有者);其他用戶無法連接到集群。磚建議使用單用戶集群調度自動化作業;工作和集群應該有相同的所有者,理想情況下,一個服務主體。單用戶訪問模式不支持動態視圖。
更多的信息特性在每個安全模式下,明白了_。
點擊創建集群。
創建一個SQL倉庫
創建一個可以訪問的SQL倉庫統一編目數據:
登錄到工作區工作管理。
從角色切換,選擇SQL。
點擊創建,然後選擇SQL倉庫。
下高級設置集通道來預覽。
(可選)配置SQL倉庫作為Serverless SQL倉庫(預覽)。
Serverless SQL倉庫在幾秒內啟動,而不是分鍾。有關更多信息,請參見Serverless計算。
自動創建SQL倉庫與正確的安全模式,不需要配置。
創建您的第一個表
在統一目錄,metastores包含目錄包含模式(數據庫),而你總是在一個模式創建一個表。
你可以引用一個表使用三級符號:
<目錄> . <模式> . <表>
這是一個新的metastore包含一個目錄命名主要
和一個空的模式命名默認的
。在這個例子中,您將創建一個表命名部門
在默認的
模式的主要
目錄。
創建一個表,你必須是一個賬戶管理,metastore管理員,或一個用戶創建
在家長模式和許可使用
允許在父目錄和模式。
按照以下步驟手動創建一個表。你也可以導入一個例如筆記本電腦並運行它來創建一個目錄、模式和表,以及管理權限。
筆記本電腦語言,選擇SQL,Python,R,或Scala,這取決於您想要使用的語言。
授予創建表的權限
默認的
模式。創建表,用戶要求
創建
和使用
權限模式除了使用
許可目錄。所有用戶接收使用
上的特權主要
目錄和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數據消費者”)
運行單元。
創建一個新表
部門
。添加一個新的筆記本電池。粘貼在下麵的代碼,它指定表名,它的列,並將五行插入。
創建表主要。默認的。部門(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”,“伯明翰”)),模式=模式)dfInsert。寫。saveAsTable(的名字=“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”)
進口火花。值得一提的。_進口org。apache。火花。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”,“位置”)dfInsert。寫。insertInto(“main.default.department”)
運行單元。
查詢表格。
添加一個新的筆記本電池。粘貼在下麵的代碼,然後運行單元。
選擇*從主要。默認的。部門;
顯示(火花。表(“main.default.department”))
顯示(tableToDF(“main.default.department”))
顯示(火花。表(“main.default.department”))
格蘭特能夠讀取和查詢的表
數據使用者
您在創建組添加用戶和組。添加一個新電池的筆記本和粘貼以下代碼:
格蘭特選擇在主要。默認的。部門來”數據- - - - - -消費者”;
火花。sql(“格蘭特選擇main.default.department數據消費者”)
sql(“格蘭特選擇main.default.department數據消費者”)
火花。sql(“格蘭特選擇main.default.department數據消費者”)
請注意
讀訪問權授予所有帳戶級別用戶而不是
數據使用者
,使用組名賬戶用戶
代替。運行單元。
(可選)將metastore鏈接到額外的工作區
統一目錄的一個關鍵好處是能夠共享一個metastore在多個工作區。然後您可以運行不同類型的工作負載對相同的數據而不需要移動或複製數據在工作區。每個工作區最多可以有一個統一的目錄metastore分配給它。
學習如何將metastore鏈接到額外的工作區,明白了為統一啟用一個工作區目錄。
從你的國內流離失所者(推薦)同步戶頭級別身份
它可以很方便的管理用戶訪問數據磚通過設置配置從第三方身份提供者(IdP),像Okta。完整的說明,請參閱使用SCIM提供用戶和組。
(推薦)所有權轉移的metastore一組
帳戶級別的管理員創建一個metastore是誰最初所有者和metastore admin。我們建議的戶頭級別管理委托這個角色提名一群metastore admin。通過這樣做,任何集團成員自動metastore admin。metastore管理員可以管理metastore內可獲得的所有對象的權限,並且可以創建目錄和外部的位置。metastore管理員也可以改變metastore任何對象的所有權。
metastore admin角色轉移到一組:
登錄到賬戶控製台。
點擊
數據。
單擊metastore打開其屬性的名稱。
下Metastore管理,點擊編輯。
從下拉選擇一組。您可以輸入文本字段搜索選項。
點擊保存。
(可選)安裝統一目錄CLI
統一目錄CLI的一部分磚CLI。使用統一的CLI目錄,請執行以下操作: