Samouczek: Wyodrębnianie, przekształcanie i ładowanie danych przy użyciu Azure DatabricksTutorial: Extract, transform, and load data by using Azure Databricks

W ramach tego samouczka wykonasz operację ETL (wyodrębnianie, przekształcanie i ładowanie danych) przy użyciu usługi Azure Databricks.In this tutorial, you perform an ETL (extract, transform, and load data) operation by using Azure Databricks. Dane z Azure Data Lake Storage Gen2 można wyodrębnić do Azure Databricks, uruchamiać przekształcenia danych w Azure Databricks i ładować przekształcone dane do usługi Azure Synapse Analytics.You extract data from Azure Data Lake Storage Gen2 into Azure Databricks, run transformations on the data in Azure Databricks, and load the transformed data into Azure Synapse Analytics.

Kroki opisane w tym samouczku umożliwiają Azure Databricks transferu danych do Azure Databricks za pomocą łącznika usługi Azure Synapse.The steps in this tutorial use the Azure Synapse connector for Azure Databricks to transfer data to Azure Databricks. Ten łącznik z kolei używa platformy Azure Blob Storage jako magazynu tymczasowego do przesyłania danych między klastrem Azure Databricks i usługą Azure Synapse.This connector, in turn, uses Azure Blob Storage as temporary storage for the data being transferred between an Azure Databricks cluster and Azure Synapse.

Poniższa ilustracja przedstawia przepływ aplikacji:The following illustration shows the application flow:

Azure Databricks z usługami Data Lake Store i Azure SynapseAzure Databricks with Data Lake Store and Azure Synapse

Ten samouczek obejmuje następujące zadania:This tutorial covers the following tasks:

  • Tworzenie usługi Azure Databricks.Create an Azure Databricks service.
  • Tworzenie klastra Spark w usłudze Azure Databricks.Create a Spark cluster in Azure Databricks.
  • Tworzenie systemu plików na koncie usługi Data Lake Storage Gen2.Create a file system in the Data Lake Storage Gen2 account.
  • Przekazywanie danych przykładowych na konto usługi Azure Data Lake Storage Gen2.Upload sample data to the Azure Data Lake Storage Gen2 account.
  • Tworzenie jednostki usługi.Create a service principal.
  • Wyodrębnianie danych z konta usługi Azure Data Lake Storage Gen2.Extract data from the Azure Data Lake Storage Gen2 account.
  • Przekształcanie danych w usłudze Azure Databricks.Transform data in Azure Databricks.
  • Ładowanie danych do usługi Azure Synapse.Load data into Azure Synapse.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.If you don't have an Azure subscription, create a free account before you begin.

Uwaga

Tego samouczka nie można przeprowadzić za pomocą subskrypcji bezpłatnej wersji próbnej platformy Azure.This tutorial cannot be carried out using Azure Free Trial Subscription. Jeśli masz bezpłatne konto, przejdź do swojego profilu i Zmień subskrypcję na płatność zgodnie z rzeczywistymużyciem.If you have a free account, go to your profile and change your subscription to pay-as-you-go. Aby uzyskać więcej informacji, zobacz Bezpłatne konto platformy Azure.For more information, see Azure free account. Następnie Usuń limit wydatkówi Poproś o zwiększenie limitu przydziału dla procesorów wirtualnych vCPU w Twoim regionie.Then, remove the spending limit, and request a quota increase for vCPUs in your region. Podczas tworzenia obszaru roboczego Azure Databricks możesz wybrać warstwę cenową wersji próbnej (Premium-14-Days Free dBu) , aby umożliwić dostęp do obszaru roboczego bezpłatnie Azure Databricks DBU przez 14 dni.When you create your Azure Databricks workspace, you can select the Trial (Premium - 14-Days Free DBUs) pricing tier to give the workspace access to free Premium Azure Databricks DBUs for 14 days.

Wymagania wstępnePrerequisites

