这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

安装和配置客户端驱动程序

通过安装适当的客户端驱动程序,您可以使用各种编程语言和工具访问 Vertica 数据库。下表列出了每种访问方法所需的客户端驱动程序:

1 - Windows 客户端驱动程序安装程序

Vertica 客户端驱动程序和工具安装程序中包含所有可用的 Windows 客户端驱动程序。这会在满足先决条件的系统上安装以下组件。个别组件在使用前可能需要额外配置,因此请导航至下方链接的页面以获取更多信息:

1.1 - 系统先决条件

适用于 Windows 的 Vertica 客户端驱动程序和工具要求系统满足基本的先决条件。该包还要求安装特定的 Microsoft 组件以实现完全集成。

有关所有先决条件的列表,请参阅支持的平台文档中的客户端驱动程序支持

完全更新系统

在安装 Vertica 驱动程序包之前,请确认系统已使用所有 Windows 更新和修补程序进行了完全更新。有关如何运行 Windows 更新的说明,请参阅您的 Windows 版本的文档。Vertica 客户端库和 vsql 可执行文件安装依赖于 Windows Service Pack 的更新的 Windows 库。确保解决阻止安装 Windows 更新的任何问题。

如果您的系统不是完全最新,您可能会在启动 vsql 时收到有关缺少库(例如 api-ms-win-crt-runtime-l1-1-0.dll)的错误消息。

1.1.1 - .NET Framework

.NET Framework 未捆绑到适用于 Windows 的 Vertica 客户端驱动程序和工具中。但是,在安装期间,如果在系统上检测不到 Microsoft .NET 3.5 SP1,则 Web 安装程序会启动。然后,您可以下载该框架。此外,如果操作系统版本包含 .NET 3.5 SP1,但未打开此功能,则安装程序会打开此功能。

如果已安装 Visual Studio 2010 或 2012,则您的系统已包含 Microsoft .NET Framework 4.0 或 4.5。您还需要安装 Microsoft .NET 3.5 SP1,才能使用 Vertica 客户端驱动程序和工具来实现 Windows 集成功能。

可以使用以下链接直接从 Microsoft 下载相应的 .NET Framework 版本:

1.1.2 - Microsoft visual studio

适用于 Windows 安装程序的 Vertica 客户端驱动程序和工具提供一个 Visual Studio 插件,通过该插件,您可以使用 Vertica 作为 Visual Studio 2008、Visual Studio 2010、Visual Studio 2012、Visual Studio 2013 或 Visual Studio 2015 的 Visual Studio 数据源。该插件的连接属性与 ADO.NET 连接属性 相同。

安装该插件之后,您可以使用该插件从 Visual Studio 中访问 Vertica 数据库。如果尚未安装 SDK,请下载特定于您的 Visual Studio 版本的 SDK。

如果开始安装时缺少 Microsoft Visual Studio SDK,将打开一个对话框进行安装。您可以选择忽略此对话框。

配置 BIDS 集成或 SSDT-BI 集成

适用于 Windows 安装程序的 Vertica 客户端驱动程序和工具提供 BIDS (Visual Studio 2008) 集成或 SSDT-BI(Visual Studio 2010、Visual Studio 2012、Visual Studio 2013 或 Visual Studio 2015)集成。若要使用 BIDS 或 SSDT-BI,请遵循以下过程:

  1. 安装适用于 Visual Studio 的 BIDS 或 SSDT-BI 开发工具加载项。

  2. 验证 SQL Server 是安装在同一台还是不同计算机上。

  3. 验证是否已激活适用于 IDS 或 SSDT-BI 的 SQL Server 共享功能。

然后,您可以使用 BIDS 或 SSDT-BI 开发程序包,还可以使用 SQL Server 的 SSIS、SSAS 和 SSRS 功能创建项目。若要使用这些功能,您必须通过 Vertica ADO.NET 驱动程序(适用于 SSIS 和 SSRS)或 OLE DB 驱动程序(适用于 SSAS)连接到 Vertica。

有关详细信息,请参阅Microsoft 组件

1.1.3 - Microsoft SQL server

使用 SQL Server 2012、SQL Server 2014 或 SQL Server 2016。适用于 Windows 安装程序的 Vertica 客户端驱动程序和工具支持以下功能:

  • SQL Server 2012、SQL Server 2014 和 SQL Server 2016:

    • SQL Server Integration Services (SSIS)

    • SQL Server Reporting Services (SSRS)

    • SQL Server Analysis Services (SSAS)

  • 使用 Visual Studio 2010、Visual Studio 2012、Visual Studio 2013 和 Visual Studio 2015 的 SQL Server — SQL Server Data Tools - Business Intelligence (SSDT-BI)

若要使用增强的 Vertica .NET 支持,您必须先安装 SQL Server。然后,您可以安装适用于 Windows 的客户端驱动程序和工具。必须在 SQL Server 上安装以下组件:

1.2 - 适用于 Windows 的 Visual Studio 插件

适用于 Windows 的 Visual Studio 插件作为适用于 Windows 的客户端驱动程序和工具的一部分安装。

有关 Visual Studio 插件如何与先前已安装在系统上的 Microsoft 组件集成的信息,请参阅 Microsoft 组件

1.2.1 - Visual Studio 限制

Visual Studio 2012 可能需要 Update 3

在下列情况下,您可能需要安装用于 Visual Studio 2012 的 Update 3:

  • 启动 Server Explorer 以查看和使用 Vertica 服务器,但 Vertica 数据源不可见。

  • 创建 SSAS 多维数据集,连接到 Vertica,并找到空的表列表或表无法正常工作。

对于其他受 Vertica 支持版本的 Visual Studio,此问题不会出现。

结果查看器限制为 655 列

Visual Studio 结果查看器无法执行包含超过 655 列的查询。如果表包含超过 655 列,请选择特定列(总数最多为 655),而不应选择所有列。

手动刷新 Visual Studio 的设置

安装 Visual Studio 插件后,如果 Vertica 未作为数据提供程序列出,请手动刷新。

若要执行此操作,请运行 devenv.exe/setup,您可以在 Visual Studio 的安装文件夹中找到该文件。

SQL 窗格问题

  • ALTER TABLECREATE TABLE

    您使用 Visual Studio 2008、Visual Studio 2010、Visual Studio 2012、Visual Studio 2013 或 Visual Studio 2015,并在 SQL 窗格中发出 ALTER TABLE 或 CREATE TABLE 语句。但显示一条消息,指明该语句不受支持。若要解决该错误,请单击继续,查询将会执行。

  • 带有分号的查询

    您使用 Visual Studio 2008、Visual Studio 2010、Visual Studio 2012、Visual Studio 2013 或 Visual Studio 2015,并在 SQL 窗格中执行 SQL 查询。如果在查询中包含分号 (;),该查询将会执行,但您无法编辑返回的结果。若要避免此问题,请在 SQL 窗格中输入不带分号的相同查询。

  • 引用布尔值

    您使用 Visual Studio 2008、Visual Studio 2010、Visual Studio 2012、Visual Studio 2013 或 Visual Studio 2015 连接到 Vertica 数据库,并在 SQL 窗格中执行 SQL 查询。当尝试将值插入布尔列而不在值两端加上引号时,SQL 语句的后续执行将返回错误。要解决此问题,请加上引号。

卸载 适用于 Windows 的客户端驱动程序和工具错误

在某些情况下,Windows 软件包的客户端驱动程序和工具的卸载失败并显示需要 .NET Framework的消息。以下是导致此问题的场景。

  1. 安装 Windows 的客户端驱动程序和工具
  2. 然后安装 Visual Studio 2010 或 2012,其中包括安装 .NET Framework 4.0 或 4.5。
  3. 使用 Windows 控制面板卸载 .NET Framework。
  4. 然后,您尝试卸载 Windows 的客户端驱动程序和工具。卸载将会失败并显示需要 .NET Framework的消息。

要更正此问题,请执行以下操作:

  1. 使用 Windows 控制面板手动重新安装 .NET Framework 4.0 或 4.5。
  2. 卸载 Windows 的客户端驱动程序和工具

1.3 - 卸载、修改或修复客户端驱动程序和工具

要卸载、修改或修复客户端驱动程序和工具,请运行适用于 Windows 的客户端驱动程序和工具安装程序。

该安装程序提供以下三个选项:

在静默模式下卸载客户端驱动程序和工具

  1. 以 Windows 管理员身份,打开命令行会话,然后将目录更改为包含安装程序的文件夹。

  2. 运行命令:

    VerticaSetup.exe -q -uninstall
    

将在静默模式下卸载客户端驱动程序和工具。

2 - FIPS 客户端驱动程序

Vertica 提供符合 FIPS 的版本的 ODBC 和 JDBC 客户端驱动程序。

2.1 - 为 JDBC 安装 FIPS 客户端驱动程序

Vertica 提供符合联邦信息处理标准 (FIPS) 的 JDBC 客户端驱动程序。使用此 JDBC 客户端驱动程序访问与 FIPS 兼容的系统。有关 FIPS 的详细信息,请参阅美国联邦信息处理标准

在 JDBC 客户端上实施 FIPS 需要一个名为 BouncyCastle 的第三方 JRE 扩展,它是一组用于加密的 API。将 BouncyCastle API 与 JDK 1.7 和 1.8 以及支持的符合 FIPS 的操作系统一起使用。

