Otwieranie wymagań i formatu strefy docelowej dublowania
W tym artykule szczegółowo przedstawiono wymagania dotyczące operacji strefy docelowej i tabeli/kolumny dotyczące otwierania dublowania w usłudze Microsoft Fabric.
Ważne
Ta funkcja jest dostępna w wersji zapoznawczej.
Po utworzeniu otwartej dublowanej bazy danych za pośrednictwem portalu sieci szkieletowej lub publicznego interfejsu API w obszarze roboczym usługi Fabric otrzymasz adres URL strefy docelowej w usłudze OneLake na stronie głównej elementu dublowanej bazy danych. Ta strefa docelowa to miejsce, w którym aplikacja tworzy plik metadanych i dane lądowe w formacie Parquet (nieskompresowany, Snappy, GZIP, ZSTD).
Strefa docelowa
Dla każdej dublowanej bazy danych istnieje unikatowa lokalizacja magazynu w usłudze OneLake dla metadanych i tabel różnicowych. Otwieranie dublowania udostępnia folder strefy docelowej dla aplikacji w celu utworzenia pliku metadanych i wypychania danych do usługi OneLake. Dublowanie monitoruje te pliki w strefie docelowej i odczytuje folder dla nowych tabel i dodanych danych.
Jeśli na przykład masz tabele (Table A
, Table B
, Table C
), które mają zostać utworzone w strefie docelowej, utwórz foldery podobne do następujących adresów URL:
https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/LandingZone/TableA
https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/LandingZone/TableB
https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/LandingZone/TableC
Plik metadanych w strefie docelowej
Każdy folder tabeli musi zawierać _metadata.json
plik.
Ten plik metadanych tabeli zawiera rekord JSON, który obecnie określa tylko unikatowe kolumny klucza jako keyColumns
.
Aby na przykład zadeklarować kolumny C1
i C2
jako unikatowy klucz złożony dla tabeli:
{
"keyColumns" : ["C1", "C2"]
}
Jeśli keyColumns
lub _metadata.json
nie zostanie określony, aktualizacja/usunięcie nie są możliwe. Ten plik można dodać w dowolnym momencie, ale po dodaniu keyColumns
nie można go zmienić.
Plik danych i format w strefie docelowej
Funkcja otwórz dublowanie obsługuje format pliku strefy docelowej Parquet z kompresją lub bez kompresji. Obsługiwane formaty kompresji to Snappy, GZIP i ZSTD.
Wszystkie pliki Parquet zapisane w strefie docelowej mają następujący format:
<RowMarker><DataColumns>
RowMarker
: nazwa kolumny to__rowMarker__
(w tym dwa podkreślenia przed i porowMarker
).RowMaker
Wartości:0
dla insert1
dla aktualizacji2
w przypadku usuwania4
dla operacji UPSERT
Kolejność wierszy: wszystkie dzienniki w pliku powinny być w naturalnej kolejności, zgodnie z zastosowaniem transakcji. Jest to ważne w przypadku tego samego wiersza aktualizowanego wiele razy. Otwieranie dublowania stosuje zmiany przy użyciu kolejności w plikach.
Kolejność plików: pliki powinny być dodawane w monotonicznie rosnącej liczbie.
Nazwa pliku: Nazwa pliku to 20 cyfr, na przykład
00000000000000000001.parquet
dla pierwszego pliku, a00000000000000000002.parquet
drugi. Nazwy plików powinny być w liczbach ciągłych. Pliki zostaną usunięte automatycznie przez usługę dublowania, ale ostatni plik zostanie pozostawiony, aby system wydawcy mógł odwoływać się do niego w celu dodania następnego pliku w sekwencji.
Ładowanie początkowe
W przypadku początkowego ładowania danych do otwartej dublowanej bazy danych wszystkie wiersze powinny mieć wartość INSERT jako znacznik wiersza. Bez RowMarker
danych w pliku dublowanie traktuje cały plik jako INSERT.
Zmiany przyrostowe
Otwieranie funkcji dublowania odczytuje przyrostowe zmiany w kolejności i stosuje je do docelowej tabeli delty. Kolejność jest niejawna w dzienniku zmian i w kolejności plików.
Zaktualizowane wiersze muszą zawierać pełne dane wierszy ze wszystkimi kolumnami.
Oto kilka przykładowych danych parquet historii wierszy, aby zmienić EmployeeLocation
wartość dla EmployeeID
E0001 z Redmond na Bellevue. W tym scenariuszu kolumna EmployeeID
została oznaczona jako kolumna klucza w pliku metadanych w strefie docelowej.
__rowMarker__,EmployeeID,EmployeeLocation
0,E0001,Redmond
0,E0002,Redmond
0,E0003,Redmond
1,E0001,Bellevue
Jeśli kolumny kluczy zostaną zaktualizowane, powinien zostać wyświetlony przez polecenie DELETE w poprzednich kolumnach kluczy i wiersze INSERT z nowym kluczem i danymi. Na przykład historia wierszy, aby zmienić RowMarker
unikatowy identyfikator E0001 EmployeeID
na E0002. Nie musisz podawać wszystkich danych kolumn dla wiersza DELETE, tylko kolumn kluczy.
__rowMarker__,EmployeeID,EmployeeLocation
0,E0001,Bellevue
2,E0001,NULL
0,E0002,Bellevue
Operacje na tabelach
Funkcja otwierania dublowania obsługuje operacje tabel, takie jak dodawanie, usuwanie i zmienianie nazw tabel.
Dodaj tabelę
Otwieranie funkcji dublowania pobiera dowolną tabelę dodaną do strefy docelowej przez aplikację. Otwórz skanowanie dublowania dla nowych tabel w każdej iteracji.
Upuść tabelę
Otwieranie dublowania śledzi nazwę folderu. Jeśli folder tabeli zostanie usunięty, otwórz dublowanie pomiń tabelę w dublowanej bazie danych.
Jeśli folder zostanie utworzony ponownie, otwórz dublowanie pomiń tabelę i ponownie utworzy ją przy użyciu nowych danych w folderze, wykonując śledzenie elementu ETag dla folderu.
Podczas próby usunięcia tabeli możesz spróbować usunąć folder, ale istnieje prawdopodobieństwo, że otwieranie dublowania nadal używa danych z folderu, powodując niepowodzenie usuwania dla wydawcy.
Zmienianie nazwy tabeli
Aby zmienić nazwę tabeli, upuść i ponownie utwórz folder przy użyciu danych początkowych i przyrostowych. Dane muszą być ponownie wypełniane do zmienionej tabeli.
Schemat
Ścieżkę tabeli można określić w folderze schematu. Strefa docelowa <schemaname>.schema
schematu powinna mieć nazwę folderu. Może istnieć wiele schematów i może istnieć wiele tabel w schemacie.
Jeśli na przykład masz schematy (, Schema2
) i tabele (Table A
Schema1
, Table B
, Table C
), które mają zostać utworzone w strefie docelowej, utwórz foldery podobne do następujących ścieżek w usłudze OneLake:
https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/LandingZone/Schema1.schema/TableA
https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/LandingZone/Schema1.schema/TableB
https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/LandingZone/Schema2.schema/TableC
Kolumny tabeli i operacje kolumn
Typy kolumn
- Proste typy parquet są obsługiwane w strefie docelowej.
- Typy złożone powinny być zapisywane jako ciąg JSON.
- Typy złożone binarne, takie jak geografia, obrazy itp., mogą być przechowywane jako typ binarny w strefie docelowej.
Dodaj kolumnę
Jeśli nowe kolumny są dodawane do plików parquet, otwórz dublowanie dodaje kolumny do tabel różnicowych.
Usuń kolumnę
Jeśli kolumna zostanie porzucona z nowych plików dziennika, otwórz magazyny NULL
dublowania dla tych kolumn w nowych wierszach, a stare wiersze mają kolumny obecne w danych. Aby usunąć kolumnę, usuń tabelę i ponownie utwórz folder tabeli w strefie docelowej, co spowoduje odtworzenie tabeli delty z nowym schematem i danymi.
Otwarte dublowanie zawsze składa wszystkie kolumny z poprzedniej wersji dodanych danych. Aby usunąć kolumnę, utwórz ponownie tabelę/folder.
Zmienianie typu kolumny
Aby zmienić typ kolumny, upuść i ponownie utwórz folder z początkowymi i przyrostowymi danymi o nowym typie kolumny. Podanie nowego typu kolumny bez ponownego utworzenia tabeli powoduje wystąpienie błędu, a replikacja dla tej tabeli zostanie zatrzymana. Po ponownym utworzeniu folderu tabeli replikacja zostanie wznowiona przy użyciu nowych danych i schematu.
Zmienianie nazwy kolumny
Aby zmienić nazwę kolumny, usuń folder tabeli i ponownie utwórz folder ze wszystkimi danymi i nową nazwą kolumny.