映射

映射是将文件与数据模型中的元素关联的过程。这使得数据导入器能够构建加载数据的 Cypher® 语句。源文件可能包含与数据模型无关的数据,在构建模型时,您可以选择使用哪些数据。只有正确映射到模型元素的数据才会被导入,因此正确进行映射非常重要。

如果需要更改映射,可以再次运行导入。已导入的受影响元素将被更新,并且**不会**被复制。

节点

要将节点映射到文件,节点需要有一个标签,您可以直接在节点上或映射详细信息面板中键入标签。命名标签后,您可以选择要映射到节点的文件。可以在运行导入之前的任何时间添加文件,但在此时添加文件比较方便。

node mapping

此外,节点需要至少具有一个属性和一个 ID。

属性是描述节点的键值对。

ID 用于唯一标识节点,以及在关系中将节点相互连接时使用。如果多次看到具有相同 ID 的节点,则仅为观察到的第一个实例创建该节点。如果再次看到具有相同 ID 的节点,则更新任何属性,导致保留最近读取的属性。如前所述,节点 ID 在创建关系时至关重要,这将在映射关系部分中进一步详细解释。

如果已添加文件,则可以选择从该文件映射属性。数据导入器从文件中的列派生属性并猜测数据类型。使用此选项,您可以选择要使用的属性。选择后,可以重命名属性,如有必要,更改数据类型,并选择哪个属性用作节点 ID。

默认情况下,数据导入器使用名称中包含id的属性作为 ID,但如果映射文件中没有任何列满足此条件,或者有多个列满足此条件,则必须手动选择哪个属性用作节点 ID。无论让数据导入器选择 ID 还是手动选择 ID,每个节点都需要一个 ID 才能完成映射。

用作节点 ID 的属性用密钥图标标记。

node id

关系

就像节点需要有一个标签一样,关系需要有一个类型。这可以在关系上或详细信息面板中直接键入。要映射关系的文件与节点的映射方式相同。根据您的数据,此文件可能是

  • 与关系两端节点使用的相同文件。在这种情况下,数据导入器会自动映射文件和相应的列。它很容易识别要用于“来自”和“到”映射的文件列,因为它们已被映射为每个端节点的 ID 属性。

  • 仅用于定义关系一端节点的文件,但也包含一列,其中包含另一节点的 ID。在这种情况下,您需要手动选择文件并手动指定“来自”和“到”映射。这类似于关系数据库中的表,该表包含一个外键以链接到另一个表,但此处该键用于链接到另一个节点而不是表。

  • 完全独立的文件,仅用于定义关系。在这种情况下,您需要选择相关文件,然后映射文件中对应于“来自”和“到”节点 ID 属性的列。这类似于关系数据库术语中的“链接表”。

这部分对于确保关系按预期链接节点至关重要。它在详细信息面板的“节点 ID 映射”部分中定义。

relationship mapping

文件过滤

在将文件映射到节点和关系时,可以使用切换按钮来过滤文件。当使用聚合节点列表和关系列表作为源文件时,这很有用。聚合节点列表包含同一文件中的所有节点,并且可以通过在特定列中具有相同值来将其分隔/分组。聚合关系列表包含有关一个文件中关系的对应信息,并且可以以相同的方式对关系进行分组。文件过滤允许您选择一个列和一个精确值以进行匹配,并且仅使用匹配的元素作为数据模型中该元素的源。

file filtering

节点排除列表

有时源文件可能包含一列,其中多行具有相同的字符串作为值,例如[empty]null。如果此列用作节点 ID,并且运行导入,则会导致创建“超级节点”。映射文件中具有此类值的每一行最终都会连接到同一个节点,“超级节点”。为了避免这种情况,您可以指定导致数据导入器排除其出现的行的字符串。默认情况下,数据导入器会排除节点 ID 列的值为空的任何行。

节点排除列表可从数据模型面板中的更多菜单 (…​) 中获得,位于“设置”下。

node exclude

完成映射

如果映射不完整,即如果模型中的任何元素缺少绿色勾号,则无法运行导入。如果尝试运行,数据导入器会发送错误消息并突出显示模型中缺少信息的元素以及需要填写详细信息面板中的哪些字段。

对于节点,需要以下信息

  • 标签 - 用于识别节点的类型

  • 文件 - 节点的源文件,从中派生属性

  • 属性 - 需要选择至少一个属性,如果有多个属性,则需要选择一个作为节点 ID

对于关系

  • 类型 - 描述其表示的关系的名称

  • 文件 - 包含有关哪些节点由关系连接的信息的源文件

  • 节点 ID 映射 - 模型中哪些节点由关系连接;它们的标签、ID 和 ID 列。

如果映射不完整,可以运行导入预览,但它不包含未完全映射的元素。

一旦模型中的每个元素都具有绿色勾号以指示映射完成,就可以运行导入。