以下过程将 FIPS BouncyCastle .jar 添加为 JVM JSSE 提供程序:

  1. 下载 BouncyCastle FIPS .jar 文件 bc-fips-1.0.0.jar

  2. bc-fips-1.0.0.jar 添加为 JRE 库扩展:

    path/to/jre/lib/ext/bc-fips-1.0.0.jar
    
  3. <path to jre>/lib/security/java.security 中将 BouncyCastle 添加为 SSL 安全提供程序:

    security.provider.1=org.bouncycastle.jcajce.provider.BouncyCastle FipsProvider
    security.provider.2=com.sun.net.ssl.internal.ssl.Provider BCFIPS
    security.provider.3=sun.security.provider.Sun
    
  4. 使用以下 JVM java -D 系统属性命令实参将 KeyStore 和 TrustStore 文件设置为 BCFIPS:

    export JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.keyStoreProvider=BCFIPS
    export JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStoreProvider=BCFIPS
    
  5. path/to/jre/lib/security/java.security 中将 KeyStore 实施的默认类型设置为 BCFKS:

    keystore type=BCFKS
    ssl.keystore.type=BCFKS
    
  6. 创建 BCFKS 类型的密钥库和信任库:

    cd path/to/jre
    -storetype BCFKS
    -providername BCFIPS
    -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider
    -provider org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider
    -providerpath bc-fips-1.0.0.jar
    -alias CARoot
    -import -file path/to/server.crt.der
    
  7. 出现提示时,输入密钥库密码。系统将显示以下消息以确认已将证书添加到密钥库:

    "Certificate was added to the keystore"
    
  8. 使用 SSL DB 运行 Java 程序:

    1. 将 vertica.kafka.keystore.bcfks 密钥库从 path/to/jre/lib/ext/ 复制到 Java 程序文件夹。

    2. 将 Vertica 服务器证书转换为能够由 Java 理解的形式:

      $ path/to/java/bin/keytool -keystore verticastore -keypasswd -storepass password
                              -importkeystore -noprompt -alias verticasql -import -file server.crt.der
      
    3. 安装 JDBC

  9. 对实施进行测试:

    $ java -Djavax.net.debug=ssl -Djavax.net.ssl.keyStore='vertica.kafka.keystore.bcfks'
    -Djavax.net.ssl.keyStorePassword='password'
    -Djavax.net.ssl.trustStore='path/to/verticastore'
    -Djavax.net.ssl.trustStorePassword='password'
    -cp .:vertica-jdbc-12.0.0-0.jar FIPSTest
    

2.2 - 为 ODBC 和 vsql 安装 FIPS 客户端驱动程序

Vertica 为与 FIPS 兼容的系统提供 FIPS 客户端。与 FIPS 兼容的系统启用了 FIPS,其中包含 OpenSSL 库。

FIPS 客户端支持 ODBC 和 vsql,仅提供 64 位版本。

先决条件

确认主机系统正在运行受 Vertica 支持且符合 FIPS 的操作系统

FIPS 客户端安装程序会检查您的主机系统以获取 sysctl 参数 crypto.fips_enabled 的值。您必须将此参数设置为 1(启用)。如果未启用您的主机,则客户端不会安装。

安装 FIPS 客户端

要安装 FIPS 客户端驱动程序包:

  1. Vertica 驱动程序下载页面 下载 FIPS 客户端包。

  2. 以 root 身份登录客户端系统。

  3. 安装已下载的 RPM 包:

    # rpm -Uvh package_name.rpm
    

对于 ODBC,在您安装了客户端包之后,创建 DSN 并设置一些额外的配置参数。有关详细信息,请参阅:

您可以选择将 vsql 客户端添加到 PATH 环境变量,以便不需要输入完整路径即可运行该客户端。为此,将下行添加到主目录中的 .profile 文件或全局 /etc/profile 文件:

export PATH=$PATH:/opt/vertica/bin

客户端如何搜索 OpenSSL 库

当您启动客户端应用程序以连接到服务器时,客户端会为支持的 OpenSSL 版本搜索并加载 OpenSSL 库 libcrypto.so.10libssl.so.10

  • 客户端首先检查是否已设置 LD_LIBRARY_PATH

  • 如果 LD_LIBARY_PATH 位置不包含库,它会检查 RunPath/opt/vertica/lib 或 ODBC 或 vsql 目录结构 (../lib)。

下图描述了 OpenSSL 库的搜索过程:

3 - JDBC 客户端驱动程序

Vertica JDBC 客户端驱动程序符合 JDK 5 规范,它提供了一个接口,通过该接口可以使用 Java 与 Vertica 数据库进行通信。有关此 API 和其他 API 的详细信息,请参阅 API 参考

要安装 JDBC 客户端驱动程序,请参阅安装 JDBC 客户端驱动程序

3.1 - 安装 JDBC 客户端驱动程序

JDBC 客户端驱动程序符合 JDK 5 规范。根据您的环境和要求下载 JDBC 客户端驱动程序。如果您需要使用符合 FIPS 的驱动程序,请参阅为 JDBC 安装 FIPS 客户端驱动程序

从 RPM 安装 Vertica 会自动安装 JDBC 客户端驱动程序。要使用 JDBC 客户端驱动程序,您只需将 Vertica JDBC .jar 添加到您的 CLASSPATH

要手动安装 JDBC 客户端驱动程序:

  1. 从客户端驱动程序下载页面,下载与您的 Vertica 版本兼容的 JDBC 客户端驱动程序版本。

  2. 在希望从中访问 Vertica 的每个客户端系统上将 .jar 文件复制到 Java CLASSPATH 中的目录。您可以执行以下操作之一:

    • .jar 文件复制到其自己的目录(例如 /opt/vertica/java/lib),然后将该目录添加到 CLASSPATH(建议采用此方法)。有关详细信息,请参阅修改 Java CLASSPATH

    • .jar 文件复制到已存在于 CLASSPATH 中的目录(例如,已将应用程序所依赖的其他 .jar 文件放置到的目录)。

    • .jar 文件复制到系统范围的 Java 扩展目录。确切的位置因操作系统不同而异。一些示例包括:

      • Windows: C:\Program Files\Java\jrex.x.x_x\lib\ext\\

      • Mac OS: /Library/Java/Extensions/Users/username/Library/Java/Extensions

  3. 创建连接以测试您的配置。

3.2 - 修改 Java CLASSPATH

CLASSPATH 环境变量包含目录的列表,Java 运行时将从该列表的目录查找库类文件。要让 Java 客户端代码访问 Vertica,您必须将包含 Vertica JDBC .jar 的目录添加到 CLASSPATH。

将符号链接用于 CLASSPATH

您可以选择将符号链接 vertica-jdbc-x.x.x.jar(其中 x.x.x 是版本号,此符号链接指向 JDBC 库 .jar 文件而非 .jar 文件本身)添加到 CLASSPATH。

使用符号链接可确保对 JDBC 库 .jar 文件(此文件使用其他文件名)进行的任何更新不会使 CLASSPATH 设置失效,因为符号链接的文件名将保持不变。您只需要更新符号链接,使其指向新的 .jar 文件。

Linux 和 OS X

以下示例使用符合 POSIX 的 shell。

要为当前会话设置 CLASSPATH:

$ export CLASSPATH=$CLASSPATH:/opt/vertica/java/lib/vertica-jdbc-x.x.x.jar

要为每个会话设置 CLASSPATH,请将以下内容添加到启动文件(例如 ~/.profile/etc/profile):

$ export CLASSPATH=$CLASSPATH:/opt/vertica/java/lib/vertica-jdbc-x.x.x.jar

Windows

提供指向 .jar.zip.class 文件的类路径。

C:> SET CLASSPATH=classpath1;classpath2...

例如:

C:> SET CLASSPATH=C:\java\MyClasses\vertica-jdbc-x.x.x.jar

