从内联表加载数据 在该页面上 显示更多链接
在脚本中手动键入数据以定义内联表。
通过在脚本中手动键入数据而不是连接到文件和数据库来创建内联表。使用所需的语法指示将脚本文本解释为内联数据。
基本的内联加载创建一个表,并插入数据字段和记录。
为什么使用内联加载?
内联加载在许多用例中都很有用:
无需连接到外部源即可管理和编辑数据。
补充数据模型中的现有数据。例如,您可以向主要来自数据库源的数据模型添加一个额外的表。
添加希望避免从外部源连续加载的数据。如果您知道数据源将来可能会更改,但数据值将保持不变,这可以节省时间。
易于使用,可将内容从其他文件复制和粘贴到脚本中。例如,来自文字处理程序文档的 .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 子句文本中重复该操作,在键入脚本时按压输入键。
技术内联负载
内联 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 *,
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:
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
在上表中,5 为 ID 的事务未加载到表中。这是因为 amount 值低于 0.05 美元。
示例 - 在内联表中创建 null 值
此示例演示了如何使用 NullInterpret 变量在内联数据中创建空值。
NullInterpret
加载脚本和结果
概述
此示例脚本包含以下内容:
加载脚本
set nullinterpret = '';
T2:
Load * inline [
Test
''
x ];
结果
在上表中,第一条记录为空值。因此,它不会包括在可视化中。具有附加维度的表中存在的空值将用 - 符号表示。
更多示例
有关其他示例,请参阅 Load 。