Wpisz dane ręcznie do skryptu, aby zdefiniować tabelę wbudowaną, którą można załadować do aplikacji. Nad ładowaniami wbudowanymi można pracować w narzędziach Edytor ładowania danych i Skrypt.
Tabele wbudowane tworzy się, wpisując dane ręcznie do skryptu, zamiast łączyć się z plikami i bazami danych. Użyj wymaganej składni, aby wskazać, że tekst skryptu ma być interpretowany jako dane wbudowane. Dane dodane przy użyciu ładowania wbudowanego będą zawarte w aplikacji, jeśli aplikacja zostanie wyeksportowana. Tabele wbudowane można odczytywać i edytować w skrypcie ładowania.
Podstawowe ładowanie wbudowane tworzy tabelę i wstawia pola danych oraz rekordy.
Podstawowy przykład składni
Poniższy skrypt zawiera proste ładowanie wbudowane.
Ładowania wbudowane mogą być pomocne w wielu zastosowaniach:
Administrowanie i edytowanie danych bez konieczności łączenia się ze źródłami zewnętrznymi.
Uzupełnianie istniejących danych w modelu danych. Można na przykład dodać dodatkową tabelę do modelu danych, która pochodzi głównie ze źródeł baz danych.
Dodawanie danych, których chcesz uniknąć ciągłego ładowania ze źródeł zewnętrznych. Może to zaoszczędzić czas, jeśli wiesz, że źródło danych może w przyszłości ulec zmianie, ale wartości danych pozostaną takie same.
Łatwość kopiowania i wklejania zawartości do skryptu z innych plików. Na przykład plików .csv lub tabel z dokumentów edytora tekstu.
Tworzenie skryptów testowych, które można szybko kopiować i wklejać.
Przegląd składni
Nazywanie tabeli
Tabeli wbudowanej, tak jak w przypadku innych ładowanych tabel, można nadać nazwę. Zdefiniowanie nazwy tabeli jest opcjonalne.
Po nazwie tabeli wstaw dwukropek.
Instrukcje LOAD i inline
Tabela wbudowana jest ładowana przy użyciu klauzuli inline, gdy używasz instrukcji skryptu LOAD. Klauzula inline wskazuje, że kolejny tekst w tabeli będzie zawierał dane, które zostaną ręcznie wpisane do edytora. O ile nie wskazano inaczej, tabela wbudowana korzysta z formatu txt zgodnego ze strukturą rozdzielanego pliku tekstowego.
Więcej informacji o instrukcji LOAD zawiera temat Load.
Znaki do ujmowania danych i wprowadzanie danych
Dane wprowadzane przez klauzulę inline muszą być ujęte w określone znaki. Dopuszczalne kombinacje znaków do ujmowania danych:
Nawiasy kwadratowe: [ oraz ]
Podwójny cudzysłów: " oraz "
Pojedynczy cudzysłów: ' oraz '
Grawisy: ` oraz `
Znak wybrany do ujmowania danych może pomóc w ładowaniu danych wbudowanych zawierających znaki, które powodują konflikty. Jeżeli na przykład Twoje dane zawierają rekordy ujęte w nawiasy kwadratowe, możesz zamiast tego ująć je w cudzysłów lub grawisy.
Jeżeli nie określisz alternatywnego formatu tabeli (domyślnie jest to txt), tekst pomiędzy znakami do ujmowania danych będzie interpretowany tak samo jak zawartość pliku. W związku z tym w tekście klauzuli inline należy wstawiać nowe wiersze w tych samych miejscach, w których występowałyby w pliku tekstowym, naciskając klawisz Enter podczas wpisywania skryptu.
Kończenie ładowania wbudowanego
Koniec instrukcji ładowania wbudowanego jest oznaczany średnikiem.
Transformacje danych
W prostym ładowaniu wbudowanym bez transformacji liczba kolumn jest określona w pierwszym wierszu. W tabeli ładowanej w następującym przykładzie są trzy kolumny: Product_ID, Supplier_Name i Product_Category.
Możesz także wykonywać przekształcenia i tworzyć nowe kolumny w tej samej tabeli wbudowanej. Można użyć poprzedzających ładowań, a do załadowania tej samej tabeli można użyć więcej niż jednej instrukcji LOAD.
Konfigurowanie specyfikacji formatu w ładowaniu wbudowanym
Podobnie jak w przypadku innych ładowanych tabel, specyfikację formatu tabeli wbudowanej można modyfikować za pomocą elementów specyfikacji formatu. Specyfikacja formatu jest dodawana w nawiasach. Należy ją dodać po znakach do ujmowania danych, ale przed średnikiem kończącym instrukcję LOAD. Dodać można między innymi następujące dostosowania:
Ponadto, ponieważ ładowanie wbudowane jest instrukcją LOAD, możesz połączyć inne argumenty instrukcji LOAD w ładowaniu wbudowanym. Na przykład użyj klauzuli where lub while, aby określić, czy załadować określony wiersz, czy nie, na podstawie zawartego w nim tekstu.
Podobnie możesz używać operatorów poza samą treścią tekstową. Dzięki operatorom możesz dostosować sposób przekształcania danych wbudowanych, a także określić, kiedy ładować określone dane, a kiedy nie.
Aby ująć ładowanie wbudowane, możesz użyć nawiasów kwadratowych, cudzysłowów lub grawisów. W tej sekcji zilustrowano to na przykładzie. Więcej informacji zawiera temat Znaki do ujmowania danych i wprowadzanie danych.
Ten przykład pokazuje, jak można użyć grawisów do ujęcia danych wbudowanych. Dane w przykładzie zawierają nawiasy kwadratowe, co powoduje, że nawiasy kwadratowe nie są kompatybilne jako znaki do ujmowania danych w instrukcji LOAD .
Przegląd
Otwórz Edytor ładowania danych i dodaj następujący skrypt ładowania do nowej karty.
Zamiana ogranicznika jest przydatna, gdy dane w tabeli zawierają przecinki, które w przeciwnym razie sygnalizowałyby przejście do następnej kolumny w tabeli.
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Cztery tabele do załadowania. Są to:
Table1: ogranicznik to kreska pionowa. Dane w kolumnie Phrase zawierają przecinki.
Table2: ogranicznikiem jest dwukropek.
Table3: ogranicznikiem jest ukośnik odwrotny.
Table4: tabela jest rozdzielana przez naciśnięcie klawisza Tab na klawiaturze. Ta opcja jest przydatna podczas kopiowania tabeli z edytora tekstu i wklejania jej do skryptu.
Table1 przedstawia praktyczne zastosowanie alternatywnego ogranicznika. Pozostałe tabele pokazują więcej opcji ograniczników.
Skrypt ładowania
Table1:
LOAD * INLINE [
ID|Phrase
1 | 'The transaction was complete, but the order has not yet shipped.'
2 | 'We need to confirm the following details: sales rep number, order status, and shipping priority.'
] (Delimiter is '|');
Table2:
LOAD * INLINE [
Num1:Chr1
1:A
2:B ] (Delimiter is ':');
Table3:
LOAD * INLINE [
Num2\Chr2
1\A
2\B ] (Delimiter is \\);
Table4:
LOAD * INLINE [
Num3 Chr3
1 A
2 B ] (Delimiter is '\t');
Wyniki
Załaduj dane i otwórz arkusz. Utwórz cztery tabele i dodaj do nich wymiary następująco:
Table1: ID, Phrase
Table2: Num1, Chr1
Table3: Num2, Chr2
Table4: Num3, Chr3
Tabela wyników: Table1
ID
Phrase
1
The transaction was complete, but the order has not yet shipped.
2
We need to confirm the following details: sales rep number, order status, and shipping priority.
Tabela wyników: Table2
Num1
Chr1
1
A
2
B
Tabela wyników: Table3
Num2
Chr2
1
A
2
B
Tabela wyników: Table4
Num3
Chr3
1
A
2
B
Przykład — mieszanie wbudowanych ładowań i ładowań z innych źródeł danych
Przegląd
Poniższy skrypt najpierw ładuje serię pól z łącznika, a następnie ładuje tabelę wbudowaną ze wspólnym polem i dodatkowym polem. To nowe pole udostępnia inną właściwość dotyczącą elementu wiersza, który nie został załadowany za pośrednictwem połączenia danych. Należy pamiętać, że działa to sprawnie tylko wtedy, gdy w obu tabelach występuje wspólna nazwa jednego pola. Jeśli istnieje więcej niż jedna wspólna nazwa pola, tworzony jest klucz syntetyczny.
W tym okrojonym przykładzie ładujemy tabelę szczegółów zamówienia z połączenia danych. Następnie używamy tabeli wbudowanej, aby dodać pole Supplemental Info. Może ono na przykład zawierać szczegółowe informacje na temat specjalnych komentarzy dotyczących określonych identyfikatorów zamówień.
Skrypt ładowania
SET DateFormat='MM/DD/YYYY';
Orders:
LIB CONNECT TO 'My_Generic_Connection';
LOAD PRODUCT_DIVISION_A_ORDER_ID as Order ID,
PRODUCT_DIVISION_A_ORDER_DATE as ISSUE_KEY as Order Date,
PRODUCT_DIVISION_A_TYPE as Product Type,
PRODUCT_DIVISION_A_SALES_MANAGER as Manager,
PRODUCT_DIVISION_A_SHIPPED_STATUS as Shipped Status;
SELECT PRODUCT_DIVISION_A_ORDER_ID,
PRODUCT_DIVISION_A_ORDER_DATE,
PRODUCT_DIVISION_A_TYPE,
PRODUCT_DIVISION_A_SALES_MANAGER,
PRODUCT_DIVISION_A_SHIPPED_STATUS
FROM SourceTable
WITH PROPERTIES (
[...]
);
Orders_Inline_Info:
load * inline [
Order ID,Supplemental Info
PSF-001014,'Bulk order, pending deal with Paracel.'
PSF-001625,'NOTE: Product damaged. Investigation required.'
];
Wyniki
Załóżmy, że po załadowaniu danych dodajemy do tabeli następujące wymiary:
Order ID
Order Date
Product Type
Manager
Shipped Status
Supplemental Info
Wynikowy wykres może wyglądać następująco.
Tabela wyników: Orders
Order ID
Order Date
Product Type
Manager
Shipped Status
Supplemental Info
PSF-000998
1/13/2024
Electronics
Amanda Honda
Shipped
-
PSF-000999
1/15/2024
Automotive
Molly McKenzie
Not Shipped
-
PSF-001014
1/17/2024
Home Appliances
Amalia Craig
Undefined
Bulk order, pending deal with Paracel.
PSF-001625
1/21/2024
Electronics
Amanda Honda
Undefined
Product damaged. Investigation required.
Zwróć uwagę, że wszystkie pola z obu tabel można dodać do tej samej wizualizacji. Tabele są ze sobą powiązane w modelu danych.
Przykład — pominięcie nagłówków kolumn
Edytuj specyfikację formatu, aby załadować tabelę wbudowaną bez definiowania nagłówków kolumn. Odbywa się to za pomocą specyfikacji labels (ustawienia jej na wartość no labels). Więcej informacji zawiera temat Konfigurowanie specyfikacji formatu w ładowaniu wbudowanym.
Kiedy ładujesz tabelę bez definiowania nazw kolumn, automatycznie używane są nazwy kolumn zdefiniowane przez system.
Przegląd
Ten przykład ilustruje sposób ładowania tabeli wbudowanej bez definiowania nazw kolumn.
Otwórz Edytor ładowania danych i dodaj następujący skrypt ładowania do nowej karty.
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Proste ładowanie wbudowane w celu zdefiniowania tabeli T1.
Użycie specyfikatora Quotes (z wartością msq) do obsługi zawartości wielowierszowej.
Wartości długości są określone w stopach i calach.
Symbol podwójnego cudzysłowu (") oznacza koniec wpisu wielowierszowego. W tym przykładzie ten sam symbol jest również używany do oznaczenia wartości w calach. Ma to na celu pokazanie składni i wynikającego z niej postępowania, jeśli trzeba użyć obu w tej samej instrukcji LOAD. Wprowadzenie symbolu " składającego się z dwóch kolejnych znaków ("") oznacza zasadniczo, że kod należy interpretować jako pojedynczą instancję tekstową symbolu.
Skrypt ładowania
T1:
Load *, recno() as ID inline [
Length
"1' 2""
22' 10"""
14' 8" ] (msq);
Wyniki
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
ID
Length
Aby zawartość wielowierszowa była wyświetlana zgodnie z zamierzeniami, w panelu właściwości musi być włączone ustawienie Zawijaj tekst w komórkach. Dodatkowo kompozycja aplikacji (lub ustawienia wizualizacji) musi umożliwiać odpowiednią Wysokość wiersza (w liniach).
Tabela wynikowa
ID
Length
1
1' 2"
22' 10"
2
14' 8"
W powyższej tabeli rekord o wartości ID wynoszącej 1 zawiera treść wielowierszową.
Przykłady — ładowanie wbudowane z transformacjami
W tych przykładach pokazano, jak można wykonywać obliczenia na polach ładowanych w sposób wbudowany, aby utworzyć nowe pola w modelu danych.
Otwórz Edytor ładowania danych i dodaj następujący skrypt ładowania do nowej karty.
Skrypt ładowania
ORDERS:
Load Original as Updated,
* Inline
[
Original
ProductA
ProductB
ProductC
];
Wyniki
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
Original
Updated
Tabela wynikowa
Original
Updated
ProductA
ProductA
ProductB
ProductB
ProductC
ProductC
Przegląd
Ten przykład pokazuje, jak można zdefiniować pole wyliczane wskazujące identyfikator każdego wiersza danych, bez konieczności ręcznego wpisywania każdej wartości identyfikatora.
Otwórz Edytor ładowania danych i dodaj następujący skrypt ładowania do nowej karty.
Skrypt ładowania
ORDERS:
Load RowNo() as ID,
* Inline
[
ProductName
A
B
C
D
E
];
Wyniki
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
ID
ProductName
Tabela wynikowa
ID
ProductName
1
A
2
B
3
C
4
D
5
E
Przegląd
Ten przykład pokazuje kilka sposobów zastosowania prostej transformacji do danych wbudowanych. Można użyć jednej lub wielu instrukcji LOAD oraz skonfigurować składnię na różne sposoby, aby określić, czy transformacja zastępuje oryginalne pole, nie zastępuje, czy też ładowane są zarówno oryginalne, jak i nowe pole.
W szczególności zwróć uwagę na następujące różnice i ich wpływ na wynik:
Liczba instrukcji LOAD w tabeli.
Obecność lub brak symbolu * (ładuje wszystkie kolejne pola).
Obecność lub brak przecinków (symbol ,).
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Cztery tabele, z których wszystkie odwołują się do tych samych danych. Nazwy pól są różne.
DerivedYears1: używa dwóch instrukcji LOAD do załadowania kolumny wbudowanej i kolumny zawierającej transformację kolumny wbudowanej.
DerivedYears2: używa dwóch instrukcji LOAD. Skrypt ładuje kolumnę wbudowaną, a następnie ładuje pole wyliczane przekształcone z oryginalnej kolumny. W przypadku drugiej instrukcji LOAD pierwotna kolumna nie jest ładowana do tabeli, co w efekcie powoduje, że nowe pole zastępuje pole pierwotne.
DerivedYears3: używa pojedynczej instrukcji LOAD do załadowania zarówno pierwotnej kolumny wbudowanej, jak i kolumny przekształconej.
DerivedYears4: używa pojedynczej instrukcji LOAD do zdefiniowania pola wbudowanego i transformacji tego pierwotnego pola. Do tabeli ładowane jest tylko przekształcone pole.
Załaduj dane i otwórz arkusz. Utwórz trzy tabele i dodaj do nich wymiary w następujący sposób:
DerivedYears1: initial_date1, derived_year1
DerivedYears2: initial_date2
DerivedYears3: initial_date3, derived_year3
Tabela wyników: DerivedYears1
initial_date1
derived_year1
1/1/2022
2022
1/1/2023
2023
1/1/2024
2024
Tabela wyników: DerivedYears2
derived_year2
2022
2023
2024
Tabela wyników: DerivedYears3
initial_date3
derived_year3
1/1/2022
2022
1/1/2023
2023
1/1/2024
2024
Tabela wyników: DerivedYears4
derived_year4
2022
2023
2024
Przegląd
Załóżmy, że wklejasz informacje z dużego pliku tekstowego do edytora skryptów, ale chcesz dodatkowo przetworzyć rekordy w zestawie danych. Na przykład chcesz usunąć określone znaki oraz prefiksy i zapisać każde słowo wielką literą.
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Tabela wbudowana Transformations, w której zdefiniowano transformację zmieniającą zawartość tekstową pola. Następnie dodawany jest przekształcany tekst.
Dwie instrukcje LOAD. W przypadku konfiguracji z przykładu do tabeli ładowane jest tylko pochodne pole ProductName_Trimmed.
Skrypt ładowania
Transformations:
Load
Capitalize(TextBetween(OrigColumn, '{','}')) as ProductName_Trimmed;
Load * inline [
OrigColumn
Product: {soft drinks and other beverages}
Product: {snack food}
Product: {electronics and video games}
];
Wyniki
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar: ProductName_Trimmed.
Tabela wynikowa
ProductName_Trimmed
Soft Drinks And Other Beverages
Snack Food
Electronics And Video Games
Przykład — operatory transformacji i klauzul
Do definiowania transformacji i konkretnych klauzul w instrukcji LOAD można używać operatorów. Więcej informacji zawiera temat Operatory i inne klauzule.
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Proste ładowanie wbudowane w celu zdefiniowania tabeli Purchases.
Wstawienie pola wyliczanego, OrderSize. To pole jest transformacją pola amount z wbudowanego zestawu danych. Klasyfikuje zakupy jako małe i duże w zależności od tego, czy kwota przekracza 2000,00 USD.
Klauzula where uniemożliwiająca ładowanie rekordów, gdy wartość amount jest mniejsza niż 0,05 USD.
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Proste ładowanie wbudowane w celu zdefiniowania tabeli T2.
Zmienna NullInterpret zdefiniowana jako dwa pojedyncze cudzysłowy. Po załadowaniu skryptu rekordy zawierające tę wartość są przetwarzane jako wartości null.
Skrypt ładowania
set nullinterpret = '';
T2:
Load * inline [
Test
''
x ];
Wyniki
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar: Test.
Tabela wynikowa
Test
x
W powyższej tabeli pierwszy rekord ma wartość null. W związku z tym nie jest uwzględniony w wizualizacji. Wartości null występujące w tabelach z dodatkowymi wymiarami zostałyby oznaczone symbolem -.