訪問共享數據使用三角洲與你共享

三角洲共享安全數據共享是一個開放標準。磚用戶,稱為“數據提供商”,可以使用增量與一個人或一組共享共享數據以外的組織,稱為“數據接收者”。連接器的完整列表和信息如何使用它們,看到三角洲分享文檔。本文展示了數據接收方如何訪問數據共享使用磚從三角洲共享,Apache火花,和熊貓。

磚提供的共享數據不是直接而是由磚上運行的數據提供者。

請注意

通過訪問一個數據提供者的數據作為一個數據接收方共享,數據接收方代表,它已被授權訪問數據共享(s)提供給它的數據提供者和承認,(1)磚沒有責任等這些數據或數據接收方使用共享數據,和(2)磚可能收集的信息數據接收方使用和訪問共享數據(包括識別任何個人或公司使用憑據訪問數據文件與這些信息),可能與適用的數據提供者分享。

下載證書文件

授予您訪問共享數據,數據提供商給你發送一個激活的URL,您可以下載一個憑證文件。本文將展示如何使用憑證文件訪問共享數據。

重要的

你可以下載一個憑證文件隻有一次。如果你再次訪問激活鏈接後你已經下載了證書文件,下載證書文件按鈕被禁用。

  • 不要進一步分享激活鏈接或與任何人分享憑證文件你收到你以外的組織。

  • 如果你失去了激活鏈接在使用它之前,數據提供者聯係。

  1. 點擊激活鏈接與你共享的數據提供者。激活頁麵在瀏覽器中打開。

  2. 點擊下載證書文件

將證書文件存儲在一個安全的位置。如果你需要和別人分享它在你的組織中,磚建議使用密碼管理器。

讀取共享數據

下載證書文件之後,您的代碼使用證書文件數據進行身份驗證提供者的磚賬戶和讀取數據的數據提供者與你共享。訪問將持續下去直到供應商停止與你分享數據。更新實時數據在附近。你可以閱讀和共享數據的副本,但你不能修改源數據。

以下部分展示了如何訪問共享數據使用磚,Apache火花,和熊貓。如果你遇到麻煩訪問共享數據,聯係的數據提供者。

請注意

合作夥伴集成,除非特別指出,第三方提供的,你必須有一個帳戶與適當的提供者使用他們的產品和服務。盡管磚最好保持更新這些內容,我們沒有表示關於集成或合作夥伴集成頁麵上的內容的準確性。接觸到適當的關於集成供應商。

使用磚

按照以下步驟訪問共享數據在一個磚工作區使用筆記本命令。在DBFS存儲憑證文件,然後使用它來驗證數據提供者的磚賬戶和讀取數據的數據提供者與你共享。

