使用內嵌載入以載入資料 在此頁面 顯示更多連結
在指令碼中手動輸入資料,以定義內嵌表格,這可以載入到應用程式中。您可以在 資料載入編輯器 中使用內嵌載入。
若要建立內嵌表格,您可在指令碼中手動輸入資料,而非連線至檔案和資料庫。使用所需的語法,以指示要解譯為內嵌資料的指令碼文字。若已匯出應用程式,透過內嵌載入新增的資料將會包含在應用程式中。內嵌表格可在載入指令碼內讀取和編輯。
基本內嵌載入可建立表格,並插入資料欄位和記錄。
資料載入編輯器中的內嵌載入
基本語法範例
下列指令碼包含簡單的內嵌載入。
MyTable:
Load * Inline [
Country, Year, Sales
Argentina, 2014, 66295.03
Argentina, 2015, 140037.89
Austria, 2014, 54166.09
Austria, 2015, 182739.87
];
下列語法用於以上內嵌載入:
載人內嵌表格 請執行下列動作:
在應用程式中,開啟 資料載入編輯器 。
在新的行中,使用所需的語法定義表格。
基本語法範例
完成後,按一下載入資料 。
為什麼使用內嵌載入? 內嵌載入在許多使用情況下都很實用:
管理和編輯資料,而不需要連線至外部來源。
在資料模型中補充現有資料。例如,您可以將一個額外表格新增至大部分來自資料庫來源的資料模型。
新增您想要的資料可避免持續從外部來源載入。若您知道資料來源未來可能會變更,但資料值仍會保持不變,則這可以節省時間。
可用來輕鬆地從其他檔案複製內容並在指令碼中貼上。例如,來自文書處理器文件的 .csv 檔案或表格。
建立可快速複製和貼上的測試指令碼。
語法概述 命名表格 您可以新增內嵌表格的名稱,如同對於其他已載入之表格的做法。定義表格名稱為選擇性質。
在表格名稱之後,插入冒號。
LOAD 與 inline 陳述式內嵌表格會在您使用 LOAD 指令碼陳述式時透過 inline 子句載入。inline 子句指示表格中的後續文字將會包含手動輸入到編輯器中的資料。除非您有其他指示,否則內嵌表格會使用 txt 格式,並按照分隔文字檔案的結構。
如需更多關於 LOAD 陳述式的資訊,請參閱載入 。
圍繞符號和資料輸入透過 inline 子句輸入的資料必須特定字元括住。以下是用於括住資料的預期字元組合:
方括弧:[ 及 ]
雙引號:" 及 "
單引號:' 及 '
反引號:` 及 `
您選擇作為圍繞符號的字元可協助您載入包含衝突字元的內嵌資料。例如,若資料包含記錄與方括弧,您可以改用引號或反引號括住。
關於替代圍繞符號的範例,請參閱 範例 - 替代資料圍繞符號 。
除非您指定了替代表格格式 (預設為 txt ),否則會以與檔案內容相同的方式解譯圍繞符號之間的文字。因此,在文字檔中要插入新行的位置,也應該在 inline 子句的文字中插入新行:方法是在輸入指令碼時按下 Enter 鍵。
結束內嵌載入 內嵌載入陳述式的結束以分號表示。
資料轉換在沒有轉換的簡單內嵌載入中,欄數量以第一行定義。透過下列範例載入的表格中有三個欄:Product_ID 、Supplier_Name 和 Product_Category 。
Products:
Load * Inline [
Product_ID, Supplier_Name, Product_Category
1, Paracel, Home Decor
2, PageWave, Electronics
3, Talarian, Software
4, Userland, Appliances
];
您也可以執行轉換並在相同的內嵌表格內建立新的欄。您可以使用前置載入,有多個 LOAD 陳述式可用來載入相同的表格。
如需具體範例,請參閱 範例 - 具有轉換的內嵌載入 。
在內嵌載入中設定格式規格如同其他已載入的表格,您可以使用格式規格項目修改內嵌表格的格式規格。格式規格在括弧中新增。這應新增於資料圍繞符號之後,但位於結束 LOAD 陳述式的分號之前。一些您可以新增的自訂包括:
若要在相同的表格中使用多個格式規格項目,請以逗號分隔。例如︰ (Delimiter is '|', no labels)
如需關於格式規格的完整詳細資訊,請參閱格式規格項目 。
運算子和其他子句 此外,由於內嵌載入是 LOAD 陳述式,您可以將 LOAD 陳述式的其他引數合併到內嵌載入中。例如,使用 where 或 while 子句,根據其中的文字,定義是否要載入特定列。
同樣地,您也可以使用文字內容本身外部的運算子。透過運算子,您可以自訂如何轉換內嵌資料,也定義何時是否要載入特定資料。
如需具體範例,請參閱 範例 - 用於轉換和子句的運算子 。
範例 - 替代資料圍繞符號您可以使用方括弧、引號或反引號括住內嵌載入。此區段以範例說明。如需詳細資訊,請參閱圍繞符號和資料輸入 。
載入指令碼和結果 此範例呈現您可以如何使用反引號括住內嵌資料。範例中的資料包含方括弧字元,這讓方括弧與 LOAD 陳述式的圍繞符號不相容。
概述
開啟 資料載入編輯器 並將以下載入指令碼新增至新的索引標籤。
載入指令碼
DataTable:
Load * inline
`
custom_property, date, amount
[11402], 1/1/2024, 92.99
[11403], 1/2/2024, 102.34
[11404], 1/3/2024, 50.26
[11405], 1/4/2024, 153.69
[11406], 1/5/2024, 75.62
`;
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
custom_property
date
amount
結果表格 [11402] 1/1/2024 92.99 [11403] 1/2/2024 102.34 [11404] 1/3/2024 50.26 [11405] 1/4/2024 153.69 [11406] 1/5/2024 75.62
範例 - 替代分隔符號您可以使用逗號以外的字元分隔表格中的欄值。如需詳細資訊,請參閱在內嵌載入中設定格式規格 。
載入指令碼和結果 概述
若表格中的資料包含逗號 (這代表切換至表格中的下一欄),則變更分隔符號很實用。
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
載入指令碼
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');
結果
載入資料並開啟工作表。建立四個表格並新增維度,如下所示:
Table1 :ID 、Phrase
Table2 :Num1 、Chr1
Table3 :Num2 、Chr2
Table4 :Num3 、Chr3
結果表格: Table1 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.
範例 - 混合內嵌載入以及來自其他資料來源的載入 載入指令碼和結果 概述
下列指令碼會先從連接器載入一系列的欄位,然後透過一個共同欄位和一個附加欄位載入內嵌表格。這個新欄位提供另一個關於列項目的屬性,這沒有透過資料連線載入。請注意,只有在兩個表格之間有共同的單一欄位名稱時,這才會順利運作。若有多個共同欄位名稱,會產生合成鍵。
在此截斷範例中,我們從資料連線載入訂單詳細資訊表格。然後,我們使用內嵌表格新增其他欄位 Supplemental Info 。例如,這可能包含關於特定訂單 ID 相關特殊註解的詳細資訊。
載入指令碼
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.'
];
結果
載入資料後,假設我們將下列維度新增至表格:
Order ID
Order Date
Product Type
Manager
Shipped Status
Supplemental Info
產生的圖表可能如下所示。
結果表格:Orders 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.
請注意,來自兩個表格的所有欄位可以如何新增至相同的視覺化。表格在資料模型中互相關聯。
範例 - 省略欄標頭編輯格式規格以載入內嵌表格,而不需要定義欄標頭。這透過 labels 規格完成 (設定為 no labels 的值)。如需詳細資訊,請參閱在內嵌載入中設定格式規格 。
若您載入表格而不定義欄名稱,會自動使用系統定義的欄名稱。
載入指令碼和結果 概述
此範例呈現您可以如何載入內嵌表格,而不需要定義欄名稱。
開啟 資料載入編輯器 並將以下載入指令碼新增至新的索引標籤。
載入指令碼
Expenses:
Load * inline
[
1,Category1,40566.49
2,Category2,3504.54
3,Category3,593206.30
] (no labels);
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
結果表格 1 Category1 40566.49 2 Category2 3504.54 3 Category3 593206.30
範例 - 載入另一個資料類型此範例呈現您可以如何以固定記錄格式載入內嵌表格。請參閱 在內嵌載入中設定格式規格 。
載入指令碼和結果 概述
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
定義表格 DataTable 的內嵌 Load 陳述式。 使用 fix (作為部分 Table format 規格) 以指示要載入的資料使用固定記錄格式。 載入指令碼
DataTable:
LOAD
"@1:4",
"@5:8",
"@9:12",
"@13:16"
INLINE [
a b c d
1 2 3 4
x y z w
] (fix, utf8, embedded labels);
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
範例 - 多行內容此範例呈現您可以如何在內嵌表格中輸入多行欄位內容。請參閱 在內嵌載入中設定格式規格 。
載入指令碼和結果 概述
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
載入指令碼
T1:
Load *, recno() as ID inline [
Length
"1' 2""
22' 10"""
14' 8" ] (msq);
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
若要按照原本意圖檢視多行內容,必須在屬性面板中開啟在儲存格中換行文字 設定。此外,應用程式佈景主題 (或視覺化設定) 必須允許足夠的列高度 (行數) 。
結果表格 1 1' 2"
22' 10"
2 14' 8"
在以上表格中,具有 1 之 ID 值的記錄包含多行內容。
範例 - 具有轉換的內嵌載入這些範例顯示您可以如何對內嵌載入的欄位執行計算,以在資料模型中建立新的欄位。
如需詳細資訊,請參閱資料轉換 。
範例:簡單地重新命名欄位 概述
開啟 資料載入編輯器 並將以下載入指令碼新增至新的索引標籤。
載入指令碼
ORDERS:
Load Original as Updated,
* Inline
[
Original
ProductA
ProductB
ProductC
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
結果表格 ProductA ProductA ProductB ProductB ProductC ProductC
範例:簡單地插入 ID 欄位 概述
此範例顯示您可以如何定義計算的欄位,以指示每個資料列的 ID,而不需要手動輸入每個 ID 值。
開啟 資料載入編輯器 並將以下載入指令碼新增至新的索引標籤。
載入指令碼
ORDERS:
Load RowNo() as ID,
* Inline
[
ProductName
A
B
C
D
E
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
範例:設定 LOAD 陳述式以處理轉換 概述
此範例顯示簡單轉換套用至內嵌資料的幾種方式。您可以使用一個或多個 LOAD 陳述式,並以不同的方式設定語法,以定義轉換是否取代原始欄位,或是否要同時載入原始和新欄位。
尤其是,請注意以下變化以及如何影響輸出:
表格內 LOAD 陳述式的數量。
是否存在 * 符號 (載入所有後續欄位)。
是否存在逗號 (, 符號)。
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
四個表格,全部都參考相同資料。欄位名稱不同。
DerivedYears1 :使用兩個 LOAD 陳述式以載入內嵌欄和包含內嵌欄轉換的欄。
DerivedYears2 :使用兩個 LOAD 陳述式。指令碼載入內嵌欄,然後載入從原始欄轉換的計算欄位。透過第二個 LOAD 陳述式,原始欄不會載入到表格中,可讓新的欄位有效取代原始欄位。
DerivedYears3 :使用單一 LOAD 陳述式,以載入原始內嵌欄和轉換的欄。
DerivedYears4 :使用單一 LOAD 陳述式,以定義內嵌欄位和原始欄位的轉換。只有轉換的欄位會載入到表格中。
載入指令碼
DerivedYears1:
Load *,
Year(initial_date1) as derived_year1
;
Load
* inline [
initial_date1
'1/1/2022'
'1/1/2023'
'1/1/2024'
];
DerivedYears2:
Load
Year(initial_date2) as derived_year2
;
Load
* inline [
initial_date2
'1/1/2022'
'1/1/2023'
'1/1/2024'
];
DerivedYears3:
Load Year(initial_date3) as derived_year3,
* inline [
initial_date3
'1/1/2022'
'1/1/2023'
'1/1/2024'
];
DerivedYears4:
Load Year(initial_date4) as derived_year4
inline [
initial_date4
'1/1/2022'
'1/1/2023'
'1/1/2024'
];
結果
載入資料並開啟工作表。建立三個表格並新增維度,如下所示:
DerivedYears1 :initial_date1 、derived_year1
DerivedYears2 :initial_date2
DerivedYears3 :initial_date3 、derived_year3
結果表格:DerivedYears1 1/1/2022 2022 1/1/2023 2023 1/1/2024 2024
結果表格:DerivedYears2 2022 2023 2024
結果表格:DerivedYears3 1/1/2022 2022 1/1/2023 2023 1/1/2024 2024
結果表格:DerivedYears4 2022 2023 2024
範例:修改欄位內容 概述
假設您將轉換從大型文字檔案傳遞到指令碼編輯器中,但想要對資料集中的記錄執行其他處理。例如,您想要移除特定字元和前置詞,並讓每個字詞的首字母成為大寫。
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
載入指令碼
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}
];
結果
載入資料並開啟工作表。建立新的表格並將此欄位新增為維度: ProductName_Trimmed 。
結果表格 Soft Drinks And Other Beverages Snack Food Electronics And Video Games
範例 - 用於轉換和子句的運算子您可以使用運算子在 LOAD 陳述式中定義轉換和特定子句。如需詳細資訊,請參閱 運算子和其他子句 。
運算子
載入指令碼和結果 概述
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
用來定義表格 Purchases 的簡單內嵌載入。
插入計算欄位 OrderSize 。此欄位是來自內嵌資料集的 amount 欄位的轉換。這根據金額是否超過 $2000.00,將購買分類為小或大。
where 子句可防止在 amount 小於 $0.05 時載入記錄。
載入指令碼
Purchases:
Load
If(amount<2000,'Small Purchase','Large Purchase') as OrderSize,
* inline
[
ID, amount
1,2660.39
2,100.01
3,500.42
4,5023.99
5,0.04
6,2002.39
7,31034.53
8,1643.58
9,3993.65
10,614.34
11,675.93
]
WHERE
amount>0.05
;
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
結果表格 1 2660.39 Large Purchase 2 100.01 Small Purchase 3 500.42 Small Purchase 4 5023.99 Large Purchase 6 2002.39 Large Purchase 7 31034.53 Large Purchase 8 1643.58 Small Purchase 9 3993.65 Large Purchase 10 614.34 Small Purchase 11 675.93 Small Purchase
在以上表格中,ID 為 5 的交易不會載入到表格中。這是因為 amount 值小於 $0.05。
範例 - 在內嵌表格中建立 Null 值 此範例呈現您可以如何在內嵌資料中使用 NullInterpret 變數建立 Null 值。
NullInterpret
載入指令碼和結果 概述
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
載入指令碼
set nullinterpret = '';
T2:
Load * inline [
Test
''
x ];
結果
載入資料並開啟工作表。建立新的表格並將此欄位新增為維度: Test 。
在以上表格中,第一個記錄是 Null 值。因此,這不會包含在視覺化中。會以 - 符號指示存在於具有其他維度之表格中的 Null 值。
更多範例 如需其他範例,請參閱載入 。