跳转至

Vertica 集成 MATLAB

连接指南

关于 Vertica 连接指南

Vertica 连接指南提供将第三方合作伙伴产品连接到 Vertica 的基本说明。连接指南基于我们针对特定版本的 Vertica 和合作伙伴产品的测试。

Vertica 和 MATLAB:测试版本

软件 版本
合作伙伴产品 MATLAB 9.12.0.1884302(试用版)
合作伙伴平台 Windows 2019 Standard Server
Vertica 客户端 Vertica JDBC driver 11.1.0
Vertica 服务器 Vertica Server 11.1.0

MATLAB 概述

MATLAB 是 MathWorks 开发的高性能技术计算平台。在商业智能环境中,您可以将其用于数据分析、探索和可视化。使用 MATLAB,您可以从源数据库导入数据,使用可用函数转换数据,并将数据写入目标数据库。

MATLAB 适用于 Windows 和 Linux,并使用 JDBC 连接到您的 Vertica 数据库。

安装 MATLAB

  1. 访问 MathWorks 网站
  2. 点击右上角的 Get MATLAB
  3. 点击 Download a Trial(下载试用版)。
  4. 登录您的 MathWorks 账户或创建账户以继续下载。
  5. 下载并运行软件的免费试用版。
  6. 有关在 Linux 上安装 MATLAB 的说明,请遵循 MATLAB 用户指南

安装 Vertica 客户端驱动

MATLAB 使用 JDBC 客户端驱动连接到您的 Vertica 数据库。

  1. 访问 Vertica 网站上的 Vertica Client Drivers 页面。
  2. 下载与您的 Vertica 服务器版本兼容的 Vertica JDBC 驱动。

    注意:有关客户端和服务器兼容性的详细信息,请参阅 Vertica 文档中的 Client Driver and Server Version Compatibility

  3. 将 JDBC jar 文件放置在系统上的某个位置。

连接 MATLAB 到 Vertica

  1. 从安装目录打开 MATLAB,或双击 MATLAB 桌面图标。
  2. MATLAB 桌面应用程序打开后,从菜单点击 APPS > Database Explorer
  3. 将打开 Database Explorer(数据库资源管理器)窗口。
  4. 点击 Configure Data Source(配置数据源),选择 Configure JDBC data source(配置 JDBC 数据源)。
  5. 将出现 JDBC Data Source Configuration(JDBC 数据源配置)对话框。
  6. 输入以下连接信息:
  7. Name(名称):输入您的连接或数据源名称。
  8. Vendor(供应商):选择 Other(其他)。
  9. Driver Location(驱动位置):浏览到 Vertica JDBC jar 文件的位置。
  10. Driver(驱动):提供驱动类名。Vertica 的驱动类名为 com.vertica.jdbc.Driver
  11. URL:数据库 JDBC 连接 URL,例如:
    jdbc:vertica://<Vertica_Server>:5433/<DB_Name>
    
    其中:
    • <Vertica_Server> 是 Vertica 服务器的 IP 或服务器名称
    • 5433 是端口号
    • <DB_Name> 是 Vertica 数据库名称
  12. 点击 Test(测试)。将出现 Test Connection(测试连接)对话框。
  13. 输入您的数据库凭据,点击 Test
  14. 将显示连接成功的消息。
  15. 点击 OK,然后点击 Save(保存)并关闭对话框。
  16. 现在已创建到 Vertica 的 JDBC 连接。
  17. 关闭 Database Explorer,返回 MATLAB 桌面应用程序的 HOME 页面。

