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/preserveCompressionFileNameAsFolder preserveZipFileNameAsFolder ź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 |
formatUstawienia | Grupa właściwości. Zapoznaj się z poniższą tabelą ustawień odczytu XML. | Nie. |
storeSettings | 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 formatUstawienia musi być ustawiony na Wartość XmlReadSettings. | 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. |
przestrzenie 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 Ruszać: ['<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 |
przestrzenie 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
inamespaceUri,@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 wzorcemdefinedPrefix:elementName
lubdefinedPrefix:@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.
- 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ą