Przed rozpoczęciem tego samouczka wykonaj następujące zadania:Complete these tasks before you begin this tutorial:

Zbieranie potrzebnych informacjiGather the information that you need

Upewnij się, że zostały spełnione wszystkie wymagania wstępne tego samouczka.Make sure that you complete the prerequisites of this tutorial.

Przed rozpoczęciem należy zebrać następujące informacje:Before you begin, you should have these items of information:

: heavy_check_mark: Nazwa bazy danych, nazwa serwera bazy danych, nazwa użytkownika i hasło do usługi Azure Synapse.:heavy_check_mark: The database name, database server name, user name, and password of your Azure Synapse.

: heavy_check_mark: klucz dostępu konta magazynu obiektów BLOB.:heavy_check_mark: The access key of your blob storage account.

: heavy_check_mark: nazwa konta magazynu Data Lake Storage Gen2.:heavy_check_mark: The name of your Data Lake Storage Gen2 storage account.

: heavy_check_mark: Identyfikator dzierżawy subskrypcji.:heavy_check_mark: The tenant ID of your subscription.

: heavy_check_mark: Identyfikator aplikacji dla aplikacji, która została zarejestrowana w usłudze Azure Active Directory (Azure AD).:heavy_check_mark: The application ID of the app that you registered with Azure Active Directory (Azure AD).

: heavy_check_mark: klucz uwierzytelniania dla aplikacji, która została zarejestrowana w usłudze Azure AD.:heavy_check_mark: The authentication key for the app that you registered with Azure AD.

Tworzenie usługi Azure DatabricksCreate an Azure Databricks service

W tej sekcji utworzysz usługę Azure Databricks przy użyciu witryny Azure Portal.In this section, you create an Azure Databricks service by using the Azure portal.

  1. Z menu Azure Portal wybierz pozycję Utwórz zasób.From the Azure portal menu, select Create a resource.

    Utwórz zasób na Azure Portal

    Następnie wybierz pozycję Analytics > Azure Databricks.Then, select Analytics > Azure Databricks.

    Utwórz Azure Databricks na Azure Portal

  2. W obszarze Usługa Azure Databricks podaj następujące wartości, aby utworzyć usługę Databricks:Under Azure Databricks Service, provide the following values to create a Databricks service:

    WłaściwośćProperty OpisDescription
    Nazwa obszaru roboczegoWorkspace name Podaj nazwę obszaru roboczego usługi Databricks.Provide a name for your Databricks workspace.
    SubskrypcjaSubscription Z listy rozwijanej wybierz subskrypcję platformy Azure.From the drop-down, select your Azure subscription.
    Grupa zasobówResource group Określ, czy chcesz utworzyć nową grupę zasobów, czy użyć istniejącej grupy.Specify whether you want to create a new resource group or use an existing one. Grupa zasobów to kontener, który zawiera powiązane zasoby dla rozwiązania platformy Azure.A resource group is a container that holds related resources for an Azure solution. Aby uzyskać więcej informacji, zobacz Omówienie usługi Azure Resource Manager.For more information, see Azure Resource Group overview.
    LokalizacjaLocation Wybierz pozycję Zachodnie stany USA 2.Select West US 2. Inne dostępne regiony podano na stronie dostępności usług platformy Azure według regionów.For other available regions, see Azure services available by region.
    Warstwa cenowaPricing Tier Wybierz pozycję Standardowy.Select Standard.
  3. Tworzenie konta potrwa kilka minut.The account creation takes a few minutes. Stan operacji można monitorować za pomocą paska postępu znajdującego się u góry.To monitor the operation status, view the progress bar at the top.

  4. Wybierz pozycję Przypnij do pulpitu nawigacyjnego, a następnie pozycję Utwórz.Select Pin to dashboard and then select Create.

