Jaa


Hive-metasäilön metatietojen siirtäminen Azure Synapse Analyticsista Fabriciin

HMS(Hive Metastore) -siirtymisen ensimmäisessä vaiheessa määritetään tietokannat, taulukot ja osiot, jotka haluat siirtää. Kaikkea ei tarvitse siirtää, vaan sitä ei tarvitse siirtää. Voit valita tietyt tietokannat. Kun tunnistat tietokantoja siirtämistä varten, varmista, että on hallittuja vai ulkoisia Spark-taulukoita.

HMS-huomioon otettavia seikkoja löytyy Azure Synapse Sparkin ja Fabricin välisistä eroista.

Muistiinpano

Vaihtoehtoisesti jos ADLS Gen2 sisältää Delta-taulukoita, voit luoda OneLake-pikakuvakkeen Delta-taulukkoon ADLS Gen2:ssa.

Edellytykset

Vaihtoehto 1: Vie ja tuo HMS Lakehouse-metakauppaan

Noudata näitä siirron tärkeimpiä vaiheita:

  • Vaihe 1: metatietojen vieminen lähde-HMS:stä
  • Vaihe 2: Tuo metatiedot Fabric Lakehouseen
  • Siirron jälkeiset vaiheet: sisällön vahvistaminen

Muistiinpano

Komentosarjat kopioivat Spark-luettelo-objekteja vain Fabric Lakehouseen. Oletuksena on, että tiedot on jo kopioitu (esimerkiksi varastosijainnista ADLS Gen2:een) tai hallittuja ja ulkoisia taulukoita varten (esimerkiksi pikakuvakkeiden kautta – ensisijainen) Fabric Lakehouseen.

Vaihe 1: metatietojen vieminen lähde-HMS:stä

Vaiheessa 1 keskitytään metatietojen viemiseen HMS-lähdetiedostosta Fabric Lakehouse -järven Tiedostot-osioon. Tämä prosessi on seuraava:

  • 1.1) Tuo HMS-metatietojen vientimuistikirja Azure Synapse työtilaan. Tämä muistikirja tekee kyselyjä ja vie tietokantojen, taulukoiden ja osioiden HMS-metatiedot OneLakessa olevaan välihakemistoon (funktiot, joita ei vielä ole mukana). Sparkin sisäistä hakemiston ohjelmointirajapintaa käytetään tässä komentosarjassa luettelo-objektien lukemiseen.

  • 1.2) Määritä ensimmäisen komennon parametrit metatietojen viemiseksi välitallennustilaan (OneLake). Lähde- ja kohdeparametrit määritetään seuraavalla katkelmassa. Varmista, että korvaat ne omilla arvoillasi.

    
    // Azure Synapse workspace config
    var SynapseWorkspaceName = "<synapse_workspace_name>"
    
    var DatabaseNames = "<db1_name>;<db2_name>"
    var SkipExportTablesWithUnrecognizedType:Boolean = false
    
    // Fabric config
    var WorkspaceId = "<workspace_id>"
    var LakehouseId = "<lakehouse_id>"
    var ExportFolderName = f"export/${SynapseWorkspaceName}/sparkCatalogMetadata"
    
    var OutputFolder = f"abfss://${WorkspaceId}@onelake.dfs.fabric.microsoft.com/${LakehouseId}/Files/${ExportFolderName}/"
    
    
  • 1.3) Vie luettelo-objektit OneLakeen suorittamalla kaikki muistikirjakomennot. Kun solut on suoritettu, järjestelmä luo tämän välitulosteen hakemiston alla olevan kansiorakenteen.

    Näyttökuva, jossa näkyy HMS-vienti OneLakessa.

Vaihe 2: Tuo metatiedot Fabric Lakehouseen

