使用 Azure Blob 导入导入组织数据

重要

此功能仅适用于公共预览版客户。 预览版中的功能可能不完整,并且可能会在更广的版本中推出之前进行更改。

你的组织数据可以通过以下五种方式之一显示在Microsoft Viva Insights的高级见解应用中:通过Microsoft Entra ID(默认源);通过作为见解管理员直接上传到 .csv 单个 .csv 文件Viva Insights;通过基于 API 的导入;通过 Workday;或通过你、源系统管理员和 Azure 参与者设置的 Azure blob 导入。

本文介绍第五个选项,即 Azure Blob 导入。

通过 Azure Blob 导入,Azure 参与者会在Azure 门户上创建 Blob 容器,并且源系统管理员会配置 .csv 文件定期导出到 blob 容器的位置。 然后,可以将Viva Insights设置为自动从此位置内的 .csv 文件拉取组织数据。

工作流

  1. 设置:

    1. Azure 参与者在Azure 门户上创建一个安全的 Blob 容器。 Blob 存储位置对于敏感的组织数据应该是安全的,并且需要在客户的 Azure 订阅中设置它。

    2. 如果 Azure 参与者首选服务主体授权,Azure 参与者会授权服务主体,并通过以安全的方式共享 Blob URL,向见解管理员和源系统管理员提供该 URL。 如果 Azure 参与者不喜欢服务主体授权,则会生成 SAS URL 并将其提供给 Insights 管理员和源系统管理员。

    3. 源系统管理员在 .csv 文件和.json映射文件中准备数据,并配置从 HR 源系统到 blob 容器的定期导出 .csv 文件。

    4. 见解管理员在 Viva Insights 应用中输入 URL,以启用从 Azure Blob 存储位置导入。 见解管理员还会上传源系统管理员提供的.json映射文件。

  2. 验证:Viva Insights验证数据。 (如果验证不成功,可以从 验证失败中所述的几个选项中进行选择。)

  3. 处理:Viva Insights处理数据。 (如果处理不成功,可以从 处理失败中所述的几个选项中进行选择。)

成功验证和处理数据后,整个数据导入任务即完成。

安装

1.创建安全 Blob 容器

适用于:Azure 参与者

  1. 打开浏览器并登录到组织的Azure 门户。

  2. “Azure 服务”下,选择“ 存储帐户”。

  3. 在左上角的 “存储帐户 ”下,选择“ 创建 ”以创建新的存储帐户。

  4. “项目详细信息”下,使用默认设置。

  5. “实例详细信息”下,输入存储帐户名称并选择区域。 对于性能和冗余,可以使用默认设置,除非需要进行更改。

  6. 在底部,选择“ 下一步:高级”。

  7. 在“高级”页上,选择“需要安全传输 REST API作”、“启用存储帐户密钥访问”和“启用分层命名空间”。对于“最低 TLS 版本”,请选择至少 版本 1.2

  8. 对于所有其他高级设置,可以使用默认设置,除非需要进行更改。

  9. 在底部,选择“ 下一步:网络”。

  10. “网络连接”下,选择“ 启用来自所有网络的公共访问 ”或 “从所选虚拟网络和 IP 地址启用”。 如果选择第二个选项,请在“ 防火墙”下选择“ 添加客户端 IP 地址 ”,并为 Insights 管理员共享的允许列表提供 IP 地址。

  11. 在“ 网络路由”下,选择路由首选项。

  12. 在底部,选择“ 下一步:数据保护”。

  13. 在“数据保护”页上,除非需要进行更改,否则可以使用默认设置。

  14. 在底部,选择“ 下一步:加密”。

  15. 在“加密”页上,除非需要进行更改,否则可以使用默认设置。

  16. 在底部,选择“ 下一步:标记”。

  17. 可选:向帐户添加标记。

  18. 在底部,选择“ 下一步:查看”。

  19. 查看所选内容。 然后,在左下角选择“ 创建”。

  20. 在下一页上,将显示一条消息,指出“部署正在进行”。 部署完成后,将显示存储帐户及其设置。

  21. 在左侧的 “数据存储”下,选择“ 容器”。

  22. 若要创建新容器,请在顶部选择“ 容器”。 然后,在右侧输入容器的名称,例如“hrupload”。 在底部,选择“ 创建”。

2.授权 Blob 容器

适用于:Azure 参与者和存储 Blob 数据参与者

接下来,需要创建用于授权的 Blob SAS URL;如果使用服务主体授权,则需要创建 Blob URL。 建议使用更安全的服务主体授权方法。 Blob SAS 令牌没有任何内置审核功能。 针对所选方法,请按照以下步骤作。

