Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Początkowy krok migracji magazynu metadanych Hive (HMS) obejmuje określenie baz danych, tabel i partycji, które chcesz przenieść. Nie trzeba migrować wszystkiego; Możesz wybrać określone bazy danych. Podczas identyfikowania baz danych na potrzeby migracji upewnij się, czy istnieją zarządzane lub zewnętrzne tabele platformy Spark.
Aby zapoznać się z zagadnieniami dotyczącymi hmS, zapoznaj się z różnicami między usługą Azure Synapse Spark i usługą Fabric.
Uwaga
Alternatywnie, jeśli usługa ADLS Gen2 zawiera tabele delty, możesz utworzyć skrót OneLake do tabeli delty w usłudze ADLS Gen2.
Wymagania wstępne
- Jeśli jeszcze nie masz, utwórz Fabric workspace w swojej dzierżawie.
- Jeśli jeszcze go nie masz, utwórz Fabric lakehouse w swoim obszarze roboczym.
Opcja 1: Eksport i import HMS do magazynu metadanych w lakehouse
Wykonaj następujące kluczowe kroki migracji:
- Krok 1. Eksportowanie metadanych ze źródła HMS
- Krok 2: Importuj metadane do Lakehouse w Fabric
- Kroki po migracji: Weryfikowanie zawartości
Uwaga
Skrypty kopiują tylko obiekty katalogowe Spark do domku nad jeziorem w Fabric. Zakłada się, że dane są już skopiowane (na przykład z lokalizacji magazynu do ADLS Gen2) lub dostępne dla tabel zarządzanych i zewnętrznych (na przykład za pomocą skrótów — preferowane) do jeziora w Fabric.
Krok 1. Eksportowanie metadanych ze źródła HMS
Głównym celem kroku 1 jest eksport metadanych z źródłowego HMS do sekcji Pliki twojego domku nad jeziorem w Fabric. Ten proces jest następujący:
1.1) Zaimportuj notebook eksportu metadanych HMS do obszaru roboczego usługi Azure Synapse. Ten notebook wykonuje zapytania i eksportuje metadane HMS baz danych, tabel i partycji do katalogu pośredniego w usłudze OneLake (funkcje nie zostały jeszcze uwzględnione). Wewnętrzne API katalogu Spark używa się w tym skrypcie do odczytywania obiektów katalogu.
1.2) Skonfiguruj parametry w pierwszym poleceniu, aby wyeksportować informacje o metadanych do magazynu pośredniego (OneLake). Poniższy fragment kodu służy do konfigurowania parametrów źródłowych i docelowych. Pamiętaj, aby zastąpić je własnymi wartościami.
// 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) Uruchom wszystkie polecenia notesu , aby wyeksportować obiekty wykazu do usługi OneLake. Po zakończeniu tworzenia komórek, ta struktura folderów jest tworzona w pośrednim katalogu wyjściowym.
Krok 2: Importuj metadane do Lakehouse w Fabric
Krok 2 to importowanie rzeczywistych metadanych z pamięci pośredniej do lakehouse w Fabric. W tym kroku mają być migrowane wszystkie metadane HMS (bazy danych, tabele i partycje). Ten proces jest następujący:
2.1) Utwórz skrót w sekcji "Pliki" lakehouse'u. Ten skrót musi wskazywać źródłowy katalog magazynu Spark i jest używany później do zastąpienia tabel zarządzanych przez platformę Spark. Zobacz przykłady skrótów wskazujących do katalogu magazynu Spark.
- Skrócona ścieżka do katalogu magazynu usługi Azure Synapse Spark:
abfss://<container>@<storage_name>.dfs.core.windows.net/synapse/workspaces/<workspace_name>/warehouse - Ścieżka skrótu do katalogu magazynowego usługi Azure Databricks:
dbfs:/mnt/<warehouse_dir> - Ścieżka skrótu do katalogu magazynu HDInsight Spark:
abfss://<container>@<storage_name>.dfs.core.windows.net/apps/spark/warehouse
- Skrócona ścieżka do katalogu magazynu usługi Azure Synapse Spark:
2.2) Zaimportuj notebook importu metadanych HMS do obszaru roboczego Fabric. Zaimportuj ten notatnik, aby zaimportować obiekty bazy danych, tabeli i partycji z magazynu pośredniego. Interfejs API katalogu wewnętrznego platformy Spark jest używany w tym skrypcie do tworzenia obiektów katalogu w Fabric.
2.3) Skonfiguruj parametry w pierwszym poleceniu. Na platformie Apache Spark podczas tworzenia tabeli zarządzanej dane dla tej tabeli są przechowywane w lokalizacji zarządzanej przez platformę Spark, zazwyczaj w katalogu magazynu platformy Spark. Dokładna lokalizacja jest określana przez platformę Spark. Kontrastuje to z tabelami zewnętrznymi, w których określasz lokalizację i zarządzasz bazowymi danymi. Podczas migracji metadanych zarządzanej tabeli (bez przenoszenia rzeczywistych danych) metadane nadal zawierają oryginalne informacje o lokalizacji wskazujące stary katalog magazynu Spark. W związku z tym w przypadku tabel zarządzanych
WarehouseMappingssłuży do zastępowania za pomocą skrótu utworzonego w kroku 2.1. Wszystkie źródłowe tabele zarządzane są konwertowane jako tabele zewnętrzne przy użyciu tego skryptu.LakehouseIdodwołuje się do lakehouse'a utworzonego w kroku 2.1, który zawiera skróty.// 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 = true2.4) Uruchom wszystkie polecenia notesu , aby zaimportować obiekty wykazu ze ścieżki pośredniej.
Uwaga
Podczas importowania wielu baz danych można (i) utworzyć jeden lakehouse na bazę danych (podejście użyte tutaj) lub (ii) przenieść wszystkie tabele z różnych baz danych do pojedynczego lakehouse. W przypadku tych ostatnich wszystkie zmigrowane tabele mogą być <lakehouse>.<db_name>_<table_name>, a należy dostosować notatnik importowy.
Krok 3. Weryfikowanie zawartości
Krok 3 polega na sprawdzeniu, czy metadane zostały pomyślnie zmigrowane. Zobacz różne przykłady.
Zaimportowane bazy danych można zobaczyć, uruchamiając polecenie:
%%sql
SHOW DATABASES
Możesz sprawdzić wszystkie tabele w bazie danych lakehouse, uruchamiając polecenie:
%%sql
SHOW TABLES IN <lakehouse_name>
Szczegóły określonej tabeli można wyświetlić, uruchamiając polecenie:
%%sql
DESCRIBE EXTENDED <lakehouse_name>.<table_name>
Alternatywnie, wszystkie zaimportowane tabele są widoczne w sekcji Tabele UI eksploratora Lakehouse dla każdego lakehouse.
Inne uwagi
- Skalowalność: W tym przypadku rozwiązanie korzysta z wewnętrznego interfejsu API katalogu Spark do importowania/eksportowania, ale nie łączy się bezpośrednio z HMS w celu pobrania obiektów katalogu, więc rozwiązanie nie może dobrze się skalować, jeśli katalog jest duży. Należy zmienić logikę eksportu przy użyciu bazy danych HMS.
- Dokładność danych: Nie ma gwarancji izolacji, co oznacza, że jeśli silnik obliczeniowy Spark równocześnie modyfikuje metastore podczas działania notatnika migracji, niespójne dane mogą być wprowadzane w Lakehouse w Fabric.
Powiązana zawartość
- Fabric vs. Azure Synapse Spark
- Dowiedz się więcej o opcjach migracji dla pul Spark, konfiguracji, bibliotek, notesów i definicji zadań Spark