Format XML w potokach usług 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ą !

Postępuj zgodnie z tym artykułem, gdy chcesz przeanalizować pliki XML.

Format XML jest obsługiwany dla następujących łączników: Amazon S3, Amazon S3 Compatible Storage, Azure Blob, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure Files, File System, FTP, Google Cloud Storage, HDFS, HTTP, Oracle Cloud Storage i SFTP. Jest obsługiwany jako źródło, ale nie ujście.

Właściwości zestawu danych

Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania zestawów danych, zobacz artykuł Zestawy danych. Ta sekcja zawiera listę właściwości obsługiwanych przez zestaw danych XML.

Właściwości Opis Wymagania
type Właściwość type zestawu danych musi być ustawiona na Xml. Tak
lokalizacja Ustawienia lokalizacji plików. Każdy łącznik oparty na plikach ma własny typ lokalizacji i obsługiwane właściwości w obszarze location. Zobacz szczegóły w artykule dotyczącym łącznika —> sekcja Właściwości zestawu danych. Tak
encodingName Typ kodowania używany do odczytu/zapisu plików testowych.
Dozwolone wartości są następujące: "UTF-8", "UTF-16", "UTF-16BE", "UTF-32", "UTF-32BE", "US-ASCII", "UTF-7", "BIG5", "EUC-JP", "EUC-KR", "GB2312", "GB18030", "JOHAB", "SHIFT-JIS", "CP875", "CP866", "IBM00858", "IBM037", "IBM273", "IBM437", "IBM500", "IBM737", "IBM775", "IBM775", "IBM850", "IBM852", "IBM855", "IBM857", "IBM860", "IBM861", "IBM863", "IBM864", "IBM865", "IBM869", "IBM869", "IBM869"70", "IBM01140", "IBM01141", "IBM01142", "IBM01143", "IBM01144", "IBM01145", "IBM01146", "IBM01147", "IBM01148", "IBM01149", "ISO-2022-JP", "ISO-2022-KR", "ISO-8859-1", "ISO-8859-2", "ISO-8859-3", "ISO-8859-4", "ISO-8859-5", "ISO-8859-6", "ISO-8859-7", "ISO-8859-8", "ISO-8859-9", "ISO-8859-13", "ISO-8859-15", "WINDOWS-874", "WINDOWS-1250", "WINDOWS-1251", "WINDOWS-1252", "WINDOWS-1252", "WINDOWS-1252"1253", "WINDOWS-1254", "WINDOWS-1255", "WINDOWS-1256", "WINDOWS-1257", "WINDOWS-1258".
Nie.
nullValue Określa ciąg reprezentujący wartość null.
Wartość domyślna to pusty ciąg.
Nie.
kompresja Grupa właściwości do skonfigurowania kompresji pliku. Skonfiguruj tę sekcję, gdy chcesz wykonać kompresję/dekompresję podczas wykonywania działań. Nie.
type
(w obszarze compression)
Koder koder kompresji używany do odczytu/zapisu plików XML.
Dozwolone wartości to bzip2, gzip, deflate, ZipDeflate, TarGzip, Tar, Snappy lub lz4. Wartość domyślna nie jest kompresowana.
Uwaga obecnie działanie Kopiuj nie obsługuje "snappy" i "lz4", a przepływ danych mapowania nie obsługuje "ZipDeflate", "TarGzip" i "Tar".
Uwaga podczas używania działania kopiowania do dekompresowania plików TarDeflate/TarGzip/ i zapisu w magazynie danych ujścia opartego na plikach pliki domyślnie pliki są wyodrębniane do folderu:<path specified in dataset>/<folder named as source compressed file>/ użyj/preserveCompressionFileNameAsFolderpreserveZipFileNameAsFolderźródła działania kopiowania, aby kontrolować, czy zachować nazwę skompresowanych plików jako struktury folderów.
L.p.
poziom
(w obszarze compression)
Współczynnik kompresji.
Dozwolone wartości są optymalne lub najszybsze.
- Najszybsza: operacja kompresji powinna zostać ukończona tak szybko, jak to możliwe, nawet jeśli wynikowy plik nie jest optymalnie skompresowany.
- Optymalna: operacja kompresji powinna być optymalnie skompresowana, nawet jeśli operacja trwa dłużej. Aby uzyskać więcej informacji, zobacz Temat Poziom kompresji.
Nie.

Poniżej przedstawiono przykład zestawu danych XML w usłudze Azure Blob Storage:

{
    "name": "XMLDataset",
    "properties": {
        "type": "Xml",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder",
            },
            "compression": {
                "type": "ZipDeflate"
            }
        }
    }
}

Właściwości działania kopiowania

Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania działań, zobacz artykuł Pipelines (Potoki ). Ta sekcja zawiera listę właściwości obsługiwanych przez źródło XML.