对于服务主体授权:

  1. 在左侧面板中,选择“访问控制”。

  2. 在顶部,选择“ 角色分配”。 选择 “添加”,然后选择“ 添加角色分配”。

  3. 在角色列表中,找到并选择“ 存储 Blob 数据读取者”。

  4. “成员”旁边,选择“ 选择成员”。 在右侧的搜索字段中,输入 “工作区分析”,然后选择它。

  5. 在左下角,选择“ 查看 + 分配”。

  6. 在左侧面板的 “数据存储”下,选择“ 容器”。

  7. 选择在上述步骤中创建的存储容器。

  8. 在左侧面板的 “设置”下,选择“ 属性”。

  9. 复制 URL 并将其安全地与 Insights 管理员和源系统管理员共享。

对于 SAS URL 授权:

  1. 显示你创建的新存储容器时,将其选中。 然后,在 左侧的“设置”下,选择“ 访问策略”。

  2. “存储访问策略”下,选择“ 添加策略”。 提供唯一标识符,例如“BlobStore”。 选择“ 读取 ”和“ 列出 权限”。 选择过去几分钟的开始时间和一年后的结束时间。

  3. 在左侧 的“设置”下,选择“ 共享访问令牌”。

  4. 可以使用 “签名密钥”下的默认选项。 在 “存储访问策略”下,选择上面创建的策略。 这将自动填充过期窗口和权限列表。

  5. 对于 “允许的 IP 地址 ”和 “允许的协议”,可以使用默认设置。

  6. 选择“ 生成 SAS 令牌和 URL”。

  7. 复制 Blob SAS URL 并将其安全地与见解管理员共享。

  8. 让源系统管理员知道谁将填充此容器中的数据。 他们需要存储 Blob 数据参与者访问权限。

3. 设置Viva Insights以从 Blob 位置导入数据

适用于:见解管理员

  1. 从以下两个位置之一开始导入:“数据中心”页或“数据连接”下的“组织数据”页。

    1. 数据中心

      1. “数据源 ”部分的 “Azure Blob 导入”下,选择“ 启动”。
    2. 数据连接

      1. 在“ 当前源”旁边,选择“ 管理数据源”。
      2. 此时会显示 Azure Blob 导入窗口。 选择“开始”
  2. “连接名称”下,输入导入的唯一名称。

  3. “授权类型”下,选择“ 服务主体授权”或“ SAS URL 授权”。 此处的选择取决于 Azure 参与者在上述步骤 2 中使用的授权方法。

  4. 将 Azure 参与者允许列表的 IP 地址发送。

  5. 输入 Azure 参与者在步骤 2 中提供的导入的 Blob SAS URLBlob URL

  6. 上传源系统管理员提供给你的.json映射文件。

  7. 选择 “已启用”,然后选择“ 保存”。

  8. 如果看到错误消息,检查确保已执行上述所有步骤,并检查确保输入的 Blob SAS URL 或 blob URL 准确无误。 选择“ 重试”。

4. 准备组织数据 .csv 文件和.json映射文件,然后发送到 Blob 存储

适用于:源系统管理员

任务 1 - 准备数据

在开始导出和导入数据之前,请确保按照准备 组织数据文件上传中的步骤 1 到 4 准备文件。 还可以使用此文档来了解必需和保留的可选属性。

有关准备数据的提示

  • 对于新数据,请包括所有员工的完整历史数据。

  • 导入公司中所有员工的组织数据,包括持牌员工和非许可员工。

  • 请参阅 示例 .csv 模板 了解数据结构和指南,以避免出现唯一值过多或过少、字段冗余、数据格式无效等常见问题。 详细了解文件规则和验证错误

任务 2 - 从源系统导出数据

你决定每月、每周 (一次等 ) 以编程方式将源系统中的组织数据导出为 .csv 文件。 请参阅 此示例 .csv 模板。 根据 我们的准则设置文件的格式。

若要手动将文件上传到 Azure 参与者在步骤 1 中创建的 blob 位置,请将 .csv 文件发送到 Azure 参与者或存储 Blob 数据参与者 (,除非已) 分配了这些角色,并要求他们执行以下步骤:

  1. 打开浏览器并输入 Azure 参与者提供的 Blob SAS URL。

  2. 在顶部,选择“ 上传”。 然后,在右侧上传使用上述说明创建的 .csv 文件。

准备.json映射文件并将其发送给见解管理员