从 Vertica 读取或导入数据

  1. 从菜单点击 APPS > Database Explorer
  2. 在 Database Explorer 工具栏中,点击 Connect(连接),从下拉列表中选择您在"连接 MATLAB 到 Vertica"部分创建的数据源。
  3. 输入数据库凭据并点击 Connect
  4. 从下拉列表中选择 Catalog 或数据库名称以及 Schema 名称,点击 OK
  5. 在屏幕左侧的 Data Browser(数据浏览器)区域中,选择要检索数据的表和列。

    注意:相应的 SQL 和查询结果可以同时在右侧看到。

  6. 在 Database Explorer 工具栏中点击 Import Data(导入数据)。 Import Data 有三个选项:
  7. Import Data:将查询结果以表的形式存储在 MATLAB 变量中。
  8. Generate SQL Query:将查询语句保存为 .SQL 文件。
  9. Generate MATLAB Script:将查询语句保存为 MATLAB 脚本格式。
  10. 本文档使用第一个选项将查询结果导入 MATLAB 变量:点击 Import(导入)。
  11. 关闭 Database Explorer,返回 MATLAB 桌面应用程序的 HOME 页面。
  12. 要查看存储在变量中的数据,点击 MATLAB 桌面应用程序顶部菜单的 VARIABLE 选项卡。

将数据写入 Vertica

以下是将数据写入 Vertica 表的基本示例:

  1. 打开 MATLAB 桌面应用程序。在命令窗口区域中,输入 database 函数以输入 Vertica 数据库的连接信息:
    conn = database('datasource', 'username', 'password')
    
    其中:
  2. datasource 是 Vertica JDBC 连接的名称
  3. username 是连接到 Vertica 的用户名
  4. password 是连接到 Vertica 的密码

注意:要创建新的 JDBC 连接到 Vertica,请使用 Database Explorer 中的 JDBC Data Source Configuration,如"连接 MATLAB 到 Vertica"所述。

  1. 创建要写入 Vertica 的表。首先创建工作区变量来保存数据:

    LastName = {'Sanchez';'Johnson';'Li';'Diaz';'Brown'};
    Age = [38;43;38;40;49];
    Height = [71;69;64;67;64];
    Weight = [176;163;131;133;119];
    BloodPressure = [124.93; 109.77; 125.83; 117.75; 122.80];
    

  2. 使用包含工作区变量的 table 函数:

    Data = table(LastName, Age, Height, Weight, BloodPressure);
    
    有关 table 函数的更多信息,请参阅 MATLAB 文档

  3. 指定 Vertica 中要插入数据的目标表:

    Tablename = 'public.Test_Table';
    

  4. 执行 sqlwrite 函数将数据插入到上面指定的 Vertica 表中:

    sqlwrite(conn, Tablename, Data);
    

注意:如果 Vertica 中不存在该表,MATLAB 会在 sqlwrite 命令执行期间创建表并加载数据。如果表已存在,数据将追加到现有表中。

  1. 您还可以通过 Database Explorer 的 Import Data 选项将 Vertica 表的数据导入到变量(例如 data_variable)中,然后使用以下格式的 sqlwrite 函数将数据写入 Vertica:
    sqlwrite(conn, tablename, data_variable);
    

已知限制

使用 MATLAB 前请查看以下已知限制:

  • TIME 数据类型:数据显示时毫秒四舍五入,数据写入操作时毫秒被截断。
  • TIMETZ 数据类型:毫秒和时区偏移被截断。
  • TIMESTAMPTZ 数据类型:不显示时区偏移。
  • BINARY、VARBINARY 和 LONG VARBINARY 数据类型:无法加载到目标表中,显示错误消息。
  • UUID 数据类型:不显示或加载。
  • INTERVAL SECOND 和 INTERVAL MONTH 数据类型:不显示或加载。
  • INTEGER 数据类型:数据显示最多 9 位,加载最多 16 位,超过后显示错误 Row Rejected by Server
  • DECIMAL 数据类型:数据显示最多 7 位,超过后以指数形式显示。数据加载最多 16 位,超过后显示错误 Row Rejected by Server

更多信息


原文来源:https://www.vertica.com/kb/MatLab-Connection-Guide.htm/Content/Partner/MatLab-Connection-Guide.htm