Dela via


Läsa in data med hjälp av COPY INTO med tjänstens huvudnamn

Den här artikeln beskriver hur du använder COPY INTO kommandot för att läsa in data från en Azure Data Lake Storage Gen2-container (ADLS Gen2) i ditt Azure-konto till en tabell i Databricks SQL.

Stegen i den här artikeln förutsätter att administratören har konfigurerat ett SQL-lager för att använda tjänstens huvudnamn för Azure Databricks så att du kan komma åt dina källfiler i ADLS Gen2. Om administratören har konfigurerat en extern plats i Unity Catalog med ett lagringsautentiseringsuppgifter, se Ladda in data med COPY INTO med Unity Catalog-volymer eller externa platser i stället. Om administratören gav dig tillfälliga autentiseringsuppgifter (en Blob SAS-token) följer du stegen i Läs in data med COPY INTO med tillfälliga autentiseringsuppgifter i stället.

Databricks rekommenderar att du använder kommandot COPY INTO för inkrementell och massinläsning av data med Databricks SQL.

Kommentar

COPY INTO fungerar bra för datakällor som innehåller tusentals filer. Databricks rekommenderar att du använder Automatisk inläsning för inläsning av miljontals filer, vilket inte stöds i Databricks SQL.

Innan du börjar

Kontrollera att du har följande innan du läser in data i Azure Databricks:

  • Åtkomst till data i ADLS Gen2. Administratören måste först slutföra stegen i Konfigurera dataåtkomst för inmatning så att ditt Databricks SQL-lager kan läsa källfilerna.
  • Ett Databricks SQL-lager.
  • Behörigheten Kan hantera i SQL-lagret.
  • Sökvägen till dina data i en ADLS Gen2-container.
  • Kunskaper om Databricks SQL-användargränssnittet.

Steg 1: Bekräfta åtkomst till data i molnlagring

Gör följande för att bekräfta att du har åtkomst till rätt data i molnobjektlagringen:

  1. I sidofältet klickar du på Skapa > fråga.

  2. I SQL-redigerarens menyfält väljer du ett SQL-lager.

  3. I SQL-redigeraren klistrar du in följande kod:

    select * from csv.<path>
    

    Ersätt <path> med den ADLS Gen2-containersökväg som du fick från administratören. Till exempel abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>.

  4. Klicka på Kör.

Steg 2: Skapa en tabell

Det här steget beskriver hur du skapar en tabell i din Azure Databricks-arbetsyta för att lagra inkommande data.

  1. I SQL-redigeraren klistrar du in följande kod:

    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. Klicka på Kör.

Steg 3: Läsa in data från molnlagring i tabellen

Det här steget beskriver hur du läser in data från en ADLS Gen2-container till tabellen på din Azure Databricks-arbetsyta.

  1. I sidofältet klickar du på Skapa > fråga.

  2. I SQL-redigerarens menyfält väljer du ett SQL-lager och kontrollerar att SQL-lagret körs.

  3. I SQL-redigeraren klistrar du in följande kod. I den här koden ersätter du:

    • <container> med namnet på din ADLS Gen2-container i ditt lagringskonto.
    • <storage-account> med namnet på ditt ADLS Gen2-lagringskonto.
    • <folder> med namnet på den mapp som innehåller dina data.
    • <blob-sas-token>med värdet för blob-SAS-token som du fick från administratören.
    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>;
    

    Kommentar

    FORMAT_OPTIONS skiljer sig åt med FILEFORMAT. I det här fallet header instruerar alternativet Azure Databricks att behandla den första raden i CSV-filen som en rubrik, och inferSchema alternativen instruerar Azure Databricks att automatiskt fastställa datatypen för varje fält i CSV-filen.

  4. Klicka på Kör.

    Kommentar

    Om du klickar på Kör igen läses inga nya data in i tabellen. Det beror på att COPY INTO kommandot endast bearbetar det som anses vara nya data.

Rensa

Du kan rensa de associerade resurserna på arbetsytan om du inte längre vill behålla dem.

Ta bort tabellerna

  1. I sidofältet klickar du på Skapa > fråga.

  2. Välj ett SQL-lager och kontrollera att SQL-lagret körs.

  3. Klistra in följande kod:

    DROP TABLE <catalog-name>.<schema-name>.<table-name>;
    
  4. Klicka på Kör.

  5. Hovra över fliken för den här frågan och klicka sedan på X-ikonen .

Ta bort frågorna i SQL-redigeraren

  1. I sidofältet klickar du på SQL-redigeraren.
  2. Hovra över fliken för varje fråga som du skapade för den här självstudien i SQL-redigerarens menyfält och klicka sedan på X-ikonen .

Ytterligare resurser