Tworzenie klastra Spark w usłudze Azure DatabricksCreate a Spark cluster in Azure Databricks

  1. W witrynie Azure Portal przejdź do utworzonej usługi Databricks i wybierz pozycję Uruchom obszar roboczy.In the Azure portal, go to the Databricks service that you created, and select Launch Workspace.

  2. Nastąpi przekierowanie do portalu usługi Azure Databricks.You're redirected to the Azure Databricks portal. W portalu wybierz pozycję Klaster.From the portal, select Cluster.

    Datakostki na platformie AzureDatabricks on Azure

  3. Na stronie Nowy klaster podaj wartości, aby utworzyć klaster.In the New cluster page, provide the values to create a cluster.

    Tworzenie klastra usługi datakosteks Spark na platformie AzureCreate Databricks Spark cluster on Azure

  4. Uzupełnij wartości następujących pól i zaakceptuj wartości domyślne w pozostałych polach:Fill in values for the following fields, and accept the default values for the other fields:

    • Wprowadź nazwę klastra.Enter a name for the cluster.

    • Upewnij się, że jest zaznaczone pole wyboru Zakończ po _ _ minutach braku aktywności .Make sure you select the Terminate after __ minutes of inactivity check box. Podaj czas (w minutach), po jakim działanie klastra ma zostać zakończone, jeśli nie jest on używany.If the cluster isn't being used, provide a duration (in minutes) to terminate the cluster.

    • Wybierz pozycję Utwórz klaster.Select Create cluster. Po uruchomieniu klastra możesz dołączać do niego notesy i uruchamiać zadania Spark.After the cluster is running, you can attach notebooks to the cluster and run Spark jobs.

Tworzenie systemu plików na koncie usługi Azure Data Lake Storage Gen2Create a file system in the Azure Data Lake Storage Gen2 account

