從內嵌表格載入資料 在此頁面 顯示更多連結
將資料手動輸入到指令碼中,以定義內嵌表格。
您可將資料手動輸入到指令碼中 (而非連線至檔案和資料庫),以建立內嵌表格。使用所需語法,以指示指令碼文字要解譯為內嵌資料。
基本內嵌載入可建立表格,並插入資料欄位和記錄。
為什麼使用內嵌載入?
內嵌載入在許多使用案例都很實用:
管理並編輯資料,而不需要連線至外部來源。
在資料模型中補充現有資料。例如,您可以將其他表格新增至資料模型,這大部分來自資料庫來源。
新增您想要避免持續從外部來源載入的資料。若您知道資料來源可能會在未來變更,但資料值仍會相同,則這可以節省時間。
易於用來從其他檔案在指令碼中複製和貼上內容。例如,來自文書處理器文件的 .csv 檔案或表格。
建立可快速複製和貼上的測試指令碼。
基本語法範例
下列指令碼包含簡單內嵌載入。
MyTable:
Load * Inline [Country, Year, Sales
Argentina, 2014, 66295.03
Argentina, 2015, 140037.89
Austria, 2014, 54166.09
Austria, 2015, 182739.87
];
下列語法用於以上內嵌載入:
語法概述
命名表格
您可以新增內嵌表格的名稱,如同對其他載入表格的做法。定義表格名稱為選擇性質。
在表格名稱之後,插入冒號。
LOAD 和 inline 陳述式
使用 LOAD 指令碼陳述式時,透過 inline 子句載入內嵌表格。inline 子句指示表格中的後續文字將會包含手動輸入到編輯器中的資料。除非您另有指示,否則內嵌表格會使用 txt 格式,這按照分隔文字檔案的結構。
如需更多關於 LOAD 陳述式的資訊,請參閱 Load 。
圍繞符號和資料輸入
透過 inline 子句輸入的資料必須以特定字元括起。下列是括起資料時接受的字元組合:
方括弧:[ 及 ]
雙引號:" 及 "
單引號:' 及 '
反引號:` 及 `
您選擇作為圍繞符號的字元可協助您載入包含衝突字元的內嵌資料。例如,若資料包含具有方括弧的記錄,您可以改用引號或反引號括起。
如需替代圍繞符號的範例,請參閱 範例 - 替代資料圍繞符號 。
除非您指定替代表格格式 (預設為 txt ),否則圍繞符號之間文字的解譯方式與檔案內容相同。因此,在文字檔中要插入新行的位置,也應該在 inline 子句的文字中插入新行:在輸入指令碼時按下 Enter 鍵。
結束內嵌載入
內嵌 LOAD 陳述式的結尾以分號表示。
資料轉換
在沒有轉換的簡單內嵌載入,會透過第一行定義欄數。依下列範例,載入的表格中有三個欄: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
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.
範例 - 省略欄標頭
編輯格式規格,以載入內嵌表格,而沒有定義欄標頭。這透過 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"
在上表中,具有 ID 值 1 的記錄包含多行內容。
範例 - 具有轉換的內嵌載入
這些範例顯示您可以如何對內嵌載入的欄位執行計算,以在資料模型中建立新的欄位。
如需詳細資訊,請參閱 資料轉換 。
範例:簡單重新命名欄位
載入指令嗎
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
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}
];
結果
結果表格
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>1
;
結果
結果表格
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 ];
結果
在上表中,第一個記錄是 Null 值。因此,未包括在視覺化中。存在於具有其他維度之表格中的 Null 值會以 - 符號表示。
更多範例
如需其他範例,請參閱 Load 。