Dowiedz się, jak mapować dane XML i magazyn danych ujścia/format z mapowania schematu. Podczas wyświetlania podglądu plików XML dane są wyświetlane z hierarchią JSON, a ścieżka JSON służy do wskazywania pól.

XML jako źródło

Następujące właściwości są obsługiwane w sekcji działanie kopiowania *źródło* . Dowiedz się więcej na temat zachowania łącznika XML.

Właściwości Opis Wymagania
type Właściwość type źródła działania kopiowania musi być ustawiona na Wartość XmlSource. Tak
format Ustawienia Grupa właściwości. Zapoznaj się z poniższą tabelą ustawień odczytu XML. Nie.
store Ustawienia Grupa właściwości dotyczących odczytywania danych z magazynu danych. Każdy łącznik oparty na plikach ma własne obsługiwane ustawienia odczytu w obszarze storeSettings. Zobacz szczegóły w artykule dotyczącym łącznika —> sekcja właściwości działanie Kopiuj. Nie.

Obsługiwane ustawienia odczytu XML w obszarze formatSettings:

Właściwości Opis Wymagania
type Typ formatu Ustawienia musi być ustawiony na Wartość XmlRead Ustawienia. Tak
validationMode Określa, czy należy zweryfikować schemat XML.
Dozwolone wartości to brak (wartość domyślna, brak walidacji), xsd (weryfikowanie przy użyciu XSD), dtd (weryfikowanie przy użyciu dtD).
Nie.
Obszary nazw Czy włączyć przestrzeń nazw podczas analizowania plików XML. Dozwolone wartości to: true (wartość domyślna), false. Nie.
namespacePrefixes Identyfikator URI przestrzeni nazw do mapowania prefiksu, który służy do nazywania pól podczas analizowania pliku XML.
Jeśli plik XML ma przestrzeń nazw, a przestrzeń nazw jest domyślnie włączona, nazwa pola jest taka sama jak w dokumencie XML.
Jeśli na tej mapie istnieje element zdefiniowany dla identyfikatora URI przestrzeni nazw, nazwa pola to prefix:fieldName.
Nie.
detectDataType Czy wykrywać typy danych liczb całkowitych, podwójnych i logicznych. Dozwolone wartości to: true (wartość domyślna), false. Nie.
compressionProperties Grupa właściwości dotyczących dekompresowania danych dla danego koder-dekodera kompresji. Nie.
preserveZipFileNameAsFolder
(pod compressionProperties->type jako ZipDeflateReadSettings)
Dotyczy konfiguracji wejściowego zestawu danych z kompresją ZipDeflate . Wskazuje, czy podczas kopiowania zachować nazwę źródłowego pliku zip jako strukturę folderów.
— W przypadku ustawienia wartości true (wartość domyślna) usługa zapisuje rozpakowane pliki na wartość <path specified in dataset>/<folder named as source zip file>/.
— Po ustawieniu wartości false usługa zapisuje rozpakowane pliki bezpośrednio do .<path specified in dataset> Upewnij się, że nie masz zduplikowanych nazw plików w różnych źródłowych plikach zip, aby uniknąć wyścigów ani nieoczekiwanych zachowań.
Nie.
preserveCompressionFileNameAsFolder
(w obszarze compressionProperties->type jako TarGZipReadSettings lub TarReadSettings)
Ma zastosowanie w przypadku skonfigurowania wejściowego zestawu danych z kompresją TarGzip/Tar. Wskazuje, czy podczas kopiowania zachować nazwę skompresowanego pliku źródłowego jako strukturę folderów.
— W przypadku ustawienia wartości true (wartość domyślna) usługa zapisuje dekompresowane pliki na wartość <path specified in dataset>/<folder named as source compressed file>/.
- W przypadku ustawienia wartości false usługa zapisuje dekompresowane pliki bezpośrednio do <path specified in dataset>. Upewnij się, że nie masz zduplikowanych nazw plików w różnych plikach źródłowych, aby uniknąć wyścigów ani nieoczekiwanych zachowań.
Nie.

Właściwości przepływu mapowania danych

W przepływach mapowania danych można odczytać format XML w następujących magazynach danych: Azure Blob Storage, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Amazon S3 i SFTP. Możesz wskazać pliki XML przy użyciu zestawu danych XML lub wbudowanego zestawu danych.

Właściwości źródła

W poniższej tabeli wymieniono właściwości obsługiwane przez źródło XML. Te właściwości można edytować na karcie Opcje źródła. Dowiedz się więcej na temat zachowania łącznika XML. W przypadku korzystania z wbudowanego zestawu danych zostaną wyświetlone dodatkowe ustawienia pliku, które są takie same jak właściwości opisane w sekcji właściwości zestawu danych.

