共用方式為


在 Fabric 中使用客戶數據

Microsoft Fabric OneLake 是整個組織的統一邏輯資料湖,設計成所有分析資料的單一位置。 它會自動隨附每個 Microsoft Fabric 租用戶,並且建置在 Azure Data Lake Storage (ADLS) Gen2 之上。 OneLake 支援任何類型的檔案,無論其為結構化還是非結構化,並以 Delta Parquet 格式儲存所有表格式資料。 它允許跨不同商務群組的共同作業,方法是提供依預設控管的單一資料湖,其具有在租用戶邊界內共同作業的分散式所有權。 租用戶內的工作區可讓組織的不同部分散發所有權和存取原則,而且 OneLake 中的所有資料都可以透過 Lakehouses 和倉庫等資料項目來存取。

就資料存放區而言,OneLake 可作為擷取、變換、即時深入解析和商業智慧視覺效果的一般儲存位置。 它會集中處理不同的 Fabric 服務,並且是 Fabric 中所有工作負載所取用之資料項的儲存體。

如何在 Microsoft Fabric 中讀取和寫入資料

Microsoft Fabric 是一個平台,可儲存和管理客戶資料。 若要在 Fabric 中讀取和寫入資料,您必須使用 Fabric REST API 和適當的驗證方法。

API 權限

某些存取客戶資料的方法需要使用 Fabric 以外的其他服務,例如 Azure 儲存體或 Azure SQL 資料庫。 例如,在 Microsoft Fabric 開發人員套件範例中,API 權限 Azure 儲存體 user_impersonation 會與 Power BI 服務 Lakehouse.Read.All 權限搭配使用,以從 Lakehouses 存取資料。

您可以使用 Azure SQL 資料庫從倉儲項目存取資料表資料。 在此情況下,使用 Azure SQL 資料庫 user_impersonation 設定您的應用程式,以代表使用者查詢資料庫,並使用 Power BI 服務 Warehouse.Read.All 查詢 Fabric REST API 取得倉儲端點。

請確定您根據開發需求設定 Microsoft Entra ID 應用程式。

驗證

您必須先使用權杖進行驗證,才能開始使用 Fabric REST API 或其他服務,例如 Azure 儲存體和 Azure SQL 資料庫。 此權杖可透過權杖交換程式取得。

Fabric 工作負載開發套件 SDK 提供在工作負載前端中取得存取權杖的方法。 例如,請參閱範例工作負載控制器

此用戶端令牌必須傳遞至工作負載後端,並使用代理流程來交換具有所需範圍的令牌,以存取您所需的資源,例如 OneLake。 例如,若要從 Lakehouse 存取和讀取,用戶必須使用 Azure 儲存體 user_impersonation 權限,授權應用程式代表他們進行 API 呼叫。 然後,在後端中,必須使用委派範圍https://storage.azure.com/user_impersonation取得存取令牌,才能使用 Azure 儲存體。

如果您決定使用 SQL 來存取客戶資料,則必須以範圍 https://database.windows.net//user_impersonation 取得存取權杖,才能使用 Azure SQL 資料庫和 Microsoft.Data.SqlClient 命名空間。 存取權杖必須以寫入方式使用,user_impersonation 前面必須有兩個正斜線,才能由 SQLConnection 類別驗證。 如需權杖驗證的更多範例,請參閱 Microsoft Fabric 開發人員套件範例。

如需如何取得權杖的詳細資訊,請參閱 Microsoft Fabric 工作負載開發 REST API 文件

讀取中繼資料

Fabric REST API 提供存取項目屬性的方式。 例如,查詢取得 Lakehouse API 會為您提供特定 Lakehouse 的中繼資料,包括 OneLake 路徑和 SQL 連接字串等實用屬性。 另一個有用的端點是取得倉儲 API,它會傳回下列資訊:

    {
        Id: Guid
        Type: string
        DisplayName: string
        Description: string
        WorkspaceId: Guid
        Properties {
            ConnectionInfo: string
            CreatedDate: DateTime
            LastUpdatedTime: DateTime
        }
    }

在這裡,"ConnectionInfo" 屬性是倉儲 SQL Server 的完整網域名稱 (FQDN)。 使用此 FQDN,您可以建立 SQL 連線。 如需詳細資訊,請參閱 Microsoft Fabric 中的資料倉儲連線。 如需實作範例,請參閱 Microsoft Fabric 工作負載開發套件

讀取資料

驗證之後,您可以使用 Azure Data Lake Storage REST API 連線到 OneLake,以讀取不同類型的資料。 建議您使用 Delta Lake 通訊協定來讀取資料表。

或者,如果您選擇使用 Azure SQL 資料庫,您可以實作下列程序,從倉儲讀取資料。

  1. 建立授權內容。 如需建立授權內容的範例,請參閱 AuthenticateDataPlaneCall 方法

  2. 使用從前端傳遞的持有人權杖,代表使用者取得具有 Warehouse.Read.All 範圍的權杖。

  3. 使用 Fabric 權杖來呼叫取得倉儲 API。 必需存取連接資訊和倉庫的顯示名稱,這是伺服器的初始目錄。

  4. 代表使用者取得具有 SQL 範圍的權杖。 若要成功建立 SQL 連線,請使用範圍 https://database.windows.net//user_impersonation

  5. 使用 SQL 權杖和連線資訊來開啟 SQL 連線:

    private SqlConnection GetSqlConnection(string token, string databaseFqdn, string initialCatalog)
            {
                var builder = new SqlConnectionStringBuilder();
                builder.DataSource = databaseFqdn; // ConnectionInfo from Get Warehouse API
                builder.InitialCatalog = initialCatalog; //display name of the Warehouse
                builder.ConnectTimeout = 120;
    
                var connection = new SqlConnection();
                connection.AccessToken = token; // SQL token acquired with the Azure SQL Database user_impersonation scope
                connection.ConnectionString = builder.ConnectionString;
                connection.Open();
                return connection;
            }
    
  6. 現在可以查詢此連線以存取來自倉儲的資料。 如需使用 Microsoft.Data.SqlClient 命名空間的詳細資訊,請參閱 Microsoft.Data.SqlClient 命名空間文件

寫入資料

除了使用權杖讀取資料之外,您也可以使用 ADLS API 將資料寫入至資料表,如 Delta Lake 通訊協定所述。

您也可以使用 API 來建立檔案和目錄。

或者,您可以使用其他 Fabric 工作負載將資料寫入平台。 例如,您可以使用 Fabric 的 Lakehouse 工作負載 API,有效率地將一般檔類型載入優化 Delta 資料表。 這可藉由將 POST 要求傳送至資料表 - 載入資料表 API 端點來完成。

SQL 連接也可以用來執行將資料插入資料表的命令。