Format usługi Common Data Model w usługach Azure Data Factory i Synapse Analytics
DOTYCZY: Azure Data Factory Azure Synapse Analytics
Napiwek
Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !
System metadanych usługi Common Data Model (CDM) umożliwia łatwe udostępnianie danych i ich znaczenia w aplikacjach i procesach biznesowych. Aby dowiedzieć się więcej, zobacz Omówienie usługi Common Data Model .
W potokach usługi Azure Data Factory i Synapse użytkownicy mogą przekształcać dane z jednostek CDM zarówno w model.json, jak i w postaci manifestu przechowywanej w usłudze Azure Data Lake Store Gen2 (ADLS Gen2) przy użyciu przepływów danych mapowania. Dane w formacie CDM można również ujścia przy użyciu odwołań do jednostek CDM, które będą lądować dane w formacie CSV lub Parquet w folderach podzielonych na partycje.
Właściwości przepływu mapowania danych
Model Common Data Model jest dostępny jako wbudowany zestaw danych w przepływach mapowania danych jako źródło i ujście.
Uwaga
Podczas pisania jednostek CDM musisz mieć już zdefiniowaną istniejącą definicję jednostki CDM (schemat metadanych), która będzie używana jako odwołanie. Ujście przepływu danych odczytuje plik jednostki CDM i zaimportuje schemat do ujścia na potrzeby mapowania pól.
Właściwości źródła
W poniższej tabeli wymieniono właściwości obsługiwane przez źródło CDM. Te właściwości można edytować na karcie Opcje źródła.
Nazwa/nazwisko | opis | Wymagania | Dozwolone wartości | Właściwość skryptu przepływu danych |
---|---|---|---|---|
Formatuj | Format musi być następujący: cdm |
tak | cdm |
format |
Format metadanych | Gdzie znajduje się odwołanie do jednostki do danych. W przypadku korzystania z usługi CDM w wersji 1.0 wybierz pozycję Manifest. Jeśli używasz wersji CDM przed wersją 1.0, wybierz model.json. | Tak | 'manifest' lub 'model' |
manifestType |
Lokalizacja główna: kontener | Nazwa kontenera folderu CDM | tak | String | fileSystem |
Lokalizacja główna: ścieżka folderu | Lokalizacja folderu głównego folderu CDM | tak | String | folderPath |
Plik manifestu: ścieżka jednostki | Ścieżka folderu jednostki w folderze głównym | nie | String | entityPath |
Plik manifestu: nazwa manifestu | Nazwa pliku manifestu. Wartość domyślna to "default" | Nie. | String | manifestName |
Filtruj według ostatniej modyfikacji | Wybierz filtrowanie plików w oparciu o czas ich ostatniej zmiany | nie | Sygnatura czasowa | modifiedAfter modifiedBefore |
Połączona usługa schematu | Połączona usługa, w której znajduje się corpus | Tak, jeśli używasz manifestu | 'adlsgen2' lub 'github' |
corpusStore |
Kontener odwołania do jednostek | Corpus kontenera jest w | Tak, jeśli używasz manifestu i korpusu w usłudze ADLS Gen2 | String | adlsgen2_fileSystem |
Repozytorium odwołań do jednostek | Nazwa repozytorium GitHub | Tak, jeśli używasz manifestu i corpus w usłudze GitHub | String | github_repository |
Gałąź odwołania do jednostek | Gałąź repozytorium GitHub | Tak, jeśli używasz manifestu i corpus w usłudze GitHub | String | github_branch |
Folder Corpus | lokalizacja główna korpusu | Tak, jeśli używasz manifestu | String | corpusPath |
Jednostka corpus | Ścieżka do odwołania do jednostki | tak | String | podmiot |
Zezwalaj na brak znalezionych plików | Jeśli wartość true, błąd nie jest zgłaszany, jeśli nie znaleziono żadnych plików | nie | true lub false |
ignoreNoFilesFound |
Podczas wybierania opcji "Odwołanie do jednostki" w przekształceniach Źródło i Ujście można wybrać z tych trzech opcji lokalizacji odwołania do jednostki:
- Lokalnie używa jednostki zdefiniowanej w pliku manifestu, który jest już używany przez usługę
- Niestandardowy monit o wskazanie pliku manifestu jednostki, który różni się od pliku manifestu używanego przez usługę
- Standard będzie używać odwołania do jednostki ze standardowej biblioteki jednostek CDM utrzymywanych w systemie
GitHub
.
Ustawienia ujścia
- Wskaż plik referencyjny jednostki CDM zawierający definicję jednostki, którą chcesz zapisać.
- Zdefiniuj ścieżkę partycji i format plików wyjściowych, których usługa ma używać do zapisywania jednostek.
- Ustaw lokalizację pliku wyjściowego oraz lokalizację i nazwę pliku manifestu.
Importowanie schematu
CdM jest dostępny tylko jako wbudowany zestaw danych i domyślnie nie ma skojarzonego schematu. Aby uzyskać metadane kolumny, kliknij przycisk Importuj schemat na karcie Projekcja . Pozwoli to odwoływać się do nazw kolumn i typów danych określonych przez korpus. Aby zaimportować schemat, sesja debugowania przepływu danych musi być aktywna i musisz mieć istniejący plik definicji jednostki CDM, aby wskazać.
Podczas mapowania kolumn przepływu danych na właściwości jednostki w przekształceniu ujścia kliknij kartę "Mapowanie" i wybierz pozycję "Importuj schemat". Usługa odczytuje odwołanie do jednostki wskazane w opcjach ujścia, co umożliwia mapowanie na docelowy schemat CDM.
Uwaga
W przypadku używania typu źródła model.json pochodzącego z przepływów danych usługi Power BI lub Power Platform mogą wystąpić błędy "ścieżka corpus ma wartość null lub jest pusta" podczas transformacji źródłowej. Jest to prawdopodobnie spowodowane problemami z formatowaniem ścieżki lokalizacji partycji w pliku model.json. Aby rozwiązać ten problem, wykonaj następujące kroki:
- Otwieranie pliku model.json w edytorze tekstów
- Znajdź partycje. Właściwość Location
- Zmień "blob.core.windows.net" na "dfs.core.windows.net"
- Napraw kodowanie "%2F" w adresie URL na "/"
- W przypadku używania Przepływ danych usługi ADF znaki specjalne w ścieżce pliku partycji muszą zostać zastąpione wartościami alfanumerycznymi lub przełączyć się na Przepływ danych usługi Azure Synapse
Przykładowy skrypt przepływu danych źródłowych cdM
source(output(
ProductSizeId as integer,
ProductColor as integer,
CustomerId as string,
Note as string,
LastModifiedDate as timestamp
),
allowSchemaDrift: true,
validateSchema: false,
entity: 'Product.cdm.json/Product',
format: 'cdm',
manifestType: 'manifest',
manifestName: 'ProductManifest',
entityPath: 'Product',
corpusPath: 'Products',
corpusStore: 'adlsgen2',
adlsgen2_fileSystem: 'models',
folderPath: 'ProductData',
fileSystem: 'data') ~> CDMSource
Właściwości ujścia
W poniższej tabeli wymieniono właściwości obsługiwane przez ujście CDM. Te właściwości można edytować na karcie Ustawienia .
Nazwa/nazwisko | opis | Wymagania | Dozwolone wartości | Właściwość skryptu przepływu danych |
---|---|---|---|---|
Formatuj | Format musi być następujący: cdm |
tak | cdm |
format |
Lokalizacja główna: kontener | Nazwa kontenera folderu CDM | tak | String | fileSystem |
Lokalizacja główna: ścieżka folderu | Lokalizacja folderu głównego folderu CDM | tak | String | folderPath |
Plik manifestu: ścieżka jednostki | Ścieżka folderu jednostki w folderze głównym | nie | String | entityPath |
Plik manifestu: nazwa manifestu | Nazwa pliku manifestu. Wartość domyślna to "default" | Nie. | String | manifestName |
Połączona usługa schematu | Połączona usługa, w której znajduje się corpus | tak | 'adlsgen2' lub 'github' |
corpusStore |
Kontener odwołania do jednostek | Corpus kontenera jest w | Tak, jeśli corpus w usłudze ADLS Gen2 | String | adlsgen2_fileSystem |
Repozytorium odwołań do jednostek | Nazwa repozytorium GitHub | Tak, jeśli corpus w usłudze GitHub | String | github_repository |
Gałąź odwołania do jednostek | Gałąź repozytorium GitHub | Tak, jeśli corpus w usłudze GitHub | String | github_branch |
Folder Corpus | lokalizacja główna korpusu | tak | String | corpusPath |
Jednostka corpus | Ścieżka do odwołania do jednostki | tak | String | podmiot |
Ścieżka partycji | Lokalizacja, w której zostanie zapisana partycja | nie | String | partitionPath |
Wyczyść folder | Jeśli folder docelowy zostanie wyczyszczone przed zapisem | nie | true lub false |
truncate |
Typ formatu | Wybierz, aby określić format parquet | nie | parquet jeśli określono |
podformatowanie |
Ogranicznik kolumn | W przypadku zapisywania w obiekcie DelimitedText jak rozdzielić kolumny | Tak, jeśli zapis do tekstu rozdzielanegotekstu | String | columnDelimiter |
Pierwszy wiersz jako nagłówek | Jeśli używasz elementu DelimitedText, czy nazwy kolumn są dodawane jako nagłówek | nie | true lub false |
columnNamesAsHeader |
Przykładowy skrypt przepływu danych ujścia cdM
Skojarzony skrypt przepływu danych to:
CDMSource sink(allowSchemaDrift: true,
validateSchema: false,
entity: 'Product.cdm.json/Product',
format: 'cdm',
entityPath: 'ProductSize',
manifestName: 'ProductSizeManifest',
corpusPath: 'Products',
partitionPath: 'adf',
folderPath: 'ProductSizeData',
fileSystem: 'cdm',
subformat: 'parquet',
corpusStore: 'adlsgen2',
adlsgen2_fileSystem: 'models',
truncate: true,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> CDMSink
Powiązana zawartość
Utwórz przekształcenie źródła w przepływie danych mapowania.