Spotfire® 用户指南

访问 Amazon Redshift 中的数据

借助 Spotfire,您可以连接、访问和分析 Amazon Redshift 数据。在这篇文章中,您将学习如何对 Amazon Redshift 使用 Spotfire 的内置数据连接器。

注: 您还可以使用 Amazon Redshift 连接器访问共享数据。利用此功能,可以执行跨数据库查询(帐户间和跨帐户)。有关数据共享的详细信息,请参见 Amazon 的 Amazon Redshift 数据共享宣布开放

创建新连接来访问 Amazon Redshift 中的数据

要在 Spotfire 中访问 Amazon Redshift 数据,请创建与 Amazon Redshift 群集的连接。

开始之前

  • 在计算机上安装 Amazon Redshift ODBC 驱动程序。要获取找到正确驱动程序的帮助,请参见 Spotfire 中的驱动程序和数据源。另请参见系统要求
  • 收集与您的 Amazon Redshift 群集连接所需的信息。这通常包括服务器地址、登录凭据和其他连接设置。您组织中 Amazon Redshift 的管理员可以帮助您。

过程

  1. 在 Spotfire 中,打开“文件和数据” 浮出控件,然后选择“连接到”
  2. 在连接器的列表中,选择“Amazon Redshift”。然后单击“新建连接”
  3. “Amazon Redshift 连接”对话框中,输入 Amazon Redshift 群集的信息。通常,需要以下信息:
    选项说明

    服务器

    Amazon Redshift 群集的地址。这有时称为群集的端点。

    将端口号添加在地址的结尾,两者之间用冒号隔开:

    my-redshift-cluster.example.com:5439
    身份验证方法

    登录 Amazon Redshift 群集的方式。

    SSL 模式选择是否要在连接时使用加密。
    用户名和密码大多数身份验证方法都要求您输入用户名和密码(或类似的凭据)才能登录。
    数据库

    您的数据所在的 Amazon Redshift 数据库名称。

    注: 连接入站共享数据库时,不能直接在此字段中指定。您必须输入同一群集中的本地数据库(即未共享的数据库),然后才能在“连接中的视图”对话框中看到可用的入站共享数据库。

    有关入站和出站数据共享的更多信息,请参考 Amazon Redshift 官方文档。

    提示: 您可以使用更多数据源属性来配置连接。请参见Amazon Redshift 连接器 - 功能和设置
  4. 输入所需信息后,单击“连接”
  5. 在下一步“连接中的视图”对话框中,选择要在 Spotfire 中分析的数据。选择完成后,单击“确定”
    有关可用于选择数据的不同选项的详细信息,请参见为连接选择数据
    注: 对于共享数据库,层级中顶层的目录名称和架构名称显示为 catalog_name.schema_name。Spectrum 架构名称以相同的方式显示 (catalog_name.spectrum_name)。
  6. 最后一步是汇总要添加到分析中的数据。在此步骤,您可以选择“外部”(对于数据库中分析)、“导入”或者“按需”作为数据表的加载方法。
  7. 要完成创建数据连接并将数据表添加到分析中,请单击“确定”
    提示: 创建了连接后,您可以在 Spotfire 库中共享该连接。这样,您和团队成员便可重用该连接,从而方便地访问其他分析中的 Amazon Redshift 数据。

借助 Redshift Spectrum 访问 Amazon S3 中的数据

如果您在 Amazon S3 中有数据文件,就可以使用面向 Amazon Redshift 的连接器访问 Spotfire 中的数据。要使 Amazon S3 中的数据在 Spotfire 中可访问,可使用 Amazon Redshift 中的 Redshift Spectrum 功能。

在 Amazon S3 中对数据文件设置了 Redshift Spectrum 表后,连接到 Spotfire 中的 Amazon Redshift 群集。Redshift Spectrum 表显示为您可以在“连接中的视图”对话框中选择的数据表。

我可以从哪些类型的 S3 访问数据?