与 Linux/UNIX 设置一样,此设置仅持续到当前会话关闭。若要永久设置 CLASSPATH,请设置环境变量:

  1. 在 Windows 控制面板中,单击系统

  2. 单击高级高级系统设置

  3. 单击环境变量

  4. 在“用户变量”下,单击新建

  5. 在“变量名”框中,键入 CLASSPATH

  6. 在“变量值 (Variable value)”框中,键入指向系统上的 Vertica JDBC .jar 文件的路径(例如, C:\Program Files (x86)\Vertica\JDBC\vertica-jdbc-x.x.x.jar

在 Java 命令中指定库目录

另一种与操作系统无关的、告知 Java 运行时在何处可以找到 Vertica JDBC 驱动程序的方法是:使用 -cp-classpath 实参将包含 .jar 文件的目录显式添加到 Java 命令行。例如,可以使用以下命令启动客户端应用程序:

java -classpath /opt/vertica/java/lib/vertica-jdbc-x.x.x.jar myapplication.class

Java IDE 还可让您将目录添加到 CLASSPATH,或者可让您将 Vertica JDBC 驱动程序导入到项目中。有关详细信息,请参阅 IDE 文档。

4 - ODBC 客户端驱动程序

Vertica ODBC 客户端驱动程序提供了一个接口,通过该接口可以使用多种语言创建客户端应用程序:

要安装 ODBC,请参阅安装 ODBC 客户端驱动程序

4.1 - 安装 ODBC 客户端驱动程序

要安装 ODBC,请按照您的平台说明进行操作。有关受支持平台的列表,请参阅客户端驱动程序支持

本页介绍非 FIPS 安装。要在符合 FIPS 的系统上安装 ODBC,请参阅为 ODBC 和 vsql 安装 FIPS 客户端驱动程序

在 Linux 上安装

从 RPM 安装 Vertica 会自动安装 ODBC 客户端驱动程序,因此您无需在运行 Vertica 的计算机上再次安装它们。要在这种情况下使用 ODBC 客户端驱动程序,请创建 DSN

要在其他计算机上手动安装 ODBC 客户端驱动程序:

  1. 以 root 身份登录客户端系统。

  2. 验证您的系统是否装有受支持的 ODBC 驱动程序管理器。

  3. 以适合您的发行版的格式,下载适用于 Linux 的 ODBC 客户端驱动程序

  4. 安装或解压缩驱动程序:

    • 如果您下载了 .rpm,请安装该驱动程序:

      $ rpm -Uvh driver_name.rpm
      
    • 如果您下载了 .tar,则创建 /opt/vertica/ 目录(如果该目录不存在),将 .tar 复制到其中,导航到它,然后解压缩 .tar

      
      $ mkdir -p /opt/vertica/
      $ cp driver_name.tar.gz /opt/vertica/
      $ tar vzxf driver_name.tar.gz
      

      这将创建两个目录:

      • /opt/vertica/include:包含头文件。

      • /opt/vertica/lib64/(64 位)或 /opt/vertica/lib/(32 位):包含库文件。

  5. vertica.ini 中设置以下 ODBC 驱动程序设置。有关每个设置的详细信息,请参阅 ODBC 驱动程序设置

    • ErrorMessagesPath:必需,包含 ODBC 驱动程序的错误消息文件的目录路径。

    • ODBCInstLib:ODBC 安装程序库的路径。仅当驱动管理器的安装库不在环境变量 LD_LIBRARY_PATHLIB_PATH 中时才需要。

    • DriverManagerEncoding:驱动程序管理器使用的 UTF 编码标准。仅当您的驱动程序管理器不使用 UTF-8 时才需要。

    下面是 vertica.ini 中的示例配置:

    • 使用 64 位 UNIXODBC 驱动程序管理器的编码。

    • 使用标准 Vertica 64 位 ODBC 驱动程序安装目录中定义的错误消息。

    • 将所有警告和严重性更高的消息记录到日志文件 /tmp/

      [Driver]
      DriverManagerEncoding=UTF-16
      ODBCInstLib=/usr/lib64/libodbcinst.so
      ErrorMessagesPath=/opt/vertica
      LogLevel=4
      LogPath=/tmp
      
  6. 创建 DSN

在 macOS 上安装

要在 macOS 上安装 ODBC 客户端驱动程序:

  1. 验证您的系统是否装有兼容的驱动程序管理器。该驱动程序旨在与 macOS 附带的标准 iODBC 驱动程序管理器一起使用。您也可以使用 unixODBC

  2. 下载 ODBC 客户端驱动程序。

  3. 如果已安装以前版本的 ODBC 驱动程序,则系统可能已注册了名为“Vertica”的驱动程序。在从 .pkg 安装程序安装新版本之前,您必须移除或重命名旧版本的驱动程序。重命名旧版本可让您在安装新版本后保留旧版本。

  4. 运行安装程序。

  5. 创建 DSN

静默安装

  1. 通过以下两种方式之一登录客户端 macOS:

    • 以管理员帐户登录(如果您安装驱动程序是为了在系统范围使用)。

    • 以需要使用 Vertica ODBC 驱动程序的用户身份登录。

  2. 打开终端。

  3. 使用以下命令安装包含 ODBC 驱动程序的 .pkg 文件:

    sudo installer -pkg path/to/client/driver/vertica-odbc-xx.x.x-x.pkg -target /
    

在 Windows 上安装

要在 Windows 上安装 ODBC 客户端驱动程序:

  1. 下载适用于 Windows 的客户端驱动程序安装程序。

  2. 运行安装程序。

  3. 创建 DSN

静默安装

  1. 以管理员身份打开终端。

  2. 运行以下命令将驱动程序静默安装到 C:\Program Files\Vertica Systems

    VerticaSetup.exe -q -install InstallFolder="C:\Program Files\Vertica Systems"
    

4.2 - 升级和降级 ODBC

Linux

要升级 ODBC:

  1. 卸载当前版本的驱动程序。

  2. 安装新版本的驱动程序。

macOS

要升级或降级 ODBC:

  • 升级:新安装的适用于 macOS 的 Vertica ODBC 驱动程序版本会自动升级相关的驱动程序系统设置。除了开始使用较新版本的驱动程序之外,与以前版本的驱动程序关联的任何 DSN 不受影响。

  • 降级:运行卸载脚本以移除适用于 macOS 的 Vertica ODBC 驱动程序的当前版本。在安装旧版本的驱动程序之前完成此步骤。

Windows

  1. 下载 Windows 客户端驱动安装程序。

  2. 运行安装程序并按照提示升级驱动程序。安装程序会升级现有的驱动程序。

  3. 重新启动系统。

4.3 - 卸载 ODBC

Linux

如果您使用 .rpm 安装了 ODBC:

$ rpm -e package_name

如果您使用 .tar 安装了 ODBC,请手动删除该目录。

macOS

卸载 macOS ODBC 客户端驱动程序不会移除与该驱动程序关联的任何现有 DSN。

若要卸载,请执行下列操作:

  1. 打开终端窗口。

  2. 运行命令:

    sudo /Library/Vertica/ODBC/bin/Uninstall
    

Windows

  1. 打开添加或删除程序 (Add or Remove Programs) 菜单。

  2. 或者卸载 Vertica Client Installer 以从系统中移除所有客户端驱动程序,或者仅卸载 ODBC 以卸载以下应用程序:

    • Vertica ODBC 驱动程序(32 位)

    • Vertica ODBC 驱动程序(64 位)

4.4 - 创建 ODBC 数据源名称 (DSN)

数据源名称 (DSN) 是由开放式数据库连接 (ODBC) 使用的逻辑名称,用于引用从数据源访问数据而所需的驱动程序和其他信息。无论您是开发自己的 ODBC 客户端代码,还是使用需要通过 ODBC 访问 Vertica 的第三方工具,都需要配置和测试 DSN。您使用的方法取决于所用的客户端操作系统。

有关特定于您的客户端操作系统的信息,请参阅以下部分。

4.4.1 - 为 Linux 创建 ODBC DSN

在 Linux 和其他类 UNIX 平台上,您可以在文本文件中定义 DSN。客户端的驱动程序管理器会读取该文件,以确定如何连接到 Vertica 数据库。驱动程序管理器通常在以下两个位置查找 DSN 定义:

  • /etc/odbc.ini

  • ~/.odbc.ini (用户主目录中名为 .odbc.ini 的文件)

用户必须能够读取 odbc.ini 文件,才能使用它连接到数据库。如果使用全局 odbc.ini 文件,请考虑创建一个对该文件具有读取权限的 UNIX 组。然后,将需要使用 DSN 的用户添加到该组。

这些文件的结构是相同的,只是所在位置不同而已。如果这两个文件都存在,则 ~/.odbc.ini 文件通常会替代系统范围 /etc/odbc.ini 文件。

odbc.ini 文件结构

odbc.ini 是一个包含以下两种类型的行的文本文件:

  • 节定义,是用方括号括起来的文本字符串。

  • 参数定义,其中依次包含参数名称、等号 (=) 和参数值。

文件的第一节始终名为 [ODBC Data Sources],其中包含 odbc.ini 文件所定义的所有 DSN 的列表。此节中的参数是 DSN 的名称,这些参数稍后在文件中显示为节定义。值是 DSN 的文本描述,并不起任何作用。例如,定义了名为 Vertica DSN 的单个 DSN 的 odbc.ini 文件可能包含以下 ODBC 数据源节:

[ODBC Data Sources]
VerticaDSN = "vmartdb"

显示在 ODBC 数据源节之后的节定义了每个 DSN。DSN 节的名称必须与 ODBC 数据源节中定义的名称之一匹配。

配置 odbc.ini 文件:

若要创建或编辑 DSN 定义文件,请执行下列操作:

  1. 使用所选文本编辑器打开 odbc.ini~/.odbc.ini

  2. 创建 ODBC 数据源节并定义参数:

    • 其名称是要创建的 DSN 的名称

    • 其值是 DSN 的描述

    例如,若要创建名为 VMart 的 DSN,您应输入以下命令:

    [ODBC Data Sources]
    VMart = "VMart database on Vertica"
    
  3. 创建名称与您在步骤 2 中定义的 DSN 名称匹配的节。在此节中,您应添加定义了 DSN 的设置的参数。最常定义的参数如下:

    • Description – 有关数据源的附加信息。

    • Driver – Vertica ODBC 驱动程序的位置和指定,或 odbcinst.ini 文件中定义的驱动程序的名称(请参阅下文)。为了确保将来的兼容性,请使用库目录(而非库文件)中的符号链接的名称:

      • /opt/vertica/lib(在 32 位客户端上)

      • /opt/vertica/lib64,(在 64 位客户端上)

      例如,64 位 ODBC 驱动程序库的符号链接是:

      /opt/vertica/lib64/libverticaodbc.so
      

      符号链接始终指向最新版本的 Vertica 客户端 ODBC 库。请使用此链接,以便不需要在更新客户端驱动程序后更新所有 DSN。

    • Database – 在服务器中运行的数据库的名称。此示例使用 vmartdb 来表示 vmartdb。

    • ServerName — 安装了 Vertica 的服务器的名称。如果 Vertica 已安装在同一台计算机上,则使用 localhost。

      您可以提供 IPv4 地址、IPv6 地址或主机名。

      在 IPv4/IPv6 混合网络中,DNS 服务器配置决定了哪个 IP 版本地址最先发送。可使用 PreferredAddressFamily 选项来强制连接使用 IPv4 或 IPv6。

    • UID — 数据库超级用户(名称与数据库管理员帐户相同)或超级用户已创建并向其授予了权限的用户。此示例使用用户名 dbadmin。

    • PWD — 指定的用户名的密码。此示例将密码字段留空。

    • Port — Vertica 用来侦听 ODBC 连接的端口号。例如,5433。

    • ConnSettings — 可以包含用分号分隔的 SQL 命令。这些命令可以在连接到服务器之后立即运行。

    • SSLKeyFile — 客户端私钥的文件路径和名称。此文件可以驻留在系统上的任意位置。

    • SSLCertFile — 客户端公用证书的文件路径和名称。此文件可以驻留在系统上的任意位置。

    • Locale — 用于会话的默认区域设置。默认情况下,数据库的区域设置是:en_US@collation=binary (English as in the United States of America)。将区域设置指定为 ICU 区域设置。有关可用于指定区域设置的完整参数列表,请参阅 ICU 用户指南 (http://userguide.icu-project.org/locale)。

    • PreferredAddressFamily

      如果客户端和服务器都有 IPv4 和 IPv6 地址而且您已经提供了主机名时要使用的 IP 版本,则使用的 IP 版本是以下之一:

      • ipv4:使用 IPv4 连接到服务器。

      • ipv6:使用 IPv6 连接到服务器。

      • none:使用 DNS 服务器提供的 IP 地址。

例如:

[VMart]
Description = Vmart Database
Driver = /opt/vertica/lib64/libverticaodbc.so
Database = vmartdb
Servername = host01
UID = dbadmin
PWD =
Port = 5433
ConnSettings =
AutoCommit = 0
SSLKeyFile = /home/dbadmin/client.key
SSLCertFile = /home/dbadmin/client.crt
Locale = en_US@collation=binary

有关包括 Vertica 特定参数的完整参数列表,请参阅 ODBC DSN 连接属性

使用 odbcinst.ini 文件

您可以使用在 odbcinst.ini 文件中定义的驱动程序的名称,而不必在 DSN 定义中指定 ODBC 驱动程序库的路径。如果您有许多 DSN 并且经常需要更新这些 DSN 以指向新的驱动程序库,则此方法很有用。使用此方法,您还可以设置一些其他 ODBC 参数,例如线程模型。

odbc.ini 文件一样,odbcinst.ini 文件中也包含一些节。每个节定义了可在 odbc.ini 文件中引用的 ODBC 驱动程序。

在一个节中,您可以定义以下参数:

  • Description — 有关数据源的附加信息。

  • Driver — Vertica ODBC 驱动程序的位置和指定,例如 /opt/vertica/lib64/libverticaodbc.so

例如:

[Vertica]
Description = Vertica ODBC Driver
Driver = /opt/vertica/lib64/libverticaodbc.so

然后,在 odbc.ini 文件中,您可以使用已在 odbcinst.ini 文件中创建的节(描述了要使用的驱动程序)的名称。例如:

[VMart]
Description = Vertica Vmart database
Driver = Vertica

如果使用的是 unixODBC 驱动程序管理器,您还应添加一个 ODBC 节以替代其标准线程设置。默认情况下,unixODBC 通过 ODBC 将所有 SQL 调用序列化,这样可以阻止多个并行加载。若要更改其默认行为,请将以下行添加到 odbcinst.ini 文件中:

[ODBC]
Threading = 1

配置其他 ODBC 设置

在 Linux 和 UNIX 系统上,您需要先配置一些其他驱动程序设置,然后才能使用 DSN。有关详细信息,请参阅ODBC 驱动程序设置

4.4.1.1 - 使用 isql 测试 ODBC DSN

unixODBC 驱动程序管理器包含一个名为 isql 的实用程序,此实用程序是一个简单的 ODBC 命令行客户端。使用此实用程序,您可以连接到 DSN 以发送命令和接收结果,类似于 vsql。

若要使用 isql 测试 DSN 连接,请执行下列操作:

  1. 运行以下命令:

    $ isql –v DSNname
    

    其中 DSNname 是已创建的 DSN 的名称。

    此时将显示连接消息和 SQL 提示。如果它们未显示,则可能表明存在配置问题,或者可能表明所使用的用户名或密码不正确。

  2. 尝试执行简单 SQL 语句。例如:

    SQL> SELECT table_name FROM tables;
    

    isql 工具将返回 SQL 语句的结果。

4.4.2 - 为 Windows 客户端创建 ODBC DSN

若要为 Microsoft Windows 客户端创建 DSN,您必须执行以下任务:

4.4.2.1 - 设置 ODBC DSN

数据源名称 (DSN) 是 ODBC 逻辑名称,用来表示驱动程序和访问数据源中的数据所需的其他信息。此名称由 Internet 信息服务 (Internet Information Services, IIS) 用于与 ODBC 数据源的连接。

此部分介绍如何使用 Vertica ODBC 驱动程序设置 ODBC DSN。本主题假设您已按照在 Windows 中安装客户端驱动程序中所述安装了驱动程序。

设置 DSN

  1. 打开 ODBC 管理器。例如,可以导航到“开始 > 控制面板 > 管理工具 (Administration Tools) > 数据源 (ODBC)”。

  2. 确定是否希望客户端系统上的所有用户都能访问 Vertica 数据库的 DSN。

    • 如果想让所有用户都可访问,则单击系统 DSN (System DSN) 选项卡。

    • 否则,单击用户 DSN 选项卡以创建仅供您的 Windows 用户帐户使用的 DSN。

  3. 单击添加 (Add) 以创建用于连接到 Vertica 数据库的新的 DSN。

  4. 滚动浏览“创建新数据源 (Create a New Data Source)”对话框中的驱动程序列表以查找 Vertica 驱动程序。选择该驱动程序,然后单击完成

    此时将显示 Vertica ODBC DSN 配置对话框。

  5. 单击更多 >>> (More >>>) 按钮,以查看正在编辑的字段和由 DSN 定义的连接字符串的描述。

  6. 输入 DSN 的信息。以下字段是必填的:

    • DSN 名称 — DSN 的名称。客户端使用此名称来标识要连接到的 DSN。DSN 名称必须满足以下要求:

      • 最大长度为 32 个字符。

      • 它由 ASCII 字符组成,但以下字符除外: { } , ; ? * = ! @ \

      • 它不包含空格。

    • 服务器 — 要连接到的 Vertica 服务器的主机名或 IP 地址。如果 Vertica 已安装在同一台计算机上,则使用 localhost。

      您可以提供 IPv4 地址、IPv6 地址或主机名。

      在 IPv4/IPv6 混合网络中,DNS 服务器配置决定了哪个 IP 版本地址最先发送。可使用 PreferredAddressFamily 选项来强制连接使用 IPv4 或 IPv6。

      PreferredAddressFamily 选项在“客户端设置”选项卡上可用。

    • 备份服务器 — 用于在“服务器”字段中指定的服务器已关闭时连接到的主机名或 IP 地址的逗号分隔列表。可选。

    • 数据库 — Vertica 数据库的名称。

    • 用户名 — 在连接到数据库时使用的用户帐户的名称。在连接到 DSN 时,如果应用程序不提供自己的用户名,则会使用此帐户名称登录到数据库。

    其余字段是可选的。有关可以定义的 DSN 参数的详细信息,请参阅 DSN 参数

  7. 如果要测试连接,请执行下列操作:

    1. 至少输入有效的 DSN 名称服务器名称数据库,并输入用户名 或选择 Windows 身份验证

    2. 如果未选择 Windows 身份验证,您可以在密码 框中输入密码。或者,您也可以选择密码提示,以让驱动程序在连接时提示您输入密码。

    3. 单击测试连接

  8. 完成编辑和测试 DSN 后,单击确定。Vertica ODBC DSN 配置窗口将关闭,并且新的 DSN 会在“ODBC 数据源管理器”窗口中列出。

  9. 单击确定 (OK) 以关闭 ODBC 数据源管理器。

创建 DSN 后,您可以使用 Microsoft Excel 2007 进行测试。

在 64 位版本的 Microsoft Windows 上设置 32 位 DSN

在 64 位版本的 Windows 上,ODBC 数据源管理器在默认情况下会创建并编辑与 64 位 Vertica ODBC 库关联的 DSN。

尝试将这些 64 位 DSN 与 32 位客户端应用程序结合使用会生成架构不匹配错误。相反,您必须通过运行 32 位 ODBC 管理器为 32 位客户端创建特定的 32 位 DSN,该管理器通常位于以下位置:

c:\Windows\SysWOW64\odbcad32.exe

此管理器窗口可用于编辑与 32 位 ODBC 库关联的一组 DSN。使用此版本的 ODBC 管理器创建的 DSN 可与 32 位客户端应用程序结合使用。

4.4.2.2 - ODBC DSN 的密码加密

当您安装 ODBC 驱动程序并创建数据源名称 (DSN) 时,DSN 设置(其中包括)将存储在注册表中。ODBC DSN 的密码加密仅适用于 Windows 系统。

对 ODBC 数据源名称 (DSN) 的密码进行加密,可防止未经授权的数据库访问。密码默认不加密,以纯文本形式存储。

启用密码加密

使用 EncryptPassword 参数,可为 ODBC DSN 启用或禁用密码加密:

  • EncryptPassword = true 启用密码加密

  • EncryptPassword = false (默认)禁用密码加密

在 Windows 注册表中设置 EncryptPassword - HKEY_LOCAL_MACHINE > Software > Vertica > ODBC > Driver EncryptPassword=<true/false>

加密密码在以下注册表位置更新:

对于用户 DSN:

HKEY_CURRENT_USER-> Software -> ODBC -> ODBC.INI -> DSNNAME -> PWD

对于系统 DSN:

HKEY_LOCAL_MACHINE-> Software -> ODBC -> ODBC.INI -> DSNNAME -> PWD

验证密码加密

使用 Windows 注册表编辑器,根据 EncryptPassword 的值确定是否已启用密码加密。根据您安装的 DSN 类型,检查以下内容:

对于用户 DSN: HKEY_CURRENT_USER > Software > ODBC > ODBC.INI > dsn name > isPasswordEncrypted=<1/0>

对于系统 DSN: HKEY_LOCAL_MACHINE > Software > ODBC > ODBC.INI > dsn name > isPasswordEncrypted=<1/0>

对于每个 DSN,isPasswordEncrypted 参数值表示密码加密的状态。其中,1 表示密码已加密,0 表示密码未加密。

4.4.2.3 - 使用 Excel 测试 ODBC DSN

可以使用 Microsoft Excel 验证应用程序是否能够连接到 ODBC 数据源或其他 ODBC 应用程序。

  1. 打开 Microsoft Excel,然后选择数据 (Data) > 获取外部数据 (Get External Data) > 来自其他来源 (From Other Sources) > 来自 Microsoft Query (From Microsoft Query)

  2. 当“选择数据源 (Choose Data Source)”对话框打开之后:

    1. 请选择新建数据源 (New Data Source),然后单击确定 (OK)

      1. 输入数据源的名称。

      2. 选择 Vertica 驱动程序。

      3. 单击连接

  3. 当“Vertica 连接对话框 (Vertica Connection Dialog)”打开之后,输入 DSN 的连接信息,然后单击确定 (OK)

  4. 在“创建新数据源”对话框上单击确定,以返回到“选择数据源”对话框。

  5. 选择“VMart_Schema*”,并验证是否已取消选中“使用查询向导 (Use the Query Wizard)”复选框。单击确定 (OK)

  6. 当“添加表”对话框打开后,单击关闭

  7. 当“Microsoft 查询 (Microsoft Query)”窗口打开之后,单击 SQL 按钮。

  8. 在“SQL”窗口中,编写任意简单查询以测试连接。例如:

    SELECT DISTINCT calendar_year FROM date_dimension;
    
  9. *如果您看到提醒“SQL Query 无法以图形表示。是否继续?(SQL Query can't be represented graphically. Continue anyway?)”,请单击**确定 (OK)**。      *数据值 2003、2004、2005、2006、2007 表示已成功连接到 ODBC,并通过 ODBC 执行了查询。
    
  10. 选择文件 (File) > 将数据返回到 Microsoft Office Excel (Return Data to Microsoft Office Excel)

  11. 在“导入数据”对话框中,单击确定

    数据当前在 Excel 工作表中可用。

4.4.3 - 为 macOS 客户端创建 ODBC DSN

可以使用 Vertica ODBC 驱动程序设置 ODBC DSN。此过程假设您已按照安装 ODBC 客户端驱动程序中所述安装了驱动程序。

设置 DSN

  1. 使用 Web 浏览器下载并安装 Apple ODBC Administrator Tool

  2. 安装之后,找到并打开 ODBC 管理员工具:

    1. 导航至 Finder (查找器) > 应用程序 (Applications) > 实用程序 (Utilities)

    2. 打开 ODBC 管理员工具。

  3. 单击驱动程序 (Drivers) 选项卡,然后验证是否已安装 Vertica 驱动程序。

  4. 指定是否希望客户端系统上的所有用户都能访问 Vertica 数据库的 DSN:

    • 如果想让所有用户都可访问,则单击系统 DSN (System DSN) 选项卡。

    • 否则,单击用户 DSN (User DSN) 选项卡以创建仅供您的 Macintosh 用户帐户使用的 DSN。

  5. 单击添加... (Add...) 创建用于连接到 Vertica 数据库的新的 DSN。

  6. 滚动浏览“选择驱动程序 (Choose A Driver)”对话框中的驱动程序列表以查找 Vertica 驱动程序。选择该驱动程序,然后单击确定 (OK)。此时将打开一个对话框,请求提供 DSN 参数信息。

  7. 在对话框中,输入数据源名称 (DSN) 和可选的 描述 (Description)。为此,请单击 添加 (Add) 以插入关键字(参数)和定义连接到数据库所需设置的值,其中包括数据库名称、服务器主机、数据库用户名(例如 dbaadmin)、数据库密码和端口。然后单击确定 (OK).

  8. 在“ODBC Administrator”对话框中,单击应用 (Apply)

    有关包括 Vertica 特定参数的完整参数列表,请参阅 ODBC DSN 连接属性

配置 ODBC 管理员工具之后,您可能需要配置其他驱动程序设置才能使用 DSN,具体取决于环境。有关详细信息,请参阅其他 ODBC 驱动程序配置设置

4.4.3.1 - 使用 iodbctest 测试 ODBC DSN

Mac OS X 上的标准 iODBC 驱动程序管理器包含一个名为 iodbctest 的实用程序,您可以使用此实用程序测试 DSN,以验证该 DSN 是否配置正确。应向此命令传递与用于打开 ODBC 数据库连接的连接字符串格式相同的连接字符串。配置 DSN 连接之后,您可以运行查询以验证该连接是否正常工作。

例如:


# iodbctest "DSN=VerticaDSN;UID=dbadmin;PWD=password"
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.0607.1008
Driver: 07.01.0200 (verticaodbcw.so)
SQL> SELECT table_name FROM tables;
table_name
--------------------------------------------------------------------------------------------------------------------------------
customer_dimension
product_dimension
promotion_dimension
date_dimension
vendor_dimension
employee_dimension
shipping_dimension
warehouse_dimension
inventory_fact
store_dimension
store_sales_fact
store_orders_fact
online_page_dimension
call_center_dimension
online_sales_fact
numbers
result set 1 returned 16 rows.

4.4.4 - ODBC DSN 连接属性

下表列出了可以在 DSN 中设置以与 Vertica ODBC 驱动程序结合使用的连接属性。要设置这些参数,请参阅 设置 DSN 连接属性

所需的连接属性

若要创建正常工作的 DSN,您至少需要设置这些连接属性。

可选属性

高级设置

标识

OAuth 连接属性

以下连接属性与 ODBC 中的 OAuth 相关。

加密

第三方兼容性

Kerberos 连接属性

可以将以下属性用于使用 Kerberos 的客户端身份验证。

另请参阅

ODBC 驱动程序设置

4.4.5 - 设置 DSN 连接属性

以下表中的属性是所有用户 DSN 条目和所有系统 DSN 条目共用的。所提供的示例适用于 Windows 客户端。

要编辑 DSN 属性:

  • 在 UNIX 和 Linux 客户端平台上,您可以编辑 odbc.ini 文件。此文件的位置特定于驱动程序管理器。请参阅为 Linux 创建 ODBC DSN

  • 在 Windows 客户端平台上,您可以使用 Vertica ODBC 客户端驱动程序界面编辑部分 DSN 属性。请参阅为 Windows 客户端创建 ODBC DSN

  • 您也可以直接编辑 DSN 属性,方法是在 Windows 注册表中(例如在 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\\DSNname 中)打开 DSN 条目。直接编辑注册表会带来风险,因此,只应对无法通过 ODBC 驱动程序用户界面或客户端代码进行设置的属性使用此方法。

  • 当使用 SQLDriverConnect() 函数打开连接时,您可以在连接字符串中设置属性:

    sqlRet = SQLDriverConnect(sql_hDBC, 0, (SQLCHAR*)"DSN=DSNName;Locale=en_GB@collation=binary", SQL_NTS, szDNS, 1024,&nSize, SQL_DRIVER_NOPROMPT);
    
  • 已使用 SQLGetConnectAttr()SQLGetStmtAttr() API 调用建立与 Vertica 的连接后,客户端代码可以检索 DSN 属性值。可以使用 SQLSetConnectAttr()SQLSetStmtAttr() 设置部分属性。

    有关特定于 Vertica 的属性的列表,请参阅特定于 Vertica 的 ODBC 头文件

4.5 - ODBC 驱动程序设置

  • DriverManagerEncoding:驱动程序管理器使用的 UTF 编码标准。可以是以下内容之一:

    • UTF-8

    • UTF-16

    • UTF-32

    ODBC 驱动程序编码必须与驱动程序管理器的编码相匹配。下表列出了不设置该参数时生效的各种平台的默认编码。如果默认值与驱动程序管理器使用的编码不匹配,则必须进行手动设置。有关驱动程序管理器编码的详细信息,请参阅驱动程序管理器文档。

  • ErrorMessagesPath:必需,包含 ODBC 驱动程序的错误消息文件的目录路径。这些文件(ODBCMessages.xmlVerticaMessages.xml)存储在 Vertica ODBC 驱动程序文件所在的目录(例如,已下载的 .tar 所在的 opt/vertica/en-US)中。

  • ODBCInstLib:ODBC 安装程序库的路径。只有当未在 LD_LIBRARY_PATHLIB_PATH 环境变量中设置包含该库的目录时,才需要此设置。主要驱动程序管理器的库文件如下:

    • UnixODBC: libodbcinst.so

    • iODBC: libiodbcinst.so (在 macOS 上为 libiodbcinst.2.dylib

    • DataDirect: libodbcinst.so

您还可以控制 ODBC 和 ADO.NET 的客户端-服务器消息日志记录。有关详细信息,请参阅配置 ODBC 日志

Linux 和 macOS

要在 Linux 或 macOS 上设置这些参数:

  1. 在客户端系统的任何位置创建文件 vertica.ini。公共位置在共享配置的 /etc/ 中,或者在每个用户配置的主目录中。

  2. 验证 ODBC 驱动程序的用户是否具有文件的读取权限。

  3. VERTICAINI 环境变量设置为 vertica.ini 的路径。例如:

    $ export VERTICAINI=/etc/vertica.ini
    
  4. vertica.ini 中创建名为 [Driver] 的部分:

    [Driver]
    
  5. [Driver] 下,按如下格式设置参数。每个参数必须有其自己的行:

    [Driver]
    DriverManagerEncoding=UTF-16
    ODBCInstLib=/usr/lib64/libodbcinst.so
    

Windows

Windows 客户端驱动程序安装程序自动为 ODBC 驱动程序配置所有必要的设置。设置存储在注册表中的 HKEY_LOCAL_MACHINE\SOFTWARE\Vertica\ODBC\Driver 下。

如果要进一步配置 ODBC,请使用 ODBC 数据源 程序。

4.6 - 配置 ODBC 日志

以下参数控制 ODBC 客户端驱动程序是否以及如何记录客户端和服务器之间的消息。

设置这些参数的方式因操作系统不同而异:

  • 在 Linux 和 macOS 上,编辑您在安装期间创建的 vertica.ini。例如,要将所有警告和更严重的消息记录到 /tmp/ 中的日志文件:

    [Driver]
    LogLevel=4
    LogPath=/tmp
    
  • 在 Windows 上的 Windows 注册表中,编辑 HKEY_LOCAL_MACHINE\SOFTWARE\Vertica\ODBC\Driver 下面的键。

参数

  • LogLevel:在客户端和服务器之间记录的消息的严重性。有效值包括:

    • 0:无日志记录

    • 1:严重错误

    • 2:错误

    • 3:警告

    • 4:信息

    • 5:Debug

    • 6:跟踪(所有消息)

    为此设置指定的值设置了要记录的消息的最低严重性。例如,如果将 LogLevel 设置为 3,则表示客户端驱动程序将记录所有警告、错误和严重错误。

  • LogPath:用于存储日志文件的目录的绝对路径。例如: /var/log/verticaodbc

将日志条目转移到 ETW (Windows)

在 Windows 客户端上,可以将 ODBC 日志条目发送到 Windows 事件跟踪 (ETW),以便它们显示在 Windows 事件查看器中:

  • 将驱动程序注册为 Windows 事件日志提供程序,并启用日志。

  • 通过将带有数据 ETW 的字符串值 LogType 添加到 Windows 注册表来激活 ETW。

  • 了解 Vertica 如何压缩 Windows 事件查看器的日志级别。

  • 了解在事件查看器中的何处可以找到日志。

  • 了解日志条目中事件 ID 的含义。

将 ODBC 驱动程序注册为 Windows 事件日志提供程序

要使用 ETW 日志记录,必须将 ODBC 驱动程序注册为 Windows 事件日志提供程序。您可以选择注册 32 位或 64 位驱动程序。注册驱动程序后,必须启用日志。

  1. 以管理员身份打开命令提示符窗口,或使用“以管理员身份运行 (Run as Administrator)”选项启动命令提示符。

  2. 运行命令 wevtutil im 以注册 32 位或 64 位版本的驱动程序。

    • 对于 64 位 ODBC 驱动程序,运行:

      wevtutil im "c:\Program Files\Vertica Systems\ODBC64\lib\VerticaODBC64.man"
      /resourceFilePath:"c:\Program Files\Vertica Systems\ODBC64\lib\vertica_9.1_odbc_3.5.dll"
      /messageFilePath:"c:\Program Files\Vertica Systems\ODBC64\lib\vertica_9.1_odbc_3.5.dll"
      
    • 对于 32 位 ODBC 驱动程序,运行:

      wevtutil im "c:\Program Files (x86)\Vertica Systems\ODBC32\lib\VerticaODBC32.man"
      /resourceFilePath:"c:\Program Files (x86)\Vertica Systems\ODBC32\lib\vertica_9.1_odbc_3.5.dll"
      /messageFilePath:"c:\Program Files (x86)\Vertica Systems\ODBC32\lib\vertica_9.1_odbc_3.5.dll"
      
  3. 运行命令 wevtutil sl 以启用日志。

    • 对于 64 位 ODBC 驱动程序日志,运行:

      wevtutil sl VerticaODBC64/e:true
      
    • 对于 32 位 ODBC 驱动程序日志,运行:

      wevtutil sl VerticaODBC32/e:true
      

添加字符串值 LogType

默认情况下,Vertica 不会将 ODBC 日志条目发送到 ETW。要激活 ETW,请将字符串 LogType 添加到 Windows 注册表,并将其值设置为 ETW

  1. 通过在 Windows“运行 (Run)”命令框中键入 regedit.exe 来启动注册表编辑器。

  2. 导航到注册表中的 HKEY_LOCAL_MACHINE\SOFTWARE\Vertica\ODBC\Driver

  3. 注册表编辑器 (Registry Editor) 窗口的右窗格中右键单击。

  4. 选择新建 (New),然后选择字符串值 (String Value)

  5. 将字符串值的名称从 New Value #1 更改为 LogType

  6. 双击新的 LogType 条目。当系统提示输入新值时,输入 ETW

  7. 退出注册表编辑器。

默认情况下,禁用 ETW。启用 ETW 后,您可以通过从 LogType 字符串中清除值 ETW 来禁用它。

虽然 LogLevel 的范围从 0 到 6,但对于 Windows 事件查看器,此范围被压缩到 0 到 3 的范围。

以下示例显示了在 Windows 事件查看器中显示时如何转换 LogLevel。

  • LogLevel 为 5 将致命错误、错误、警告、信息和调试日志级别条目作为级别 4(信息)发送到事件查看器。

  • LogLevel 为 6 将致命错误、错误、警告、调试和跟踪日志级别条目作为级别 4 发送到事件查看器。

在事件查看器中查找日志

  1. 启动 Windows 事件查看器

  2. 事件查看器(本地) (Event Viewer (Local)),展开应用程序和服务日志 (Applications and Services Logs)

  3. 展开包含您要查看的日志的文件夹(例如 VerticaODBC64)。

  4. 选择文件夹下的 Vertica ODBC 日志。条目出现在右窗格中。

  5. 请注意事件 ID (Event ID) 字段中的值。每个事件日志条目包含四个事件 ID 之一:

    • 0:信息性(调试、信息和跟踪事件)

    • 1:错误

    • 2:严重事件

    • 3:警告

5 - Python 客户端驱动程序

Vertica 支持多个用于创建客户端应用程序的 Python 驱动程序。

先决条件

要创建 Python 客户端应用程序,您必须安装所需的驱动程序。

5.1 - 安装 Python 客户端驱动程序

Vertica 支持多个 Python 客户端驱动程序。

安装 Vertica-Python

有关安装和使用说明,请参阅 Vertica-Python 存储库。

安装 Pyodbc

Pyodbc 模块与 Vertica ODBC 客户端驱动程序交互。要安装它:

  1. 安装 ODBC 客户端驱动程序

  2. 安装兼容版本PythonPyodbc

6 - Node.js 客户端驱动程序

开源 vertica-nodejs 客户端驱动程序允许您使用 JavaScript 与数据库交互。有关详细信息,请参阅 npm 上的 vertica-nodejs 包

7 - OLE DB 客户端驱动程序

OLE DB 客户端驱动程序是 Microsoft Analysis Services (SSAS)C# 客户端应用程序与 Vertica 数据库交互的接口。

7.1 - 安装 OLE DB 客户端驱动程序

要安装 Vertica OLE DB 客户端驱动程序:

  1. 下载 Windows 客户端驱动安装程序。有关此安装程序中包含的驱动程序的详细信息,请参阅 Windows 客户端驱动程序安装程序

  2. 运行安装程序并按照提示安装驱动程序。

  3. 重新启动系统。

安装 OLE DB 客户端驱动程序后,您可以配置 ETW 日志记录

有关 OLE DB 客户端驱动程序如何与其他 Microsoft 组件集成的详细信息,请参阅 Microsoft 组件配置

有关连接属性的列表,请参阅 OLE DB 连接属性

7.1.1 - OLE DB 连接属性

可以使用“连接管理器 (Connection Manager)”设置 OLE DB 连接字符串属性,这些属性定义了连接。可以从 Visual Studio 中访问“连接管理器 (Connection Manager)”。

这些连接参数会显示在“连接 (Connection)”页面上。

连接管理器 (Connection Manager) 对话框中的 全部 (All) 页面列出了提供程序的所有可能的连接字符串属性。

下表列出了全部 (All) 页面中的连接参数。

有关特定于 Microsoft 的 OLE DB 属性,请参阅 Microsoft 文档 [OLE DB Properties](https://msdn.microsoft.com/en-us/library/windows/desktop/ms723130(v=vs.85)

7.1.2 - 配置 OLE DB 日志

以下参数控制 OLE DB 客户端驱动程序如何记录客户端和服务器之间的消息。要设置它们,请编辑 Windows 注册表中 HKEY_LOCAL_MACHINE\SOFTWARE\Vertica\OLEDB\Driver 下的密钥:

  • LogLevel:在客户端和服务器之间记录的消息的严重性。有效值包括:

    • 0:无日志记录

    • 1:严重错误

    • 2:错误

    • 3:警告

    • 4:信息

    • 5:调试

    • 6:跟踪(所有消息)

    为此设置指定的值设置了要记录的消息的最低严重性。例如,如果将 LogLevel 设置为 3,则表示客户端驱动程序将记录所有警告、错误和严重错误。

  • LogPath:用于存储日志文件的目录的绝对路径。例如: /var/log/verticaoledb

将 OLE DB 日志条目转移到 ETW

在 Windows 客户端上,您可以指示 Vertica 将 OLE DB 日志条目发送到 Windows 事件跟踪 (ETW)。设置后,OLE DB 日志条目将出现在 Windows 事件查看器中。要使用 ETW:

  • 将驱动程序注册为 Windows 事件日志提供程序,并启用日志。

  • 通过将字符串值添加到 Windows 注册表来激活 ETW。

  • 了解 Vertica 如何压缩 Windows 事件查看器的日志级别。

  • 了解在事件查看器中的何处可以找到日志。

  • 了解日志条目中事件 ID 的含义。

将 OLE DB 驱动程序注册为 Windows 事件日志提供程序

要使用 ETW 日志记录,您必须将 OLE DB 驱动程序注册为 Windows 事件日志提供程序。您可以选择注册 32 位或 64 位驱动程序。注册驱动程序后,您必须启用日志。

  1. 以管理员身份打开命令提示符窗口,或使用“以管理员身份运行 (Run as Administrator)”选项启动命令提示符。

  2. 运行命令 wevtutil im 以注册 32 位或 64 位版本的驱动程序。

    1. 对于 64 位 OLE DB 驱动程序,运行:

      wevtutil im "c:\Program Files\Vertica Systems\OLEDB64\lib\VerticaOLEDB64.man"
      /resourceFilePath:"c:\Program Files\Vertica Systems\OLEDB64\lib\vertica_8.1_oledb.dll"
      /messageFilePath:"c:\Program Files\Vertica Systems\OLEDB64\lib\vertica_8.1_oledb.dll"
      
    2. 对于 32 位 OLE DB 驱动程序,运行:

      wevtutil im "c:\Program Files (x86)\Vertica Systems\OLEDB32\lib\VerticaOLEDB32.man"
      /resourceFilePath:"c:\Program Files (x86)\Vertica Systems\OLEDB32\lib\vertica_8.1_oledb.dll"
      /messageFilePath:"c:\Program Files (x86)\Vertica Systems\OLEDB32\lib\vertica_8.1_oledb.dll"
      
  3. 运行命令 wevtutil sl 以启用日志。

    1. 对于 64 位 OLE DB 驱动程序日志,运行:

      wevtutil sl VerticaOLEDB64/e:true
      
    2. 对于 32 位 ODBC 驱动程序日志,运行:

      wevtutil sl VerticaOLEDB32/e:true
      

添加字符串值 LogType

默认情况下,Vertica 不会将 OLE DB 日志条目发送到 ETW。要激活 ETW,请将字符串 LogType 添加到 Windows 注册表,并将其值设置为 ETW

  1. 通过在 Windows“运行 (Run)”命令框中键入 regedit.exe 来启动注册表编辑器。

  2. 在注册表中,导航到:HKEY_LOCAL_MACHINE\SOFTWARE\Vertica\OLEDB\Driver

  3. 注册表编辑器 (Registry Editor) 窗口的右窗格中右键单击。

  4. 选择新建 (New),然后选择字符串值 (String Value)

  5. 将字符串值的名称从 New Value #1 更改为 LogType

  6. 双击新的 LogType 条目。当系统提示输入新值时,输入 ETW

  7. 退出注册表编辑器。

默认情况下,ETW 设置为 off。激活 ETW 后,您可以稍后通过从 LogType 字符串中清除值 ETW 将其关闭。

虽然 LogLevel 的范围从 0 到 6,但对于 Windows 事件查看器,此范围被压缩到 0 到 3 的范围。

以下示例显示了在 Windows 事件查看器中显示时如何转换 LogLevel。

  • LogLevel 为 5 将致命错误、错误、警告、信息和调试日志级别条目作为级别 4(信息)发送到事件查看器。

  • LogLevel 为 6 将致命错误、错误、警告、调试和跟踪日志级别条目作为级别 4 发送到事件查看器。

在事件查看器中查找日志

  1. 启动 Windows 事件查看器

  2. 事件查看器(本地) (Event Viewer (Local)),展开应用程序和服务日志 (Applications and Services Logs)

  3. 展开包含您要查看的日志的文件夹(例如 VerticaOLEDB64)。

  4. 选择文件夹下的 Vertica ODBC 日志。条目出现在右窗格中。

  5. 请注意事件 ID (Event ID) 字段中的值。每个事件日志条目包含四个事件 ID 之一:

    • 0:信息性(调试、信息和跟踪事件)

    • 1:错误

    • 2:严重事件

    • 3:警告

7.2 - 适用于 Windows 的 Microsoft Connectivity Pack

适用于 Windows 的 Vertica Microsoft Connectivity Pack 提供了一个用于访问 Microsoft Business Intelligence 工具的配置文件。Connectivity Pack 作为 Windows 客户端驱动程序和工具的一部分安装。

有关 Microsoft Connectivity Pack 中包含的组件的详细信息,请参阅 Microsoft 组件

7.2.1 - Microsoft 组件

本节介绍可与 Microsoft Visual Studio 和 Microsoft SQL Server 结合使用的 Microsoft Business Intelligence 组件。配置后,您可以使用这些 Microsoft 组件来开发使用 Vertica 服务器的业务解决方案。

7.2.1.1 - Microsoft 组件配置

使用 Vertica ADO.NET 驱动程序、Visual Studio 插件和 OLE DB 驱动程序,您可以将 Vertica 服务器与包含先前已安装在系统上的 Microsoft 组件的环境集成。还有其他工具可用于与 Microsoft SQL Server 集成。

可用的驱动程序提供了与以下 Microsoft 组件的集成:

  • 适用于 Visual Studio 2008 的 Business Intelligence Development Studio (BIDS),与 SQL Server 2012 结合使用。BIDS 是一个基于客户端的应用程序,用于开发基于 Microsoft Visual Studio 开发环境的商业智能解决方案。此应用程序包含其他特定于 SQL Server Business Intelligence 的项目类型。作为开发人员,您可以使用 BIDS 开发业务解决方案。

  • 适用于 Visual Studio 2008/2010/2012/2013/2015 的 SQL Server Data Tools - Business Intelligence (SSDT-BI),与 SQL Server 2012、SQL Server 2014 和 SQL Server 2016 结合使用。SSDT-BI 取代适用于 Visual Studio 2008、Visual Studio 2010、Visual Studio 2012、Visual Studio 2013 和 Visual Studio 2015 的 BIDS。此组件的用途与 BIDS 相同,即提供用于开发商业智能解决方案的开发环境。

  • 适用于 SQL Server 2012、SQL Server 2014 和 SQL Server 2016 的 SQL Server Analysis Services (SSAS)。可以使用 SSAS 进行 OLAP 和数据挖掘,同时使用 Vertica 作为多维数据集创建的源。

  • 适用于 SQL Server 2012、SQL Server 2014 和 SQL Server 2016 的 SQL Server Integration Services (SSIS)。SSIS 提供了 SQL Server 类型映射,用于在 Vertica 和 SQL Server 之间映射数据类型。可以将 SSIS 用于数据迁移、数据集成和工作流以及 ETL。

下图显示了 Microsoft 组件和 Vertica 依赖项之间的关系。

7.2.1.2 - BIDS 和 SSDT-BI

Microsoft Visual Studio 2008 中提供 Business Intelligence Development Studio (BIDS) 和其他特定于 SQL Server Business Intelligence 的项目类型。BIDS 是用于开发包括分析服务、集成服务和报告服务项目在内的业务解决方案的主要环境。

SQL Server Data Tools - Business Intelligence (SSDT-BI) 取代适用于 Visual Studio 2010、2012、2013 和 2015 的 BIDS。此组件的用途与 BIDS 相同,即提供用于开发业务解决方案的开发环境。

BIDS 和 SSDT-BI 都是基于客户端的应用程序,并且都包含其他特定于 SQL Server Business Intelligence 的项目类型。

可以使用 Visual Studio Shell 集成插件从 Visual Studio Server Explorer 中浏览数据库。使用此功能,您可以在 BIDS 或 SSDT-BI 开发环境外部工作,以执行诸如列出表或插入数据等任务。在 BIDS 或 SSDT-BI 模式下使用 Visual Studio 时,您可以使用 Vertica 数据库中的数据开发业务解决方案。例如,您可以创建多维数据集或打开表。

Microsoft 不支持以下配置:

  • 不能将 Microsoft Visual Studio 2008 与 BIDS 开发环境结合使用以创建 SQL Server 2012 Business Intelligence 解决方案。

  • 不能将 Microsoft Visual Studio 2010/2012/2013/2015 与 SSDT-BI 开发环境结合使用以创建 SQL Server 2008 Business Intelligence 解决方案。

7.2.1.3 - SQL Server Analysis Services (SSAS) 支持

BIDS 或 SSDT-BI 包含 Analysis Services 项目,该项目可用于开发适用于商业智能应用程序的联机分析处理 (Online Analytical Processing, OLAP)。此项目类型包含以下内容的模板:

  • 多维数据集

  • 维度

  • 数据源

  • 数据源视图

它还提供处理这些对象的工具。

可以在 OLE DB 连接属性 中找到 OLE DB 连接属性。

7.2.1.4 - SQL Server Integration Services (SSIS) 支持

BIDS 或 SSDT-BI 包含用于开发 ETL 解决方案的 Integration Services 项目。此项目类型包含以下内容的模板:

  • 数据源

  • 数据源视图

它还提供处理这些对象的工具。

通过 SSIS 和导入/导出向导,您可以使用 Vertica 作为数据源和数据目标。必须在集成服务器和 BIDS 工作站或 SSDT-BI 工作站上安装特定于 Vertica 的映射文件才能启用此功能。适用于 Windows 的 Vertica 客户端驱动程序和工具将以 32 位和 64 位版本安装这些映射文件作为“SQL Server 类型映射”组件。

7.2.1.5 - SQL Server Reporting Services (SSRS) 支持

BIDS 或 SSDT-BI 包含用于开发报表解决方案的报表项目。

可以使用 Vertica 作为 Reporting Services 的数据源。安装程序将实施各种配置文件修改,以在 BIDS 工作站或 SSDT-BI 工作站和 Reporting Services 服务器上启用此功能。

7.2.2 - 兼容性问题和限制

本节列出兼容性问题以及将 Microsoft Connectivity Pack 与 Microsoft Visual Studio 和 Microsoft SQL Server 集成的限制。

7.2.2.1 - BIDS 和 SSDT-BI 限制

BIDS 和 SSDT-BI 是适用于 Analysis Services、Integration Services 和 Reporting Services 项目的 32 位开发环境。它们并非设计用于在 64 位 Itanium 架构上运行,因此不会安装在 Itanium 服务器上。

7.2.2.2 - SSAS 限制

  • 不支持 SSAS 表格模型。

  • 安装 Vertica OLE DB 驱动程序后,如果 SSAS 多维数据集构建失败,请重新启动 SSAS 服务。

7.2.2.3 - SSIS 数据类型限制

以下部分介绍了使用 SQL Server Integration Services (SSIS) 时的数据类型限制。

时间数据传输

传输时间数据时,SSIS 使用支持超过六位数精度的 TimeSpan 数据类型。Vertica ADO.NET 驱动程序会将 TimeSpan 转换为最多支持六位数的 Interval 数据类型。传输过程中,Interval 类型不会转换为 TimeSpan 类型。因此,如果时间值的精度超过六位数,则数据会被截断(而不是舍入)。

有关 ADO.NET 数据类型的信息,请参考 ADO.NET 数据类型

DATE 和 DATETIME 精度

为确保正常运行而不发生错误,DATE 和 DATETIME 的范围介于 0001-01-01 00:00:00.0000000 到 9999-12-31 23:59:59.999999 之间。

在 SSIS 中,DATETIME 类型 (DT_TIMESTAMP) 对秒最多支持三个小数位。系统会自动丢弃后面的小数。只能对介于 January 1, 1753 到 December 31, 9999 之间的 DATETIME 值执行派生列转换。

数值精度

允许的最大和最小十进制值为:

  • 最大值: +79,228,162,514,264,337,593,543,950,335

  • 最小值: -79,228,162,514,264,337,593,543,950,335

例如,如果位数是 16,值的范围为:

+/- 7,922,816,251,426.4337593543950335

有效位数范围为小于 29 以及大于 38 的任何数字。使用 29 和 38 之间的小数位数不会生成错误。

请参阅:http://msdn.microsoft.com/en-us/library/system.decimal.maxvalue.aspx

不支持的浮点值

SQL Server 不支持 NaN、Infinity 或 –Infinity 值。使用 SSIS 在 Vertica 实例之间进行传输时,可以使用这些值,但这些值不能用于 SQL Server 目标。

字符串转换

在 SSIS 中使用的 CHAR 和 VARCHAR 数据类型为 DT_WSTR,其最大长度是 4000 个字符。

在 SSIS 中,Vertica 字符串会转换为 SSIS 中的 Unicode 字符串,以处理多语言数据。可以使用数据转换任务将这些字符串转换为 ASCII。

标度

只要所使用的小数位数超过 38,SSIS 就会将其替换为值 4。

区间转换

SSIS 不支持间隔类型。它会将这些类型转换为 TIME,并去除日组件。时间间隔类型超过一天的任何包将返回不正确的结果。

SQL Server 导入和导出向导的数据映射问题

使用 SQL Server 导入和导出向导创建集成服务包 (SSIS) 时,某些数据类型无法自动正确映射。将该向导与以下提供程序结合使用时,将出现映射问题:

  • 适用于 SQL Server 2008 或 SQL Server 2012 的 SQL Server Native OLE DB 提供程序

  • 适用于 SQL Server 2010/2012 的 SQL Server Native Client 10.0/11.0 提供程序

要避免此问题,请使用 BIDS 或 SSDT-BI 手动更改类型映射。

数据传输失败

将集成服务包 (SSIS) 与适用于 SQL Server 2008 或 SQL Server 2012 的 SQL Server OLE DB 提供程序结合使用时,如果是从 Vertica 传输到 SQL Server,则某些数据类型的传输会失败。若要避免此问题,请使用 BIDS 或 SSDT-BI 传输数据。

VARBINARY/LONG VARBINARY 数据类型的批量插入

有时,VARBINARY 或 LONG VARBINARY 数据类型的批量插入的行之一会超过数据类型限制:

  • VARBINARY:65 KB

  • LONG VARBINARY:32 MB

在这种情况下,将拒绝所有行,而非仅拒绝长度超过类型限制的行。批量插入将失败,并显示消息“行被拒绝 (row(s) are rejected)”。

若要避免此问题,请使用谓词从源中筛选出无法适应接收数据库的行。

SQL Server 查询设计器布尔查询

在 SQL Server 查询设计器中发出布尔查询时,必须用引号将布尔列值括起来。否则,您将收到 SQL 执行错误(例如,someboolean = 'true')。

7.2.2.4 - SSRS 限制

数据连接向导解决方法

SSRS 报表向导提供一个数据连接向导。选择该向导并输入所有连接信息后,确定 按钮被禁用。您无法保存工作,也无法继续操作。解决方法是不要使用该向导,并改为使用以下面板:

报表向导 - 查询设计器

Vertica 使用报表向导的通用查询设计器。其他数据源使用支持以可视化方式构建查询的图形查询设计器。图形查询设计器是名为 Visual Data Tools (VDT) 的程序包的一部分。图形查询设计器只能与通用 OLE DB 提供程序和内置提供程序配合工作。您不能将其与 Vertica 数据提供程序结合使用。

报表生成器

Report Builder 是一款基于 Web 的报告设计工具。此工具不支持使用自定义数据扩展来创建报表,因此您不能将其与 Vertica 结合使用。使用报表生成器创建报表时,现有 Vertica 数据源会显示在可用数据源的列表中。但是,选择 Vertica 数据源会导致发生错误。

映射 Vertica ** 目标时未自动提供架构名称**

目前,当您映射 Vertica 目标时,不会自动提供架构名称。您必须手动输入架构名称或从下拉菜单中选择架构名称,如下所示:

8 - ADO.NET 客户端驱动程序

Vertica ADO.NET 驱动程序允许您使用 C# 访问 Vertica

8.1 - 安装 ADO.NET 客户端驱动程序

先决条件

ADO.NET 客户端驱动程序需要以下条件:

  • 支持的操作系统

  • 至少 512MB 内存

  • .NET Framework 的支持版本。如果您不满足此要求,在大多数情况下,安装程序会主动为您安装。

安装

要安装 ADO.NET 客户端驱动程序:

  1. 下载 Windows 客户端驱动安装程序。有关此安装程序中包含的驱动程序的详细信息,请参阅 Windows 客户端驱动程序安装程序

  2. 运行安装程序并按照提示安装驱动程序。

  3. 重新启动系统。