共用方式為


使用 COPY INTO 搭配服務主體載入資料

本文說明如何使用 COPY INTO 命令,將資料從 Azure 帳戶中的 Azure Data Lake 儲存體 Gen2 (ADLS Gen2) 容器載入 Databricks SQL 中的資料表。

本文中的步驟假設您的系統管理員已將 SQL 倉儲設定為使用 Azure Databricks 服務主體,讓您可以在 ADLS Gen2 中存取來源檔案。 如果您的系統管理員以儲存體認證設定 Unity 目錄外部位置,請參閱 改用 COPY INTO 搭配 Unity 目錄磁片區或外部位置 載入資料。 如果您的系統管理員提供暫存認證(Blob SAS 權杖),請改為遵循使用 COPY INTO 搭配暫存認證 載入資料中的 步驟。

Databricks 建議使用 COPY INTO 命令搭配 Databricks SQL 載入增量和大量資料。

注意

COPY INTO 適用于包含數千個檔案的資料來源。 Databricks 建議您使用 自動載入器 來載入 Databricks SQL 中不支援的數百萬個檔案。

開始之前

將資料載入 Azure Databricks 之前,請確定您有下列專案:

  • 存取 ADLS Gen2 中的資料。 您的系統管理員必須先完成設定 資料存取以擷取 的步驟,讓您的 Databricks SQL 倉儲可以讀取來源檔案。
  • Databricks SQL 倉儲。
  • 可以管理 SQL 倉儲的許可權。
  • ADLS Gen2 容器中資料的路徑。
  • 熟悉 Databricks SQL 使用者介面。

步驟 1:確認雲端儲存體中資料的存取權

若要確認您可以存取雲端物件儲存體中正確的資料,請執行下列動作:

  1. 在提要欄位中,按一下 [ 建立 > 查詢 ]。

  2. 在 SQL 編輯器的功能表列中,選取 SQL 倉儲。

  3. 在 SQL 編輯器中,貼上下列程式碼:

    select * from csv.<path>
    

    將 取代 <path> 為您從系統管理員收到的 ADLS Gen2 容器路徑。例如, abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>

  4. 按一下執行

步驟 2:建立資料表

此步驟說明如何在 Azure Databricks 工作區中建立資料表,以保存傳入的資料。

  1. 在 SQL 編輯器中,貼上下列程式碼:

    CREATE TABLE <catalog_name>.<schema_name>.<table_name> (
      tpep_pickup_datetime  TIMESTAMP,
      tpep_dropoff_datetime TIMESTAMP,
      trip_distance DOUBLE,
      fare_amount DOUBLE,
      pickup_zip INT,
      dropoff_zip INT
    );
    
  2. 按一下執行

步驟 3:將資料從雲端儲存體載入資料表

此步驟說明如何將 ADLS Gen2 容器的資料載入 Azure Databricks 工作區中的資料表。

  1. 在提要欄位中,按一下 [ 建立 > 查詢 ]。

  2. 在 SQL 編輯器的功能表列中,選取 SQL 倉儲,並確定 SQL 倉儲正在執行。

  3. 在 SQL 編輯器中,貼上下列程式碼。 在此程式碼中,取代:

    • <container> 具有儲存體帳戶內 ADLS Gen2 容器的名稱。
    • <storage-account> 使用 ADLS Gen2 儲存體帳戶的名稱。
    • <folder> 包含資料的資料夾名稱。
    • <blob-sas-token>使用您從系統管理員收到的 Blob SAS 權杖
    COPY INTO <catalog-name>.<schema-name>.<table-name>
    FROM 'abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>'
    FILEFORMAT = CSV
    FORMAT_OPTIONS (
      'header' = 'true',
      'inferSchema' = 'true'
    );
    
    SELECT * FROM <catalog-name>.<schema-name>.<table-name>;
    

    注意

    FORMAT_OPTIONSFILEFORMAT 不同。 在此情況下, header 選項會指示 Azure Databricks 將 CSV 檔案的第一個資料列視為標頭,而 inferSchema 選項會指示 Azure Databricks 自動判斷 CSV 檔案中每個欄位的資料類型。

  4. 按一下執行

    注意

    如果您再次按一下 [ 執行 ],則不會將任何新資料載入資料表中。 這是因為 COPY INTO 命令只會處理它視為新資料的內容。

清除

如果您不想再保留資源,則可以清除工作區中的相關聯資源。

刪除資料表

  1. 在提要欄位中,按一下 [ 建立 > 查詢 ]。

  2. 選取 SQL 倉儲,並確定 SQL 倉儲正在執行。

  3. 貼上下列程式碼:

    DROP TABLE <catalog-name>.<schema-name>.<table-name>;
    
  4. 按一下執行

  5. 將滑鼠停留在此查詢的索引標籤上,然後按一下 X 圖示。

刪除 SQL 編輯器中的查詢

  1. 在提要欄位中,按一下 [ SQL 編輯器 ]。
  2. 在 SQL 編輯器的功能表列中,將滑鼠停留在您為此教學課程建立的每個查詢的索引標籤上,然後按一下 X 圖示。

其他資源