Praca z plikami JSON
Ładowanie danych z plików JSON w Qlik Cloud.
Dane z plików JSON można odczytywać tak jak z każdego innego pliku danych obsługiwanego przez Qlik Cloud. Więcej informacji można znaleźć w temacie Ładowanie danych z plików.
Można także załadować dane z pliku JSON w skrypcie ładowania danych za pomocą polecenia LOAD. Na przykład:
Więcej informacji zawiera temat Load.
Instrukcje LOAD mogą filtrować lub zmieniać kolejność pól, wymieniając żądane na liście pól zamiast używać symboli wieloznacznych. Na przykład: LOAD a.b, b.c FROM […] (json);. Nieistniejące pola nie spowodują błędu.
Ładowanie zagnieżdżonych obiektów z JSON
Jeśli wartość jest obiektem, wówczas członkowie tego obiektu są używani do rozszerzenia tabeli o dodatkowe pola. Każda nazwa pola jest kombinacją elementu nadrzędnego i podrzędnego. Na przykład JSON poniżej zawiera zagnieżdżone obiekty:
[
{"name":{"first":"Alice","last":"Stephenson"}},
{"name":{"first":"Bob"}},
{"name":{"last":"Roberts"}}
]
Po załadowaniu przy użyciu LOAD * FROM [lib://DataFiles/example.json] (json); wynikiem jest poniższa tabela danych:
name.first | name.last |
---|---|
Alice | Stephenson |
Bob | null |
null | Roberts |
Ładowanie wielu tabel
Dane JSON z tablicami muszą być ładowane przy użyciu wielu instrukcji LOAD. Zawartość tablicy jest hashowana i używana jako klucz do łączenia tabel.
Na przykład JSON poniżej zawiera wiele tabel.
[
{"a":[1,2],"b":[3,4]},
{"a":[2,3],"b":[4,5]}
]
Wymagałoby to załadowania za pomocą następującej instrukcji LOAD:
Określnik table is jest ścieżką do iteratora dla tabeli podrzędnej. Wynikiem tego są poniższe tabele danych:
%Key_a | %Key_b |
---|---|
<hash z [1,2]> | <hash z [3,5]> |
<hash z [2,3]> | <hash z [4,5]> |
%Key_a | a..@1 |
---|---|
<hash z [1,2]> | 1 |
<hash z [1,2]> | 2 |
<hash z [2,3]> | 2 |
<hash z [2,3]> | 3 |
%Key_b | b..@1 |
---|---|
<hash z [3,5]> | 3 |
<hash z [3,5]> | 4 |
<hash z [4,5]> | 4 |
<hash z [4,5]> | 5 |
Jeśli dane zawierają wiele tablic o identycznej zawartości, należy użyć słowa kluczowego DISTINCT w instrukcjach ładowania tabeli podrzędnej. Na przykład: LOAD DISTINCT * FROM [lib://DataFiles/Sales.json] (json, all tables);
Zaglądanie do tablic
Listy pól można używać podczas ładowania danych, aby zaglądać do tablic, które w przeciwnym razie zostałyby załadowane jako tabele podrzędne. Na przykład
[
{"pos":[1,2,3]},
{"pos":[4,5,6]}
]
To można załadować za pomocą następującej instrukcji LOAD:
Wynikiem tego jest następująca tabela.
x | y | z |
---|---|---|
1 | 2 | 3 |
4 | 5 | 6 |
Ładowanie wszystkich tabel
Możesz załadować wszystkie tabele, określając all tables zamiast Table is. Na przykład:
Ograniczenia
Pliki JSON mają następujące ograniczenia:
-
Pojedyncza instrukcja LOAD z JSON może ładować maksimum z poniższych:
-
5000 pól
-
1000 tabel
-