在本例中,您創建一個筆記本使用多個單元可以獨立運行。你可以添加筆記本命令序列相同的細胞和運行它們。

  1. 在一個文本編輯器,打開下載的證書文件。

  2. 點擊工作空間的圖標工作空間

  3. 用鼠標右鍵單擊一個文件夾,然後單擊創建>筆記本

    • 輸入一個名稱。

    • 設置默認語言Python的筆記本。這是默認的。

    • 選擇連接到一個集群的筆記本。選擇一個集群運行磚運行時8.4或以上或集群Apache火花連接器庫安裝。關於集群安裝庫的更多信息,請參閱

    • 點擊創建

    筆記本在記事本編輯器中打開。

  4. 使用Python或熊貓訪問共享數據,安裝delta-sharing Python連接器。在筆記本電腦編輯器中,粘貼下麵的命令:

    % sh pip安裝delta-sharing
  5. 在細胞操作菜單細胞的行為在最右邊,點擊運行圖標並選擇運行單元,或者按shift + enter

    delta-sharingPython庫安裝在集群中如果不是已經安裝。

  6. 在記事本編輯器中,單擊下脫字符號,並選擇添加下麵的細胞。在新細胞,粘貼下麵的命令,上傳的內容在DBFS憑證文件到一個文件夾。替換的變量如下:

    • < dbfs-path >:文件夾的路徑你想保存憑證文件

    • < credential-file-contents >:憑證的內容文件。

      證書文件包含JSON定義三個字段:shareCredentialsVersion,端點,bearerToken

      % scala dbutils.fs.put (“< dbfs-path > / config。”、“分享”“< credential-file-contents >”“”)
  7. 在細胞操作菜單細胞的行為在最右邊,點擊運行圖標並選擇運行單元,或者按shift + enter

    證書文件上傳後,您可以刪除這個細胞。所有工作空間用戶可以從DBFS讀取證書文件,和證書文件可用在所有集群DBFS和SQL的端點。刪除單元格,單擊x在細胞操作菜單細胞的行為在最右邊。

  8. 使用Python,分享的表列表。在記事本編輯器中,單擊下脫字符號,並選擇添加下麵的細胞

  9. 在新細胞,粘貼下麵的命令。取代< dbfs-path >與前麵的命令的路徑。

    當代碼運行時,Python讀取證書文件從DBFS集群。DBFS安裝使用保險絲/ dbfs /

    進口delta_sharing客戶端=delta_sharingSharingClient(f“/ dbfs / < dbfs-path > / config.share”)客戶端list_all_tables()
  10. 在細胞操作菜單細胞的行為在最右邊,點擊運行圖標並選擇運行單元,或者按shift + enter

    結果是一個數組表,每個表的元數據。下麵的輸出顯示了兩個表:

    [10]:[表(name = ' example_table,分享=“example_share_0”模式=“違約”),表(name = ' other_example_table,分享=“example_share_0”模式=“違約”))

    如果輸出為空或者不含您期望的表,數據提供者聯係。

  11. 使用Scala,查詢共享表。在記事本編輯器中,單擊下脫字符號,並選擇添加下麵的細胞。在新細胞,粘貼下麵的命令。當代碼運行時,憑證文件讀取DBFS JVM。

    替換變量:

    • < profile_path >:DBFS證書文件的路徑。例如,/ < dbfs-path > / config.share

    • < share_name >的值:分享=為表。

    • < schema_name >的值:模式=為表。

    • < table_name >的值:name =為表。

    % scala spark.read.format (“deltaSharing”) .load (“< profile_path > # < share_name >, < schema_name >。< table_name > ") .limit (10);
  12. 在細胞操作菜單細胞的行為在最右邊,點擊運行圖標並選擇運行單元,或者按shift + enter

    每次加載共享表,你看到新鮮的數據來源。

  13. 使用SQL查詢共享數據,您必須首先創建一個本地表在工作區中從共享表,然後查詢當地表。

    共享數據沒有存儲或在本地緩存表中。每次查詢當地的表,你看共享數據的當前狀態。

    在記事本編輯器中,單擊下脫字符號,並選擇添加下麵的細胞。在新細胞,粘貼下麵的命令。

    替換變量:

    • < local_table_name >:當地的表的名稱。

    • < profile_path >:證書文件的位置。

    • < share_name >的值:分享=為表。

    • < schema_name >的值:模式=為表。

    • < table_name >的值:name =為表。

    %sql下降如果存在table_name;創建<local_table_name>使用deltaSharing位置“< profile_path > # < share_name >, < schema_name >。< table_name > ";選擇*<local_table_name>限製10;
  14. 在細胞操作菜單細胞的行為在最右邊,點擊運行圖標並選擇運行單元,或者按shift + enter

    當您運行該命令時,直接查詢共享數據。作為測試,表查詢並返回第一個10個結果。

如果輸出為空或者不包含您期望的數據,數據提供者聯係。

審計和活動三角洲共享資源的訪問

在你配置審計日誌記錄δ分享節省審計日誌等活動當有人創建,修改,更新或刪除分享或接受者,當收件人訪問一個激活鏈接和下載證書,或者當一個收件人的憑據是旋轉或到期。三角洲分享活動記錄在賬戶級別。

  1. 使審計日誌為您的帳戶。

    重要的

    三角洲分享活動記錄的帳戶。不輸入一個值workspace_ids_filter

    審計日誌交付為每個工作空間在您的帳戶,以及帳戶級別的活動。日誌是交付給你配置的S3 bucket。

  1. δ分享被記錄的事件設置為unityCatalog。的requestParams部分的每個事件包括以下字段,可以共享的數據提供者,幫助他們解決問題。

    • recipient_name:收件人的名稱數據提供者的係統。

    • metastore_id的名稱:metastore數據提供者的係統。

    • sourceIPAddress:IP地址請求源自哪裏。

    例如,下麵的審核事件表明收件人成功上市的股票。在這個例子中,編輯值替換> <修訂

    {“版本”:“2.0”,“auditLevel”:“ACCOUNT_LEVEL”,“時間戳”:1635235341950,“orgId”:“0”,“shardName”:“<編輯>”,“accountId”:“<編輯>”,“sourceIPAddress”:“<編輯>”,“userAgent”:,“sessionId”:,“userIdentity”:,“名”:“unityCatalog”,“actionName”:“deltaSharingListShares”,“requestId”:“ServiceMain-cddd3114b1b40003”,“requestParams”:{“Metastore_id”:“<編輯>”,“選項”:“{}”,“Recipient_name”:“<編輯>”},“響應”:{“statusCode”:200年,“errorMessage”:,“結果”:},“MAX_LOG_MESSAGE_LENGTH”:16384年}

下表列出了三角洲共享審計事件,從接受者的角度數據。

行動

requestParams

deltaSharingListShares

選項:這個請求提供的分頁選項)。