指示要执行的刷新类型以及Viva Insights应如何映射字段:

  • “DatasetType”: “HR” (第 2 行) 。 保持原样。

  • “IsBootstrap”: (第 3 行) 。 使用“true”指示完全刷新,使用“false”表示增量刷新。

  • “映射”:如果使用Viva Insights使用的名称以外的名称,请更改每个列标题名称,使其与源系统中使用的名称相匹配。

重要

删除 .csv 文件中不存在的任何字段。

映射示例

以下示例表示示例.json文件中找到的一个字段:

"PersonId": { 
    "name": "PersonId", 
    "type": "EmailType"
  • "PersonId": { 对应于源列名称。

  • “name” : “PersonId”,对应于Viva Insights字段名称。

  • "type": "EmailType" 对应于字段的数据类型。

假设源系统将 Employee 用于此字段标头,而不是 PersonId。 若要确保正确映射字段,需要编辑下面的第一行,如下所示:

"Employee": {
    "name": "PersonId",
    "type": "EmailType"

上传数据时,“员工”字段将成为 Viva Insights 中的 PersonId。

然后,在为 Azure Blob 导入设置连接时,将.json映射文件发送给见解管理员以在 Insights 中上传。

5.验证

适用于:见解管理员

在源系统管理员导出数据并设置导入后,应用将开始验证。 在大多数情况下,文件验证应很快完成。

此阶段完成后,验证已成功或失败。 根据结果,你将在 “组织数据数据 > 连接”的“导入历史记录”表中收到“成功”或“失败”状态。

有关后续作的信息,请转到相应的部分:

验证成功

成功验证后,Viva Insights开始处理新数据。 处理可能需要几个小时到一天左右的时间。 在处理过程中,你将在 “导入历史记录 ”表上看到“正在处理”状态。

处理完成后,它要么成功,要么失败。 根据结果,可以在 “导入历史记录 ”表中找到“成功”或“失败”状态。

处理成功

“导入历史记录 ”表中找到“成功”状态时,上传过程已完成。

收到“成功”状态后,可以:

  • 选择 (眼睛) 图标的视图以查看验证结果的摘要。
  • 选择映射图标以查看工作流的映射设置。

注意

每个租户一次只能进行一次导入。 你需要完成一个数据文件的工作流,这意味着在开始下一个数据文件的工作流之前,要么引导它成功验证和处理,要么放弃它。 上传工作流的状态或阶段显示在“ 数据连接 ”选项卡上。

处理失败

如果处理失败,可在 “导入历史记录 ”表中找到“处理失败”状态。 若要成功处理,源系统管理员需要更正错误并再次将数据推送到Viva Insights。

注意

处理失败通常是由后端错误导致的。 如果看到持续处理失败,并且已更正导入文件中的数据,请 向我们记录支持票证

验证失败

如果数据验证失败,则会在 “导入历史记录 ”表中看到“验证失败”状态。 若要成功验证,源系统管理员需要更正错误并再次将数据推送到Viva Insights。 在 “作”下,选择下载图标以下载错误日志。 将此日志发送给源系统管理员,以便他们知道在再次发送数据之前要更正的内容。

源系统管理员可能会发现以下部分有助于修复导出文件中的数据错误。

关于数据中的错误

适用于:源系统管理员

当任何数据行或列具有任何属性的无效值时,整个导入将失败,直到数据源管理员修复源数据。

请参阅 准备组织数据 ,了解可能有助于解决您遇到的错误的特定格式设置规则。

详细了解验证错误和警告

挂起状态

如果在 “导入历史记录 ”表中或选择“ 管理数据源”时看到“已挂起”状态,则表示授权凭据已过期或访问权限已吊销。 需要更新凭据并重新连接数据源。

管理数据源并进行更改

适用于:见解管理员

设置数据导入后,请使用以下步骤进行更改,例如设置新的 Blob 存储 URL 或关闭自动导入。

  1. “组织数据 ”页上的“ 数据连接”下,选择“ 管理数据源”。
  2. “Azure Blob 导入”下,选择“ 管理”。

在下一页上,可以编辑连接名称、blob SAS URL 或 Blob URL。 如果更新 SAS URL 或 URI,新位置将用于将来的数据刷新。

还可以打开或关闭自动导入。 完成后,选择“保存”。

若要使用现有 Blob SAS URL 或 Blob URL 替换或编辑组织数据,请与源系统管理员联系。将数据导入Viva Insights时,将执行完全刷新或增量刷新。 如果要删除字段,可以使用完全刷新来执行此作。

如何指示完全刷新或增量刷新

  1. 在.json映射文件中,转到第 3 行。
  2. “IsBootstrap”: 属性更新为以下项之一:
    1. 若要进行完全刷新,请使用 “IsBootstrap” : “true”
    2. 对于增量刷新,请使用  “IsBootstrap” : “false”

导入运行时,Viva Insights将开始以完整刷新或增量刷新的形式处理数据,具体取决于在.json映射文件中指定的内容。

刷新类型

Full

执行完全刷新时,将替换Viva Insights中的所有组织数据,即覆盖已导入的内容。 执行完全刷新时,请确保为所有已授权和未授权的员工提供数据, (这意味着拥有Viva Insights订阅的员工和未) 的员工。 本文稍后将介绍要提供哪些字段。

可以使用完全刷新来删除字段,因为省略的字段不会显示在数据中。 我们将在下一部分讨论删除数据。

删除完全刷新的字段

若要删除完全刷新的字段,请将数据导出为包含除要删除的字段以外的所有字段的 .csv。 由于完全刷新会替换现有数据,因此,除了在导入过程中遗漏的字段之外,你最终会获得每个字段。

增量

如果只想将一些新信息添加到已上传到Viva Insights的组织数据,则执行增量刷新。 下面是可以使用增量刷新执行的作:

  • 添加新员工
  • 为现有员工添加新属性
  • 为新员工添加新属性
  • 编辑现有员工的属性

下面是可能执行增量刷新的几个示例:

示例 - 添加新员工

假设要向组织数据添加 5 名新员工。 在导入过程中,你将包括:

  • 包含新员工数据的五行。
  • 必需属性:PersonId、ManagerId、Organization 和 EffectiveDate。
  • 所有保留的可选字段 (例如,已导入到 Viva Insights 的 HireDate) 。

导入完成后,唯一会注意到的更改是五个新行及其值。

示例 - 添加新属性

也许你希望为所有现有员工添加之前不在数据中的可选保留属性(例如 位置 )。 导入数据时,只会在 .csv 文件中包括 LocationPersonIdEffectiveDate 以及每个员工的当前值和历史值。 导入完成后,你会发现之前存在的数据相同,但每个员工都有一个新列 ,即“位置”。

要包含在 .csv 文件中用于完全刷新和增量刷新的字段

对于下面列出的刷新类型,请将下表中的字段包含在 .csv 文件中。 根据准备 组织数据中的指南设置这些字段的格式。

对于这种刷新 在 .csv 文件中包括这些字段 使用这些值 对于这些员工
Full PersonId 当前

所有历史
全部
ManagerId 当前

所有历史
全部
组织 当前

所有历史
全部
EffectiveDate 当前

所有历史
全部
所有保留的可选字段 (例如,已导入到Viva Insights的 HireDate) 当前

所有历史
全部
删除保留的可选字段) 的完整 ( PersonId 当前

所有历史
全部
ManagerId 当前

所有历史
全部
组织 当前

所有历史
全部
EffectiveDate 当前

所有历史
全部
所有保留的可选字段 (例如,已导入到Viva Insights的 HireDate) ,但要删除的保留可选字段除外 当前 (,待删除字段)

除待删除字段之外的所有历史 ()
全部
用于添加新字段或编辑现有字段的增量 (,但不) 添加新员工 PersonId 当前

自上次上传以来的所有 (请参阅以下)
全部
EffectiveDate 当前

自上次上传以来的所有 (请参阅以下)
全部
(任何保留的可选字段,例如要添加的 HireDate) 当前

自上次上传以来的所有 (请参阅以下)
全部
用于添加新员工的增量 () PersonId 当前

自上次上传以来的所有 (请参阅以下)
仅限新员工
ManagerId 当前

自上次上传以来的所有作
仅限新员工
组织 当前

自上次上传以来的所有作
仅限新员工
EffectiveDate 当前

自上次上传以来的所有作
仅限新员工
所有保留的可选字段 (例如,已导入到Viva Insights的 HireDate) 当前

自上次上传以来的所有作
仅限新员工

注意

“所有历史”:以前时间段的值。 例如,如果包含每月数据,则会包含导致此数据的每个月的值。 首次开始使用 Viva Insights 时,建议使用 13 个月的数据。 之后,建议定期更新数据,以便将其内置到 27 个月的数据中。

“自上次上传以来的所有值”:两次上传之间的值。 例如,如果上次上传是在 3 月,现在为 7 月,则包括 4 月、5 月和 6 月的值。

准备组织数据