Vaihe 2 on se, kun todelliset metatiedot tuodaan välivarastosta Fabric Lakehouseen. Tämän vaiheen tuloksena kaikki HMS-metatiedot (tietokannat, taulukot ja osiot) on siirretty. Tämä prosessi on seuraava:

  • 2.1) Luo pikakuvake Lakehousen "Tiedostot"-osioon . Tämän pikakuvakkeen on osoitettava lähteen Spark-varaston hakemistoon, ja sitä käytetään myöhemmin spark-hallittujen taulukoiden korvaamiseen. Näytä pikakuvakeesimerkit, jotka osoittavat Spark-varaston hakemistoon:

    • Pikakuvakepolku Spark Azure Synapse varaston hakemistoon:abfss://<container>@<storage_name>.dfs.core.windows.net/synapse/workspaces/<workspace_name>/warehouse
    • Pikakuvakepolku Azure Databricks -varaston hakemistoon: dbfs:/mnt/<warehouse_dir>
    • HDInsight Spark -varastohakemiston pikakuvakepolku: abfss://<container>@<storage_name>.dfs.core.windows.net/apps/spark/warehouse
  • 2.2) Tuo HMS-metatietojen tuontimuistikirja Fabric-työtilaan. Tuo tämä muistikirja , jotta voit tuoda tietokanta-, taulukko- ja osio-objekteja välitallennustilasta. Tässä komentosarjassa käytetään Sparkin sisäistä hakemiston ohjelmointirajapintaa luettelo-objektien luomiseen Fabricissa.

  • 2.3) Määritä ensimmäisen komennon parametrit . Kun luot hallitun taulukon Apache Sparkissä, kyseisen taulukon tiedot tallennetaan Sparkin itsensä hallitsemaan sijaintiin, joka on yleensä Sparkin varaston hakemistossa. Spark määrittää tarkan sijainnin. Tämä on ristiriidassa ulkoisten taulukoiden kanssa, joissa määritetään sijainti ja hallitaan pohjana olevia tietoja. Kun siirrät hallitun taulukon metatiedot (siirtämättä todellisia tietoja), metatiedot sisältävät yhä alkuperäiset sijaintitiedot, jotka osoittavat vanhaan Spark-varaston hakemistoon. Näin ollen hallittujen taulukoiden WarehouseMappings kohdalla korvaamme käyttämällä vaiheessa 2.1 luotua pikakuvaketta. Kaikki lähteen hallitsemat taulukot muunnetaan ulkoisiksi taulukoiksi tämän komentosarjan avulla. LakehouseId viittaa vaiheessa 2.1 luotuun Lakehouseen, joka sisältää pikakuvakkeet.

    
    // Azure Synapse workspace config
    var ContainerName = "<container_name>"
    var StorageName = "<storage_name>"
    var SynapseWorkspaceName = "<synapse_workspace_name>"
    
    // Fabric config
    var WorkspaceId = "<workspace_id>"
    var LakehouseId = "<lakehouse_id>"
    var ExportFolderName = f"export/${SynapseWorkspaceName}/sparkCatalogMetadata"
    var ShortcutName = "<warehouse_dir_shortcut_name>"
    
    var WarehouseMappings:Map[String, String] = Map(
        f"abfss://${ContainerName}@${StorageName}.dfs.core.windows.net/synapse/workspaces/${SynapseWorkspaceName}/warehouse"-> f"abfss://${WorkspaceId}@onelake.dfs.fabric.microsoft.com/${LakehouseId}/Files/${ShortcutName}"
    )
    
    var OutputFolder = f"abfss://${WorkspaceId}@onelake.dfs.fabric.microsoft.com/${LakehouseId}/Files/${ExportFolderName}/"
    
    var DatabasePrefix = ""
    var TablePrefix = ""
    var IgnoreIfExists = true
    
    
  • 2.4) Suorita kaikki muistikirjakomennot luettelo-objektien tuomiseksi välipolusta.

Muistiinpano

Kun tuot useita tietokantoja, voit (i) luoda yhden lakehouse-kohteen tietokantaa kohti (tässä käytetty lähestymistapa) tai (ii) siirtää kaikki taulukot eri tietokannoista yhteen Lakehouse-tietokantaan. Jälkimmäisessä tapauksessa kaikki siirretyt taulukot voivat olla <lakehouse>.<db_name>_<table_name>, ja sinun on muutettava tuontimuistikirjaa vastaavasti.

Vaihe 3: Sisällön vahvistaminen

Vaihe 3 varmistaa, että metatiedot on siirretty onnistuneesti. Katso eri esimerkkejä.

Näet tuodut tietokannat suorittamalla:

%%sql
SHOW DATABASES

Voit tarkistaa kaikki Lakehouse (tietokanta) -tietokannan taulukot suorittamalla:

%%sql
SHOW TABLES IN <lakehouse_name>

Näet tietyn taulukon tiedot suorittamalla:

%%sql
DESCRIBE EXTENDED <lakehouse_name>.<table_name>

Vaihtoehtoisesti kaikki tuodut taulukot näkyvät Lakehouse Explorerin Käyttöliittymätaulukot-osassa kussakin lakehousessa.

Näyttökuva, jossa näkyvät Lakehouse-järjestelmään tuodut HMS-metatiedot.

Muuta huomioon otettavaa

  • Skaalattavuus: Tässä ratkaisu käyttää sisäistä Spark-luettelon ohjelmointirajapintaa tuonnin/viennin suorittamiseen, mutta se ei ole yhteyden muodostaminen suoraan HMS:ään luettelo-objektien hakemiseksi, joten ratkaisua ei voi skaalata hyvin, jos luettelo on suuri. Sinun on muutettava vientilogiikkaa HMS DB:n avulla.
  • Tietojen tarkkuus: Eristystakuuta ei ole, mikä tarkoittaa sitä, että jos Spark-laskentamoduuli tekee samanaikaisia muutoksia metasäilöön siirtomuistikirjan suorittamisen aikana, Fabric Lakehousessa voidaan ottaa käyttöön epäyhtenäisiä tietoja.