IMPORT MULTIDELIMITED 命令

通过定义并导入多个分隔文件来创建多个 Analytics 表。

语法

IMPORT MULTIDELIMITED <TO 导入文件夹> FROM {源文件名|源文件夹} 源字符编码 SEPARATOR {字符|TAB|SPACE} QUALIFIER {字符|NONE} <CONSECUTIVE> STARTLINE 行号 <KEEPTITLE> <CRCLEAR> <LFCLEAR> <REPLACENULL> <ALLCHAR>

说明

您必须完全按照上述顺序指定下表中的 IMPORT MULTIDELIMITED 参数。

要清洁地导入多个分隔文件,所有文件的结构在导入之前必须是一致的。

有关详细信息,请参见需要一致的文件结构

参数

名称 描述
TO 导入文件夹

可选

要向其中导入数据的文件夹。

要指定该文件夹,请使用绝对文件路径或者一个相对于包含该 Analytics 项目的文件夹的文件路径。请将导入文件夹指定为带引号的字符串。

示例

TO "C:\Point of sale audit\Data\Transaction working data"
TO "Data\Transaction working data"

如果您省略 TO,则数据被导入到包含该 Analytics 项目的文件夹。

FROM 源文件名 | 源文件夹

源数据文件的名称,或者包含源数据文件的文件夹。

请将源文件名或者源文件夹指定为带引号的字符串。

该命令支持导入四个类型的分隔文件:

  • *.csv
  • *.dat
  • *.del
  • *.txt

说明

超过 64 个字符的分隔文件名在导入 Analytics 时都会被截断。Analytics 表名称限制为 64 个字母数字字符,且不包括 .FIL 扩展名。

同样,分隔文件名中的以下字符都将替换为 Analytics 表名称中的下划线字符 ( _ ):

  • 下划线字符以外的特殊字符

  • 空格

  • 初始数

根 Analytics 项目文件夹中的源数据文件

要指定多个文件,请使用通配符 (*) 代替文件名中的唯一字符。通配符代表任何字母、数字或特殊字符的零 (0) 个或更多个实例。

示例

FROM "Transactions_FY*.csv"

选择:

Transactions_FY18.csv

Transactions_FY17.csv

您可以在文件名和文件扩展名中一个以上的位置使用通配符。

示例

FROM "Transactions_FY*.*"

选择:

Transactions_FY18.txt

Transactions_FY17.csv

不在根 Analytics 项目文件夹中的源数据文件

如果源数据文件未与 Analytics 项目位于同一文件夹中,则必须使用绝对文件路径或相对于包含该项目的文件夹的文件路径来指定文件的位置。

示例

FROM "C:\Point of sale audit\Data\Transaction master files\Transactions_FY*.csv"
FROM "Data\Transaction master files\Transactions_FY*.csv"

包含源数据文件的文件夹

您可以仅指定包含源数据文件的文件夹的名称,而不是指定文件名。该文件夹中所有受支持的分隔文件都是导入的(*.csv*.dat*.del*.txt)。

要指定源数据文件夹,请使用绝对文件路径或者一个相对于包含该 Analytics 项目的文件夹的文件路径。

示例

FROM "C:\Point of sale audit\Data\Transaction master files"
FROM "Data\Transaction master files"
源字符编码

源数据的字符集和编码。

根据您所使用的 Analytics 的版本以及源数据的编码,指定适当的代码:

代码 Analytics 版本 源数据编码
0

非 Unicode 版本

所有数据
0

Unicode 版本

ASCII 数据
2 Unicode 版本 Unicode 数据,UTF-16 LE 编码
3 数值代码 Unicode 版本

不使用 UTF-16 LE 编码的 Unicode 数据

要确定匹配源数据编码的数值代码,请使用数据定义向导执行导入,选择编码文本选项,并在附带的下拉列表中查找匹配的编码。

要指定代码,请指定 3,后面跟一个空格,然后是数值代码。

说明

