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 formacie 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 plik 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ć.

entity settings

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

entity format

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

cdm location

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.

CDM sink settings

Uwaga

W przypadku korzystania z 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 jest równa null lub pusta" podczas transformacji źródłowej. Prawdopodobnie wynika to z problemów 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 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

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