format Common Data Model w usługach Azure Data Factory i Synapse Analytics

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Data Factory w usłudze Microsoft Fabric jest następną generacją Azure Data Factory z prostszą architekturą, wbudowaną sztuczną inteligencją i nowymi funkcjami. Jeśli dopiero zaczynasz integrować dane, zacznij od Fabric Data Factory. Istniejące obciążenia usługi ADF można uaktualnić do Fabric, aby uzyskać dostęp do nowych funkcji w nauce o danych, analizie w czasie rzeczywistym i raportowaniu.

System metadanych 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 Common Data Model.

W potokach Azure Data Factory i Synapse użytkownicy mogą przekształcać dane z jednostek CDM w postaci model.json i 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

Common Data Model jest dostępny jako zestaw danych inline w przepływach danych mapowania zarówno jako źródła, jak i ujścia.

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.

Uwaga

W przypadku korzystania z modelu CDM ze zmianą przechwytywania danych (CDC) w przepływach danych aktualizacje są wykrywane przy użyciu opartego na plikach podejścia CDC opartego na plikach sterowanego ostatnio zmodyfikowanymi znacznikami czasu.

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 korpusu w GitHub String github_repository
Gałąź odwołania do jednostek gałąź repozytorium GitHub Tak, jeśli używasz manifestu i korpusu w 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 jednostka
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 GitHub.

Ustawienia ujścia

  • Wskaż plik referencyjny jednostki CDM zawierający definicję jednostki, którą chcesz zapisać.

ustawienia jednostki

  • Zdefiniuj ścieżkę partycji i format plików wyjściowych, których usługa ma używać do zapisywania jednostek.

format jednostki

  • Ustaw lokalizację pliku wyjściowego oraz lokalizację i nazwę pliku manifestu.

lokalizacja cdm

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.

Ustawienia ujścia CDM

Uwaga

W przypadku używania typu źródła model.json pochodzącego z przepływów danych Power BI lub Power Platform mogą wystąpić błędy "ścieżka corpus jest równa null lub 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:

  1. Otwieranie pliku model.json w edytorze tekstów
  2. Znajdź partycje. Właściwość Location
  3. Zmień "blob.core.windows.net" na "dfs.core.windows.net"
  4. Napraw kodowanie "%2F" w adresie URL na "/"
  5. W przypadku korzystania z przepływów danych usługi ADF znaki specjalne w ścieżce pliku partycji muszą zostać zastąpione wartościami alfanumerycznymi lub przełączyć się na Azure Synapse Przepływy danych

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 GitHub String github_repository
Gałąź odwołania do jednostek gałąź repozytorium GitHub Tak, jeśli corpus w GitHub String github_branch
Folder Corpus lokalizacja główna korpusu tak String corpusPath
Jednostka corpus Ścieżka do odwołania do jednostki tak String jednostka
Ś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 obcinać
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

Utwórz przekształcenie źródła w przepływie danych mapowania.