deltaSharingListSchemas

分享:共享的名稱。

選項:分頁選項提供了這個請求。

deltaSharingListTables

分享:共享的名稱)。

選項:這個請求提供的分頁選項)。

deltaSharingListAllTables

分享:共享的名稱。

deltaSharingGetTableVersion

分享:共享的名稱。

模式:模式的名稱。

的名字:表的名稱。

deltaSharingGetTableMetadata

分享:共享的名稱。

模式:模式的名稱。

的名字:表的名稱。

predicateHints:包含在查詢謂詞。

limitHints:最大返回的行數。

以下三角洲分享錯誤記錄,從接受者的角度數據。項目之間<>字符代表占位符文本。

  • 用戶試圖訪問一個共享他們沒有權限訪問。

    DatabricksServiceException: PERMISSION_DENIED:用戶沒有選擇分享< share_name >的
  • 用戶試圖訪問一個共享並不存在。

    DatabricksServiceException:SHARE_DOES_NOT_EXIST:分享<share_name>存在
  • 用戶試圖訪問一個表中不存在。

    DatabricksServiceException:TABLE_DOES_NOT_EXIST:<table_name>存在

可審計的事件和錯誤數據提供者,明白了審計和活動三角洲共享資源的訪問

磚外訪問共享數據

如果你不使用磚,遵循這些指令來訪問共享數據。

使用Apache火花

按照以下步驟訪問共享數據在Apache火花3。x或以上。

  1. 訪問共享數據相關的元數據,如表與你共享列表,安裝delta-sharing Python連接器:

    pip安裝delta-sharing
  2. 安裝Apache火花連接器

  3. 分享的表列表。在接下來的例子中,替換< profile_path >證書文件的位置。

    進口delta_sharing客戶端=delta_sharingSharingClient(f“< profile_path > / config.share”)客戶端list_all_tables()

    結果是一個數組表,每個表的元數據。下麵的輸出顯示了兩個表:

    [10]:[表(name = ' example_table,分享=“example_share_0”模式=“違約”),表(name = ' other_example_table,分享=“example_share_0”模式=“違約”))

    如果輸出為空或者不含您期望的表,數據提供者聯係。

  4. 訪問共享數據在使用Python火花:

    delta_sharingload_as_spark(f“< profile_path > # < share_name >, < schema_name >。< table_name > ")火花格式(“deltaSharing”)\負載(“< profile_path > # < share_name >, < schema_name >。< table_name > ")\限製(10))

    替換的變量如下:

    • < profile_path >:證書文件的位置。

    • < share_name >的值:分享=為表。

    • < schema_name >的值:模式=為表。

    • < table_name >的值:name =為表。

  5. 訪問共享數據在Apache使用Scala火花:

    火花格式(“deltaSharing”)負載(“< profile_path > # < share_name >, < schema_name >。< table_name > ")限製(10)

    替換的變量如下:

    • < profile_path >:證書文件的位置。

    • < share_name >的值:分享=為表。

    • < schema_name >的值:模式=為表。

    • < table_name >的值:name =為表。

如果輸出為空或者不包含您期望的數據,數據提供者聯係。

使用熊貓

按照以下步驟在熊貓0.25.3以上訪問共享數據。

  1. 訪問共享數據相關的元數據,如表與你共享列表,您必須安裝delta-sharing Python連接器:

    pip安裝delta-sharing
  2. 分享的表列表。在接下來的例子中,替換< profile_path >證書文件的位置。

    進口delta_sharing客戶端=delta_sharingSharingClient(f“< profile_path > / config.share”)客戶端list_all_tables()

    如果輸出為空或者不含您期望的表,數據提供者聯係。

  3. 訪問共享數據在熊貓使用Python。在下麵的例子中,替換的變量如下:

    • < profile_path >:證書文件的位置。

    • < share_name >的值:分享=為表。

    • < schema_name >的值:模式=為表。

    • < table_name >的值:name =為表。

    進口delta_sharingdelta_sharingload_as_pandas(f“< profile_path > # < share_name >, < schema_name >。< table_name > ")

如果輸出為空或者不包含您期望的數據,數據提供者聯係。