您可以访问 Amazon S3 中哪些类型的数据文件取决于 Redshift Spectrum。要了解 Redshift Spectrum 支持的数据文件类型,请参见 Amazon 的官方文档。

另外要记住,在 Spotfire 中,面向 Amazon Redshift 连接器可能无法支持您数据中可用的所有数据类型。如果数据中有不支持的数据类型,这些列也不会在 Spotfire 中显示。请参见“Amazon Redshift 数据类型”。

设置配置文件和凭据配置文件中的身份验证设置

您可以将身份验证方法设置表(请参见Amazon Redshift 连接器 - 功能和设置)中的设置存储在可重用的设置配置文件中。其目的是能够存储设置及其值,而不必将设置存储在分析文件中。然后,即可在 Web 客户端或自动化服务中打开连接时,自动使用这些设置。

设置配置文件

设置配置文件与凭据配置文件类似。主要区别在于设置配置文件不包括用户名和密码。这意味着您可以存储一些您不想直接存储在分析文件中的设置,并且在用户打开连接时仍然需要输入用户名和密码。

提示: 设置配置文件的一个用例是,如果使用身份验证方法 Azure AD,则存储客户端 ID 和客户端密钥。

设置配置文件存储在配置文件 Spotfire.Dxp.Worker.Host.exe.config 中的 Web 客户端服务配置中。

将 Amazon Redshift 的设置配置文件添加到 Web 客户端服务配置中

过程

  1. 在运行 Spotfire Server 的计算机上,导出要编辑的服务配置。请参见《Spotfire Server 和环境 - 安装和管理手册》的手动编辑服务配置文件中的说明。
  2. Spotfire.Dxp.Worker.Host.exe.config 文件中,找到或添加 Redshift 连接器设置 Spotfire.Dxp.Data.Adapters.Redshift.Properties.Settings。在其中添加您的设置配置文件。

    示例:

    <Spotfire.Dxp.Data.Adapters.Redshift.Properties.Settings>
       <setting name="SettingProfiles" serializeAs="Xml">
          <value>
             <profiles>
                <entry profile="MySettingsProfile">
                   <setting name="SecretAccessKey">MySecretAccessKey</setting>
                   <setting name="ClientID">MyClientID</setting>
                </entry>
                <entry profile="MySecondSettingsProfile">
                   <setting name="SecretAccessKey">MySecretAccessKey</setting>
                </entry>
             </profiles>
          </value>
       </setting>
    </Spotfire.Dxp.Data.Adapters.Redshift.Properties.Settings>
  3. 保存更改。然后按照《Spotfire Server 和环境 - 安装和管理手册》中的说明导入服务配置。

下一步做什么

如果您有多个 Web 客户端服务和自动化服务实例,则您必须使设置在要使用设置配置文件的所有服务实例上可用。

在与 Amazon Redshift 的连接中使用设置配置文件

过程

  1. 编辑或创建与 Amazon Redshift 的新连接(“文件和数据” > “连接到” > “Amazon Redshift” > “新建连接”)。
  2. “Amazon Redshift 连接”对话框“高级”选项卡的“设置配置文件”字段中输入设置配置文件的名称。

凭据配置文件

可以使用凭据配置文件,在 Spotfire Web 客户端或自动化服务中打开 Amazon Redshift 连接时自动登录。如果您的连接在身份验证方法设置表中具有强制设置,并且您没有在连接中保存设置值,则必须在凭据配置文件中添加这些设置。

要存储身份验证方法设置表中的设置值,可将设置名称及其值添加到凭据配置文件的密码设置中。

将设置添加为 JSON 表。表的格式如下:

{"password":"mypassword" "firstSettingName":"value" "secondSettingName":"value"}

例如:

<entry profile="CredentialsProfileName">
   <username>MyUser<username>
   <password>{"password":"mypassword" "SecretAccessKey":"mysecretaccesskey"}</password>
</entry>