Μετεγκατάσταση μετα-δεδομένων Hive Metastore από Azure Synapse Analytics σε Fabric
Το αρχικό βήμα στη μετεγκατάσταση του Hive Metastore (HMS) αφορά στον προσδιορισμό των βάσεων δεδομένων, πινάκων και διαμερισμάτων που θέλετε να μεταφέρετε. Δεν είναι απαραίτητο να μετεγκαταστήσετε τα πάντα. μπορείτε να επιλέξετε συγκεκριμένες βάσεις δεδομένων. Κατά τον προσδιορισμό βάσεων δεδομένων για μετεγκατάσταση, βεβαιωθείτε ότι έχετε επαληθεύσει εάν υπάρχουν διαχειριζόμενοι ή εξωτερικοί πίνακες Spark.
Για ζητήματα HMS, ανατρέξτε στις διαφορές μεταξύ των Azure Synapse Spark και Fabric.
Σημείωμα
Εναλλακτικά, εάν το ADLS Gen2 περιέχει πίνακες Delta, μπορείτε να δημιουργήσετε μια συντόμευση OneLake για έναν πίνακα Delta στο ADLS Gen2.
Προαπαιτούμενα στοιχεία
- Εάν δεν έχετε ήδη έναν, δημιουργήστε έναν χώρο εργασίας Fabric στον μισθωτή σας.
- Εάν δεν έχετε ήδη ένα, δημιουργήστε μια λίμνη Fabric στον χώρο εργασίας σας.
Επιλογή 1: Εξαγωγή και εισαγωγή HMS σε μεταστόριο lakehouse
Ακολουθήστε τα παρακάτω βασικά βήματα για τη μετεγκατάσταση:
- Βήμα 1: Εξαγωγή μετα-δεδομένων από το HMS προέλευσης
- Βήμα 2: Εισαγωγή μετα-δεδομένων στο lakehouse Fabric
- Βήματα μετά τη μετεγκατάσταση: Επικύρωση περιεχομένου
Σημείωμα
Οι δέσμες ενεργειών αντιγράφουν μόνο αντικείμενα καταλόγου Spark στο lakehouse Fabric. Υπόθεση είναι ότι τα δεδομένα έχουν ήδη αντιγραφεί (για παράδειγμα, από τη θέση της αποθήκης στο ADLS Gen2) ή είναι διαθέσιμα για διαχειριζόμενους και εξωτερικούς πίνακες (για παράδειγμα, μέσω συντομεύσεων —προτιμώμενο) στο lakehouse Fabric.
Βήμα 1: Εξαγωγή μετα-δεδομένων από το HMS προέλευσης
Το Βήμα 1 εστιάζει στην εξαγωγή των μετα-δεδομένων από το HMS προέλευσης στην ενότητα Αρχεία του lakehouse Fabric. Αυτή η διαδικασία έχει ως εξής:
1.1) Εισαγάγετε το σημειωματάριο εξαγωγής μετα-δεδομένων HMS στον χώρο εργασίας σας Azure Synapse. Αυτό το σημειωματάριο υποβάλλει ερωτήματα και εξάγει μετα-δεδομένα HMS βάσεων δεδομένων, πινάκων και διαμερισμάτων σε έναν ενδιάμεσο κατάλογο στο OneLake (συναρτήσεις που δεν έχουν συμπεριληφθεί ακόμα). Το API εσωτερικού καταλόγου Spark χρησιμοποιείται σε αυτή τη δέσμη ενεργειών για την ανάγνωση αντικειμένων καταλόγου.
1.2) Ρυθμίστε τις παραμέτρους στην πρώτη εντολή για την εξαγωγή πληροφοριών μετα-δεδομένων σε ενδιάμεσο χώρο αποθήκευσης (OneLake). Το ακόλουθο τμήμα κώδικα χρησιμοποιείται για τη ρύθμιση των παραμέτρων προέλευσης και προορισμού. Βεβαιωθείτε ότι τις αντικαταστήσετε με τις δικές σας τιμές.
// 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) Εκτελέστε όλες τις εντολές σημειωματάριου για να εξαγάγετε αντικείμενα καταλόγου στο OneLake. Όταν ολοκληρωθούν τα κελιά, δημιουργείται αυτή η δομή φακέλου κάτω από τον ενδιάμεσο κατάλογο εξόδου.
Βήμα 2: Εισαγωγή μετα-δεδομένων στο lakehouse Fabric
Το βήμα 2 είναι όταν τα πραγματικά μετα-δεδομένα εισάγονται από ενδιάμεσο χώρο αποθήκευσης στο lakehouse Fabric. Το αποτέλεσμα αυτού του βήματος είναι η μετεγκατάσταση όλων των μετα-δεδομένων HMS (βάσεις δεδομένων, πίνακες και διαμερίσματα). Αυτή η διαδικασία έχει ως εξής:
2.1) Δημιουργήστε μια συντόμευση μέσα στο τμήμα "Αρχεία" του lakehouse. Αυτή η συντόμευση πρέπει να παραπέμπει στον κατάλογο αποθήκης Spark προέλευσης και χρησιμοποιείται αργότερα για την αντικατάσταση των διαχειριζόμενων πινάκων Spark. Δείτε παραδείγματα συντόμευσης που δείχνουν τον κατάλογο αποθήκης Spark:
- Διαδρομή συντόμευσης για τον κατάλογο αποθήκης Azure Synapse Spark:
abfss://<container>@<storage_name>.dfs.core.windows.net/synapse/workspaces/<workspace_name>/warehouse
- Διαδρομή συντόμευσης προς τον κατάλογο αποθηκών Azure Databricks:
dbfs:/mnt/<warehouse_dir>
- Διαδρομή συντόμευσης για τον κατάλογο αποθήκης HDInsight Spark:
abfss://<container>@<storage_name>.dfs.core.windows.net/apps/spark/warehouse
- Διαδρομή συντόμευσης για τον κατάλογο αποθήκης Azure Synapse Spark:
2.2) Εισαγάγετε σημειωματάριο εισαγωγής μετα-δεδομένων HMS στον χώρο εργασίας Fabric σας. Εισαγάγετε αυτό το σημειωματάριο για να εισαγάγετε αντικείμενα βάσης δεδομένων, πίνακα και διαμερίσματος από ενδιάμεσο χώρο αποθήκευσης. Το API εσωτερικού καταλόγου Spark χρησιμοποιείται σε αυτή τη δέσμη ενεργειών για τη δημιουργία αντικειμένων καταλόγου στο Fabric.
2.3) Ρυθμίστε τις παραμέτρους στην πρώτη εντολή. Στο Apache Spark, όταν δημιουργείτε έναν διαχειριζόμενο πίνακα, τα δεδομένα για αυτόν τον πίνακα αποθηκεύονται σε μια θέση την οποία διαχειρίζεται το ίδιο το Spark, συνήθως εντός του καταλόγου αποθήκης του Spark. Η ακριβής θέση προσδιορίζεται από το Spark. Αυτό έρχεται σε αντίθεση με εξωτερικούς πίνακες, όπου καθορίζετε τη θέση και διαχειρίζεστε τα υποκείμενα δεδομένα. Όταν μετεγκαταστήσετε τα μετα-δεδομένα ενός διαχειριζόμενου πίνακα (χωρίς να μετακινήσετε τα πραγματικά δεδομένα), τα μετα-δεδομένα εξακολουθούν να περιέχουν τις αρχικές πληροφορίες θέσης που δείχνουν τον παλιό κατάλογο της αποθήκης Spark. Ως εκ τούτου, για διαχειριζόμενους πίνακες,
WarehouseMappings
χρησιμοποιείται για την αντικατάσταση χρησιμοποιώντας τη συντόμευση που δημιουργήθηκε στο βήμα 2.1. Όλοι οι πίνακες με διαχείριση προέλευσης μετατρέπονται ως εξωτερικοί πίνακες με χρήση αυτής της δέσμης ενεργειών.LakehouseId
Το αναφέρεται στη λίμνη που δημιουργήθηκε στο Βήμα 2.1 που περιέχει συντομεύσεις.// 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) Εκτελέστε όλες τις εντολές σημειωματάριου για να εισαγάγετε αντικείμενα καταλόγου από την ενδιάμεση διαδρομή.
Σημείωμα
Κατά την εισαγωγή πολλών βάσεων δεδομένων, μπορείτε (i) να δημιουργήσετε μία λίμνη ανά βάση δεδομένων (η προσέγγιση που χρησιμοποιείται εδώ) ή (ii) να μετακινήσετε όλους τους πίνακες από διαφορετικές βάσεις δεδομένων σε μία μόνο λίμνη. Για τους τελευταίους, όλοι οι πίνακες που μετεγκαταστάθηκαν θα μπορούσαν να είναι <lakehouse>.<db_name>_<table_name>
και θα πρέπει να προσαρμόσετε αντίστοιχα το σημειωματάριο εισαγωγής.
Βήμα 3: Επικύρωση περιεχομένου
Το βήμα 3 είναι το σημείο όπου επικυρώνετε ότι τα μετα-δεδομένα μετεγκαταστάθηκαν με επιτυχία. Δείτε διαφορετικά παραδείγματα.
Μπορείτε να δείτε τις βάσεις δεδομένων που εισάγονται εκτελώντας:
%%sql
SHOW DATABASES
Μπορείτε να ελέγξετε όλους τους πίνακες σε μια λίμνη (βάση δεδομένων) εκτελώντας:
%%sql
SHOW TABLES IN <lakehouse_name>
Μπορείτε να δείτε τις λεπτομέρειες ενός συγκεκριμένου πίνακα εκτελώντας τα εξής:
%%sql
DESCRIBE EXTENDED <lakehouse_name>.<table_name>
Εναλλακτικά, όλοι οι εισαγόμενοι πίνακες είναι ορατοί στην ενότητα Πίνακες εξερεύνησης lakehouse για κάθε lakehouse.
Άλλα στοιχεία που πρέπει να ληφθούν υπόψη
- Δυνατότητα κλιμάκωσης: Η λύση εδώ χρησιμοποιεί εσωτερικό API καταλόγου Spark για την εισαγωγή/εξαγωγή, αλλά δεν συνδέεται απευθείας στο HMS για τη λήψη αντικειμένων καταλόγου, επομένως η λύση δεν θα μπορεί να κλιμακωθεί σωστά εάν ο κατάλογος είναι μεγάλος. Θα πρέπει να αλλάξετε τη λογική εξαγωγής χρησιμοποιώντας τη βάση δεδομένων HMS DB.
- Ακρίβεια δεδομένων: Δεν υπάρχει εγγύηση απομόνωσης, το οποίο σημαίνει ότι εάν η μηχανή υπολογιστικής λειτουργίας Spark κάνει ταυτόχρονες τροποποιήσεις στο μεταστάτη ενώ εκτελείται το σημειωματάριο μετεγκατάστασης, μπορούν να εισαχθούν ασυνεπή δεδομένα στο lakehouse Fabric.
Σχετικό περιεχόμενο
- Fabric vs. Azure Synapse Spark
- Μάθετε περισσότερα σχετικά με τις επιλογές μετεγκατάστασης για χώρους συγκέντρωσης Spark, ρυθμίσεις παραμέτρων, βιβλιοθήκες, σημειωματάρια και ορισμό εργασίας Spark