W tej sekcji utworzysz notes w obszarze roboczym usługi Azure Databricks, a następnie uruchomisz fragmenty kodu, aby skonfigurować konto magazynu.In this section, you create a notebook in Azure Databricks workspace and then run code snippets to configure the storage account

  1. W witrynie Azure Portal przejdź do utworzonej usługi Azure Databricks i wybierz pozycję Uruchom obszar roboczy.In the Azure portal, go to the Azure Databricks service that you created, and select Launch Workspace.

  2. Po lewej stronie wybierz pozycję Obszar roboczy.On the left, select Workspace. Z listy rozwijanej Obszar roboczy wybierz pozycję Utwórz > Notes.From the Workspace drop-down, select Create > Notebook.

    Tworzenie notesu w kostkachCreate a notebook in Databricks

  3. W oknie dialogowymTworzenie notesu wprowadź nazwę notesu.In the Create Notebook dialog box, enter a name for the notebook. Jako język wybierz pozycję Scala, a następnie wybierz utworzony wcześniej klaster Spark.Select Scala as the language, and then select the Spark cluster that you created earlier.

    Podaj szczegóły dla notesu w kostkachProvide details for a notebook in Databricks

  4. Wybierz przycisk Utwórz.Select Create.

  5. Poniższy blok kodu ustawia domyślne poświadczenia nazwy głównej usługi dla każdego konta ADLS generacji 2, do którego można uzyskać dostęp w sesji platformy Spark.The following code block sets default service principal credentials for any ADLS Gen 2 account accessed in the Spark session. Drugi blok kodu dołącza nazwę konta do ustawienia, aby określić poświadczenia dla określonego konta ADLS generacji 2.The second code block appends the account name to the setting to specify credentials for a specific ADLS Gen 2 account. Skopiuj i wklej blok kodu w pierwszej komórce notesu Azure Databricks.Copy and paste either code block into the first cell of your Azure Databricks notebook.

    Konfiguracja sesjiSession configuration

    val appID = "<appID>"
    val secret = "<secret>"
    val tenantID = "<tenant-id>"
    
    spark.conf.set("fs.azure.account.auth.type", "OAuth")
    spark.conf.set("fs.azure.account.oauth.provider.type", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
    spark.conf.set("fs.azure.account.oauth2.client.id", "<appID>")
    spark.conf.set("fs.azure.account.oauth2.client.secret", "<secret>")
    spark.conf.set("fs.azure.account.oauth2.client.endpoint", "https://login.microsoftonline.com/<tenant-id>/oauth2/token")
    spark.conf.set("fs.azure.createRemoteFileSystemDuringInitialization", "true")
    

    Konfiguracja kontaAccount configuration

    val storageAccountName = "<storage-account-name>"
    val appID = "<app-id>"
    val secret = "<secret>"
    val fileSystemName = "<file-system-name>"
    val tenantID = "<tenant-id>"
    
    spark.conf.set("fs.azure.account.auth.type." + storageAccountName + ".dfs.core.windows.net", "OAuth")
    spark.conf.set("fs.azure.account.oauth.provider.type." + storageAccountName + ".dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
    spark.conf.set("fs.azure.account.oauth2.client.id." + storageAccountName + ".dfs.core.windows.net", "" + appID + "")
    spark.conf.set("fs.azure.account.oauth2.client.secret." + storageAccountName + ".dfs.core.windows.net", "" + secret + "")
    spark.conf.set("fs.azure.account.oauth2.client.endpoint." + storageAccountName + ".dfs.core.windows.net", "https://login.microsoftonline.com/" + tenantID + "/oauth2/token")
    spark.conf.set("fs.azure.createRemoteFileSystemDuringInitialization", "true")
    dbutils.fs.ls("abfss://" + fileSystemName  + "@" + storageAccountName + ".dfs.core.windows.net/")
    spark.conf.set("fs.azure.createRemoteFileSystemDuringInitialization", "false")
    
  6. W tym bloku kodu zamień symbole zastępcze <app-id>, <secret>, <tenant-id> i <storage-account-name> na wartości zebrane podczas wykonywania kroków wymagań wstępnych.In this code block, replace the <app-id>, <secret>, <tenant-id>, and <storage-account-name> placeholder values in this code block with the values that you collected while completing the prerequisites of this tutorial. Zastąp symbol zastępczy <file-system-name> dowolną nazwą, którą chcesz nadać systemowi plików.Replace the <file-system-name> placeholder value with whatever name you want to give the file system.

    • Parametry <app-id> i <secret> pochodzą z aplikacji zarejestrowanej w usłudze Active Directory podczas tworzenia jednostki usługi.The <app-id>, and <secret> are from the app that you registered with active directory as part of creating a service principal.

    • Parametr <tenant-id> pochodzi z subskrypcji.The <tenant-id> is from your subscription.

    • Parametr <storage-account-name> to nazwa konta magazynu usługi Azure Data Lake Storage Gen2.The <storage-account-name> is the name of your Azure Data Lake Storage Gen2 storage account.

  7. Naciśnij klawisze SHIFT+ENTER, aby uruchomić kod w tym bloku.Press the SHIFT + ENTER keys to run the code in this block.

Pozyskiwanie danych przykładowych na konto usługi Azure Data Lake Storage Gen2Ingest sample data into the Azure Data Lake Storage Gen2 account

Przed przystąpieniem do pracy z tą sekcją musisz zapewnić spełnienie następujących wymagań wstępnych:Before you begin with this section, you must complete the following prerequisites:

Wprowadź następujący kod w komórce notesu:Enter the following code into a notebook cell:

%sh wget -P /tmp https://raw.githubusercontent.com/Azure/usql/master/Examples/Samples/Data/json/radiowebsite/small_radio_json.json

W tej komórce naciśnij klawisze SHIFT + ENTER, aby uruchomić kod.In the cell, press SHIFT + ENTER to run the code.

Teraz w nowej komórce pod tą komórką wprowadź następujący kod, zastępując wartości w nawiasach tymi samymi wartościami, których użyto wcześniej:Now in a new cell below this one, enter the following code, and replace the values that appear in brackets with the same values you used earlier:

dbutils.fs.cp("file:///tmp/small_radio_json.json", "abfss://" + fileSystemName + "@" + storageAccountName + ".dfs.core.windows.net/")

W tej komórce naciśnij klawisze SHIFT + ENTER, aby uruchomić kod.In the cell, press SHIFT + ENTER to run the code.

Wyodrębnianie danych z konta usługi Azure Data Lake Storage Gen2Extract data from the Azure Data Lake Storage Gen2 account

  1. Teraz możesz załadować przykładowy plik json jako ramkę danych w usłudze Azure Databricks.You can now load the sample json file as a data frame in Azure Databricks. Wklej następujący kod w nowej komórce.Paste the following code in a new cell. Zastąp symbole zastępcze umieszczone w nawiasach ostrokątnych własnymi wartościami.Replace the placeholders shown in brackets with your values.

    val df = spark.read.json("abfss://" + fileSystemName + "@" + storageAccountName + ".dfs.core.windows.net/small_radio_json.json")
    
  2. Naciśnij klawisze SHIFT+ENTER, aby uruchomić kod w tym bloku.Press the SHIFT + ENTER keys to run the code in this block.

  3. Uruchom poniższy kod, aby wyświetlić zawartość ramki danych:Run the following code to see the contents of the data frame:

    df.show()
    

    Zostaną wyświetlone dane wyjściowe podobne do następującego fragmentu kodu:You see an output similar to the following snippet:

    +---------------------+---------+---------+------+-------------+----------+---------+-------+--------------------+------+--------+-------------+---------+--------------------+------+-------------+------+
    |               artist|     auth|firstName|gender|itemInSession|  lastName|   length|  level|            location|method|    page| registration|sessionId|                song|status|           ts|userId|
    +---------------------+---------+---------+------+-------------+----------+---------+-------+--------------------+------+--------+-------------+---------+--------------------+------+-------------+------+
    | El Arrebato         |Logged In| Annalyse|     F|            2|Montgomery|234.57914| free  |  Killeen-Temple, TX|   PUT|NextSong|1384448062332|     1879|Quiero Quererte Q...|   200|1409318650332|   309|
    | Creedence Clearwa...|Logged In|   Dylann|     M|            9|    Thomas|340.87138| paid  |       Anchorage, AK|   PUT|NextSong|1400723739332|       10|        Born To Move|   200|1409318653332|    11|
    | Gorillaz            |Logged In|     Liam|     M|           11|     Watts|246.17751| paid  |New York-Newark-J...|   PUT|NextSong|1406279422332|     2047|                DARE|   200|1409318685332|   201|
    ...
    ...
    

    Masz teraz dane wyodrębnione z usługi Azure Data Lake Storage 2. generacji do usługi Azure Databricks.You have now extracted the data from Azure Data Lake Storage Gen2 into Azure Databricks.

Przekształcanie danych w usłudze Azure DatabricksTransform data in Azure Databricks

Plik przykładowych danych pierwotnych, small_radio_json.json, przechwytuje odbiorców stacji radiowej i ma wiele kolumn.The raw sample data small_radio_json.json file captures the audience for a radio station and has a variety of columns. W tej sekcji przekształcisz dane tak, aby z zestawu danych były pobierane tylko określone kolumny.In this section, you transform the data to only retrieve specific columns from the dataset.

  1. Zacznij od pobrania tylko kolumn firstName, lastName, gender, location i level z utworzonej ramki danych.First, retrieve only the columns firstName, lastName, gender, location, and level from the dataframe that you created.

    val specificColumnsDf = df.select("firstname", "lastname", "gender", "location", "level")
    specificColumnsDf.show()
    

    Otrzymasz dane wyjściowe pokazane w poniższym fragmencie kodu:You receive output as shown in the following snippet:

    +---------+----------+------+--------------------+-----+
    |firstname|  lastname|gender|            location|level|
    +---------+----------+------+--------------------+-----+
    | Annalyse|Montgomery|     F|  Killeen-Temple, TX| free|
    |   Dylann|    Thomas|     M|       Anchorage, AK| paid|
    |     Liam|     Watts|     M|New York-Newark-J...| paid|
    |     Tess|  Townsend|     F|Nashville-Davidso...| free|
    |  Margaux|     Smith|     F|Atlanta-Sandy Spr...| free|
    |     Alan|     Morse|     M|Chicago-Napervill...| paid|
    |Gabriella|   Shelton|     F|San Jose-Sunnyval...| free|
    |   Elijah|  Williams|     M|Detroit-Warren-De...| paid|
    |  Margaux|     Smith|     F|Atlanta-Sandy Spr...| free|
    |     Tess|  Townsend|     F|Nashville-Davidso...| free|
    |     Alan|     Morse|     M|Chicago-Napervill...| paid|
    |     Liam|     Watts|     M|New York-Newark-J...| paid|
    |     Liam|     Watts|     M|New York-Newark-J...| paid|
    |   Dylann|    Thomas|     M|       Anchorage, AK| paid|
    |     Alan|     Morse|     M|Chicago-Napervill...| paid|
    |   Elijah|  Williams|     M|Detroit-Warren-De...| paid|
    |  Margaux|     Smith|     F|Atlanta-Sandy Spr...| free|
    |     Alan|     Morse|     M|Chicago-Napervill...| paid|
    |   Dylann|    Thomas|     M|       Anchorage, AK| paid|
    |  Margaux|     Smith|     F|Atlanta-Sandy Spr...| free|
    +---------+----------+------+--------------------+-----+
    
  2. Możesz dalej przekształcać te dane, aby zmienić nazwę kolumny level na subscription_type.You can further transform this data to rename the column level to subscription_type.

    val renamedColumnsDF = specificColumnsDf.withColumnRenamed("level", "subscription_type")
    renamedColumnsDF.show()
    

    Otrzymasz dane wyjściowe pokazane w poniższym fragmencie kodu.You receive output as shown in the following snippet.

    +---------+----------+------+--------------------+-----------------+
    |firstname|  lastname|gender|            location|subscription_type|
    +---------+----------+------+--------------------+-----------------+
    | Annalyse|Montgomery|     F|  Killeen-Temple, TX|             free|
    |   Dylann|    Thomas|     M|       Anchorage, AK|             paid|
    |     Liam|     Watts|     M|New York-Newark-J...|             paid|
    |     Tess|  Townsend|     F|Nashville-Davidso...|             free|
    |  Margaux|     Smith|     F|Atlanta-Sandy Spr...|             free|
    |     Alan|     Morse|     M|Chicago-Napervill...|             paid|
    |Gabriella|   Shelton|     F|San Jose-Sunnyval...|             free|
    |   Elijah|  Williams|     M|Detroit-Warren-De...|             paid|
    |  Margaux|     Smith|     F|Atlanta-Sandy Spr...|             free|
    |     Tess|  Townsend|     F|Nashville-Davidso...|             free|
    |     Alan|     Morse|     M|Chicago-Napervill...|             paid|
    |     Liam|     Watts|     M|New York-Newark-J...|             paid|
    |     Liam|     Watts|     M|New York-Newark-J...|             paid|
    |   Dylann|    Thomas|     M|       Anchorage, AK|             paid|
    |     Alan|     Morse|     M|Chicago-Napervill...|             paid|
    |   Elijah|  Williams|     M|Detroit-Warren-De...|             paid|
    |  Margaux|     Smith|     F|Atlanta-Sandy Spr...|             free|
    |     Alan|     Morse|     M|Chicago-Napervill...|             paid|
    |   Dylann|    Thomas|     M|       Anchorage, AK|             paid|
    |  Margaux|     Smith|     F|Atlanta-Sandy Spr...|             free|
    +---------+----------+------+--------------------+-----------------+
    

Ładowanie danych do usługi Azure SynapseLoad data into Azure Synapse

W tej sekcji przekażesz przekształcone dane do usługi Azure Synapse.In this section, you upload the transformed data into Azure Synapse. Łącznik usługi Azure Synapse służy do Azure Databricks bezpośredniego przekazywania ramki danych jako tabeli w puli Synapse Spark.You use the Azure Synapse connector for Azure Databricks to directly upload a dataframe as a table in a Synapse Spark pool.

Jak wspomniano wcześniej, łącznik usługi Azure Synapse używa usługi Azure Blob Storage jako magazynu tymczasowego do przekazywania danych między Azure Databricks i Azure Synapse.As mentioned earlier, the Azure Synapse connector uses Azure Blob storage as temporary storage to upload data between Azure Databricks and Azure Synapse. Możesz rozpocząć od podania konfiguracji umożliwiającej nawiązanie połączenia z kontem magazynu.So, you start by providing the configuration to connect to the storage account. Musisz już mieć utworzone konto w ramach wymagań wstępnych dotyczących tego artykułu.You must already have already created the account as part of the prerequisites for this article.

  1. Podaj konfigurację umożliwiającą uzyskanie dostępu do konta usługi Azure Storage z usługi Azure Databricks.Provide the configuration to access the Azure Storage account from Azure Databricks.

    val blobStorage = "<blob-storage-account-name>.blob.core.windows.net"
    val blobContainer = "<blob-container-name>"
    val blobAccessKey =  "<access-key>"
    
  2. Określ folder tymczasowy, który ma być używany podczas przesuwania danych między Azure Databricks i Azure Synapse.Specify a temporary folder to use while moving data between Azure Databricks and Azure Synapse.

    val tempDir = "wasbs://" + blobContainer + "@" + blobStorage +"/tempDirs"
    
  3. Uruchom poniższy fragment kodu, aby zapisać klucze dostępu usługi Azure Blob Storage w konfiguracji.Run the following snippet to store Azure Blob storage access keys in the configuration. Dzięki tej akcji nie będzie trzeba przechowywać klucza dostępu w notesie w postaci zwykłego tekstu.This action ensures that you don't have to keep the access key in the notebook in plain text.

    val acntInfo = "fs.azure.account.key."+ blobStorage
    sc.hadoopConfiguration.set(acntInfo, blobAccessKey)
    
  4. Podaj wartości, aby połączyć się z wystąpieniem usługi Azure Synapse.Provide the values to connect to the Azure Synapse instance. Należy utworzyć usługę Azure Synapse Analytics jako wymaganie wstępne.You must have created an Azure Synapse Analytics service as a prerequisite. Użyj w pełni kwalifikowanej nazwy serwera dla dwServer.Use the fully qualified server name for dwServer. Na przykład <servername>.database.windows.net.For example, <servername>.database.windows.net.

    //Azure Synapse related settings
    val dwDatabase = "<database-name>"
    val dwServer = "<database-server-name>"
    val dwUser = "<user-name>"
    val dwPass = "<password>"
    val dwJdbcPort =  "1433"
    val dwJdbcExtraOptions = "encrypt=true;trustServerCertificate=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;"
    val sqlDwUrl = "jdbc:sqlserver://" + dwServer + ":" + dwJdbcPort + ";database=" + dwDatabase + ";user=" + dwUser+";password=" + dwPass + ";$dwJdbcExtraOptions"
    val sqlDwUrlSmall = "jdbc:sqlserver://" + dwServer + ":" + dwJdbcPort + ";database=" + dwDatabase + ";user=" + dwUser+";password=" + dwPass
    
  5. Uruchom Poniższy fragment kodu, aby załadować przekształconą ramkę danych renamedColumnsDF, jako tabelę w usłudze Azure Synapse. Ten fragment kodu tworzy tabelę o nazwie SampleTable w bazie danych SQL.This snippet creates a table called SampleTable in the SQL database.

    spark.conf.set(
        "spark.sql.parquet.writeLegacyFormat",
        "true")
    
    renamedColumnsDF.write.format("com.databricks.spark.sqldw").option("url", sqlDwUrlSmall).option("dbtable", "SampleTable")       .option( "forward_spark_azure_storage_credentials","True").option("tempdir", tempDir).mode("overwrite").save()
    

    Uwaga

    W tym przykładzie użyto forward_spark_azure_storage_credentials flagi, która powoduje, że usługa Azure Synapse uzyskuje dostęp do danych z usługi BLOB Storage przy użyciu klucza dostępu.This sample uses the forward_spark_azure_storage_credentials flag, which causes Azure Synapse to access data from blob storage using an Access Key. Jest to jedyna obsługiwana metoda uwierzytelniania.This is the only supported method of authentication.

    Jeśli Blob Storage platformy Azure jest ograniczone do wybranych sieci wirtualnych, usługa Azure Synapse wymaga tożsamość usługi zarządzanej zamiast kluczy dostępu.If your Azure Blob Storage is restricted to select virtual networks, Azure Synapse requires Managed Service Identity instead of Access Keys. Spowoduje to wystąpienie błędu "to żądanie nie ma autoryzacji do wykonania tej operacji".This will cause the error "This request is not authorized to perform this operation."

  6. Połącz się z usługą SQL Database i sprawdź, czy jest widoczna baza danych o nazwie SampleTable.Connect to the SQL database and verify that you see a database named SampleTable.

    Weryfikowanie tabeli przykładowejVerify the sample table

  7. Uruchom wybrane zapytanie, aby sprawdzić zawartość tabeli.Run a select query to verify the contents of the table. Tabela powinna zawierać takie same dane jak ramka danych renamedColumnsDF.The table should have the same data as the renamedColumnsDF dataframe.

    Sprawdzanie zawartości przykładowej tabeliVerify the sample table content

Czyszczenie zasobówClean up resources

Po ukończeniu tego samouczka możesz przerwać działanie klastra.After you finish the tutorial, you can terminate the cluster. W obszarze roboczym usługi Azure Databricks wybierz pozycję Klastry po lewej stronie.From the Azure Databricks workspace, select Clusters on the left. Aby przerwać działanie klastra, w obszarze Akcje wskaż wielokropek (...) i wybierz ikonę Przerwij.For the cluster to terminate, under Actions, point to the ellipsis (...) and select the Terminate icon.

Zatrzymaj klaster datakostkiStop a Databricks cluster

Jeśli klaster nie zostanie ręcznie zakończony, zostanie automatycznie zatrzymany, pod warunkiem, że zaznaczono pole wyboru Przerwij po _ _ minutach braku aktywności podczas tworzenia klastra.If you don't manually terminate the cluster, it automatically stops, provided you selected the Terminate after __ minutes of inactivity check box when you created the cluster. W takim przypadku nieaktywny klaster automatycznie zatrzymuje się po określonym czasie.In such a case, the cluster automatically stops if it's been inactive for the specified time.

Następne krokiNext steps

W niniejszym samouczku zawarto informacje na temat wykonywania następujących czynności:In this tutorial, you learned how to:

  • Tworzenie usługi Azure DatabricksCreate an Azure Databricks service
  • Tworzenie klastra Spark w usłudze Azure DatabricksCreate a Spark cluster in Azure Databricks
  • Tworzenie notesu w usłudze Azure DatabricksCreate a notebook in Azure Databricks
  • Wyodrębnianie danych z konta usługi Data Lake Storage Gen2Extract data from a Data Lake Storage Gen2 account
  • Przekształcanie danych w usłudze Azure DatabricksTransform data in Azure Databricks
  • Ładowanie danych do usługi Azure SynapseLoad data into Azure Synapse

Przejdź do następnego samouczka, aby dowiedzieć się więcej na temat przesyłania strumieniowego danych w czasie rzeczywistym do usługi Azure Databricks przy użyciu usługi Azure Event Hubs.Advance to the next tutorial to learn about streaming real-time data into Azure Databricks using Azure Event Hubs.