Nazwa/nazwisko opis Wymagania Dozwolone wartości Właściwość skryptu przepływu danych
Ścieżki z symbolami wieloznacznymi Wszystkie pliki pasujące do ścieżki wieloznacznej zostaną przetworzone. Zastępuje folder i ścieżkę pliku ustawioną w zestawie danych. Nie. Ciąg[] symbole wieloznacznePaths
Ścieżka główna partycji W przypadku danych plików podzielonych na partycje można wprowadzić ścieżkę katalogu głównego partycji, aby odczytywać foldery podzielone na partycje jako kolumny Nie. String partitionRootPath
Lista plików Czy źródło wskazuje plik tekstowy, który wyświetla listę plików do przetworzenia Nie. true lub false Filelist
Kolumna do przechowywania nazwy pliku Utwórz nową kolumnę z nazwą pliku źródłowego i ścieżką Nie. String rowUrlColumn
Po zakończeniu Usuń lub przenieś pliki po przetworzeniu. Ścieżka pliku rozpoczyna się od katalogu głównego kontenera Nie. Usuń: true lub false
Przenieść: ['<from>', '<to>']
przeczyszczanie plików
moveFiles
Filtruj według ostatniej modyfikacji Wybierz filtrowanie plików w oparciu o czas ich ostatniej zmiany Nie. Sygnatura czasowa Modifiedafter
Modifiedbefore
Tryb weryfikacji Określa, czy należy zweryfikować schemat XML. Nie. None (ustawienie domyślne, brak walidacji)
xsd (Waliduj przy użyciu XSD)
dtd (Zweryfikuj przy użyciu dtD).
validationMode
Przestrzenie nazw Czy włączyć przestrzeń nazw podczas analizowania plików XML. Nie. true (wartość domyślna) lub false Obszary nazw
Pary prefiksów przestrzeni nazw Identyfikator URI przestrzeni nazw do mapowania prefiksu, który służy do nazywania pól podczas analizowania pliku XML.
Jeśli plik XML ma przestrzeń nazw, a przestrzeń nazw jest domyślnie włączona, nazwa pola jest taka sama jak w dokumencie XML.
Jeśli na tej mapie istnieje element zdefiniowany dla identyfikatora URI przestrzeni nazw, nazwa pola to prefix:fieldName.
Nie. Tablica ze wzorcem['URI1'->'prefix1','URI2'->'prefix2'] namespacePrefixes
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

Przykładowy skrypt źródłowy XML

Poniższy skrypt jest przykładem konfiguracji źródła XML w przepływach mapowania danych przy użyciu trybu zestawu danych.

source(allowSchemaDrift: true,
    validateSchema: false,
    validationMode: 'xsd',
    namespaces: true) ~> XMLSource

Poniższy skrypt jest przykładem konfiguracji źródła XML przy użyciu wbudowanego trybu zestawu danych.

source(allowSchemaDrift: true,
    validateSchema: false,
    format: 'xml',
    fileSystem: 'filesystem',
    folderPath: 'folder',
    validationMode: 'xsd',
    namespaces: true) ~> XMLSource

Zachowanie łącznika XML

Podczas używania kodu XML jako źródła należy pamiętać o następujących kwestiach.

  • Atrybuty XML:

    • Atrybuty elementu są analizowane jako podpola elementu w hierarchii.
    • Nazwa pola atrybutu jest zgodna ze wzorcem @attributeName.
  • Walidacja schematu XML:

    • Możesz nie zweryfikować schematu lub zweryfikować schemat przy użyciu XSD lub DTD.
    • W przypadku używania XSD lub DTD do sprawdzania poprawności plików XML, XSD/DTD musi być odwoływanych wewnątrz plików XML za pośrednictwem ścieżki względnej.
  • Obsługa przestrzeni nazw:

    • Przestrzeń nazw można wyłączyć podczas korzystania z przepływu danych, w takim przypadku atrybuty definiujące przestrzeń nazw będą analizowane jako atrybuty normalne.
    • Po włączeniu przestrzeni nazw nazwy elementu i atrybutów są zgodne ze wzorcem namespaceUri,elementName i namespaceUri,@attributeName domyślnie. Prefiks przestrzeni nazw można zdefiniować dla każdego identyfikatora URI przestrzeni nazw w źródle. W tym przypadku nazwy elementu i atrybutów są zgodne ze wzorcem definedPrefix:elementName lub definedPrefix:@attributeName zamiast tego.
  • Kolumna wartości:

    • Jeśli element XML ma zarówno prostą wartość tekstową, jak i atrybuty/elementy podrzędne, prosta wartość tekstowa jest analizowana jako wartość "kolumny wartości" z wbudowaną nazwą _value_pola . I dziedziczy przestrzeń nazw elementu, jak również, jeśli ma zastosowanie.