如果您不指定代码,则非 Unicode Analytics 自动使用 0,Unicode Analytics 自动使用 2

SEPARATOR 字符 | TAB | SPACE

在源数据中的域之间使用的分隔符(定界符)。您必须将该字符指定为带引号的字符串。

您可以通过在双引号之间键入相应的字符或者通过使用关键字来指定制表符或空格分隔符。

  • SEPARATOR "   "SEPARATOR TAB
  • SEPARATOR " "SEPARATOR SPACE
QUALIFIER 字符 | NONE

源数据中用来环绕和标识域值的文本限定符。您必须将该字符指定为带引号的字符串。

要将双引号字符指定为文本限定符,请将该字符放在单引号中,例如:QUALIFIER '"'

您可以使用下列任一方法指定没有文本限定符:

  • QUALIFIER ""
  • QUALIFIER NONE

CONSECUTIVE

可选

将连续文本限定符作为单个限定符处理。

STARTLINE 行号

数据的开始行。

例如,如果数据的前四行包含您不需要的头信息,请为行号指定 5

说明

理想情况下,在您通过单次执行 IMPORT MULTIDELIMITED 导入的所有分隔文件中,数据的起始行应该是相同的。

如果起始行不同,请参见需要一致的文件结构

KEEPTITLE

可选

将 STARTLINE 所指定的行号视为域名称而不是数据。如果您省略 KEEPTITLE,则会使用通用域名称。

说明

在您通过单次执行 IMPORT MULTIDELIMITED 导入的所有分隔文件中,这些域名称必须位于相同的行号上。

如果域名称位于不同的行号,请参见需要一致的文件结构

CRCLEAR

可选

将出现在文本限定符之间的任何 CR 符(回车符)替换为空格符。要使用 CRCLEAR,必须指定带有一个字符值的 QUALIFIER。

如果您同时使用 CRCLEAR 和 LFCLEAR,则 CRCLEAR 必须居前。

LFCLEAR

可选

将出现在文本限定符之间的任何 LF 符(换行符)替换为空格符。要使用 LFCLEAR,必须指定带有一个字符值的 QUALIFIER。

如果您同时使用 CRCLEAR 和 LFCLEAR,则 CRCLEAR 必须居前。

REPLACENULL

可选

将分隔文件中出现的任何 NUL 字符替换为空格字符。任何被替换的 NUL 字符的数量被记录在日志中。

ALLCHAR

可选

“字符”数据类型被自动分配给所有被导入的域。

提示

将字符数据类型分配给所有被导入的域可简化导入分隔文本文件的流程。一旦将数据导入 Analytics,您就可以向域分配不同的数据类型(如数值或日期时间),并且指定格式详细信息。

如果您所导入的表中的标识符域被 Analytics 自动分配“数值”数据类型,而实际上它们应该使用“字符”数据类型,则 ALLCHAR 很有用。

示例

下面的示例假定您将每月交易数据存储在 12 个分隔文件中:

  • Transactions_Jan.csvTransactions_Dec.csv

说明

对于您导入的每个分隔文件,都会创建一个单独的 Analytics 表。

导入所有分隔文件

您想要导入所有 12 个分隔文件。在每个文件名中,您使用通配符 (*) 代替月份。

Analytics 尝试将适当的数据类型分配给每个域。

IMPORT MULTIDELIMITED FROM "Transactions_*.csv" 0 SEPARATOR "," QUALIFIER '"' CONSECUTIVE STARTLINE 1 KEEPTITLE

将所有分隔文件作为字符数据导入

以下示例与上述示例基本相同,只是 Analytics 自动将字符数据类型分配给所有被导入的域。

IMPORT MULTIDELIMITED FROM "Transactions_*.csv" 0 SEPARATOR "," QUALIFIER '"' CONSECUTIVE STARTLINE 1 KEEPTITLE ALLCHAR

从指定的文件夹导入所有分隔文件

您想要导入 C:\Point of sale audit\Data\Transaction master files 文件夹中的所有分隔文件。

IMPORT MULTIDELIMITED FROM "C:\Point of sale audit\Data\Transaction master files" 0 SEPARATOR "," QUALIFIER '"' CONSECUTIVE STARTLINE 1 KEEPTITLE

从指定的文件夹中导入所有分隔文件,并且将 Analytics 表保存到另一文件夹

以下示例与上述示例相同,不同点在于您不在根项目文件夹中保存 Analytics 表,而是想要在 C:\Point of sale audit\Data\Transaction working data 文件夹中保存它们。

IMPORT MULTIDELIMITED TO "C:\Point of sale audit\Data\Transaction working data" FROM "C:\Point of sale audit\Data\Transaction master files" 0 SEPARATOR "," QUALIFIER '"' CONSECUTIVE STARTLINE 1 KEEPTITLE

备注

需要一致的文件结构

要使用 IMPORT MULTIDELIMITED 清洁地导入一组分隔文件,该组中的所有文件的结构都必须是一致的。

您可以导入结构不一致的分隔文件,然后在 Analytics 中执行数据清理和标准化。但是,此方法可能耗时耗力。在很多情况下,更容易的方法是在导入之前使分隔文件的结构一致。

要清洁地导入多个分隔文件,下列条目需要在所有文件中保持一致:

条目 ACLScript 关键字 问题 解决方案

源数据的字符集和编码

数值代码

(仅限于 Analytics 的 Unicode 版)

源分隔文件使用不同的字符编码。例如,某些文件具有 ASCII 编码,某些文件具有 Unicode 编码。

按编码类型对源文件进行分组,并且对每个组执行单独的导入。
分隔符 SEPARATOR 源分隔文件在域之间使用不同的分隔符(定界符)。

执行以下操作之一:

  • 在导入源文件之前标准化它们中的分隔符。
  • 按分隔符对源文件进行分组,并且对每个组执行单独的导入。
文本限定符 QUALIFIER 源分隔文件使用不同的文本限定符环绕和标识域值。

执行以下操作之一:

  • 在导入源文件之前标准化它们中的限定符。
  • 按限定符对源文件进行分组,并且对每个组执行单独的导入。
数据起始行 STARTLINE

源分隔文件具有不同的数据起始行。

执行以下操作之一:

  • 在导入源文件之前标准化它们中的起始行。
  • 对具有相同起始行的源文件进行分组,并且对每个组执行单独的导入。
  • 使行号等于所有文件中的最低起始行。在将文件导入到 Analytics 表后,您就可以使用 EXTRACT 命令 仅提取任何包含不需要的标头信息的表中的记录。
域名 KEEPTITLE 源分隔文件在不同行号上具有域名称。

执行以下操作之一:

  • 在导入源文件之前标准化它们中的具有域名称的行号。
  • 对在相同行号上具有域名称的源文件进行分组,并且对每个组执行单独的导入。
域名 KEEPTITLE 某些源分隔文件具有域名称,某些则没有。

执行以下操作之一:

  • 在导入所有文件之前,向需要域名称的源文件中添加域名称。
  • 对具有域名称和不具有域名称的源文件进行分组,并且对每个组执行单独的导入。
  • 省略 KEEPTITLE 以使用通用域名称导入所有文件。在将这些文件导入到 Analytics 表后,您可以使用 EXTRACT 命令 仅提取任何表中的所需数据。

多个 IMPORT DELIMITED 命令

IMPORT MULTIDELIMITED 命令实际上执行多个单独的 IMPORT DELIMITED 命令 — 对于导入的每个文件都执行一个。如果您双击日志中的 IMPORT MULTIDELIMITED 条目,则会在显示区域显示各个 IMPORT DELIMITED 命令。

在导入多个分隔文件后组合它们

在将多个分隔文件导入到各个 Analytics 表之后,您可能想要将其组合为单个 Analytics 表。例如,您可以将十二个月度表中的数据组合为包含所有数据的单个年度表。

有关组合多个 Analytics 表的信息,请参见APPEND 命令