IBM dashDB Local 从入门到精通,第 2 部分 IBM 私有云数据仓库解决方案介绍(5)
 
- UID
- 1066743
|

IBM dashDB Local 从入门到精通,第 2 部分 IBM 私有云数据仓库解决方案介绍(5)
dashDB Local 支持 R 及 SPARK 分析dashDB Local 不仅包含了丰富的 Netezza 库内分析函数,同时还内置了开源的 R 及 Apache Spark 分析功能,再加上 BLU 的列式存储、动态内存加速技术,不仅可以提供强大的分析能力,而且分析效率很高,可以充分满足目前用户数据分析的需求。
用户使用 dashDB Local 进行数据分析主要可以通过以下两种途径:
- Netezza 兼容的 SQL 接口及 Spark submit 命令
- 标准的 Spark API 并带有对 dashDB 优化的连接功能
如下图所示,dashDB Local 支持目前主流的数据分析、机器学习、数据挖掘工具,包括经典的 SPSS、SAS 等数据挖掘工具,也支持现在流行的数据科学家分析工具 Jupyter Notebook、R Studio,也支持基于 SaaS 的数据认知工具 Watson Analytics。从接口层面,dashDB Local 可以通过 SQL API 来调用 Netezza 库内分析函数在 dashDB Local 数据节点中并行运算;也可以使用 Scala、Python、Java、R 语言调用 Spark API 或调用 spark-submit.sh 命令在 Spark 集群的 worker 节点上并行运算。
图 10. dashDB Local 对 R 及 Apache Spark 的支持 dashDB Local 对 R 的支持
dashDB Local 对 R 的支持同 dashDB Managed 类似,提供了 ibmdbR 库函数,任何环境的 R 程序都可以将 SQL 及 Netezza 库内分析函数 INZA 下压到 dashDB 数据库中运行,如下图所示,我们可以通过多种形式来支持 R 程序:
- 用户可以通过 REST API 调用将 R 代码提交给 dashDB Local,并通过 ibmdbR 库函数来将 SQL 及 INZA 库内分析函数下压到 dashDB 数据库中运行
- 用户可以部署一个 RStudio 容器,通过 RStudio 图形开发界面来访问 dashDB Local,并通过 ibmdbR 库函数来将 SQL 及 INZA 库内分析函数下压到 dashDB 数据库中运行。IBM 在 Github 上提供了 RStudio 容器,用户可以通过访问来部署 RStudio 容器
- 可以在自己的机器上部署任何 R 运行环境,并安装 ibmdbR 库函数,这样,用户就可以通过命令行或 RStudio 图形开发界面来访问 dashDB Local,并通过 ibmdbR 库函数来将 SQL 及 INZA 库内分析函数下压到 dashDB 数据库中运行
图 11. dashDB Local 对 R 的支持 dashDB Local 同 Spark 的集成
dashDB Local 提供了内置的 Apache Spark 运行环境,它也是业界第一个将 Apache Spark 运行环境内置到数据库中,如下图所示:
图 12. dashDB Local 对 Apache Spark 的支持 dashDB Local 现在是一个混合分析环境,即包含 dashDB 关系分析引擎,同时包含 Spark 内存分析引擎。用户可以设置将 Spark MPP 集群成员同 dashDB 集群成员分布在相同数据分区上,并通过共享内存快速交换数据。这样,用户就可以使用 Scala 或 Python 在 Spark 上开发、部署应用程序,并同 dashDB 数据库中的结构化数据进行交互。并且,用户通过 SQL 或 Spark 提交的查询还可以利用 dashDB Local 库内分析能力。
dashDB Local 提供了丰富的 Spark 集成能力,如下图所示:
图 13. dashDB Local 丰富的 Apache Spark 的接口方式 数据科学家可以使用 Jupyter Notebook 交互式探索 dashDB Local 中的数据,调用 Spark MLlib 进行数据分析;将开发的 Spark 应用程序部署到 dashDB Local 中,并可以通过各种接口来访问;将 Spark MLlib 算法包装为存储过程,可以通过 SQL 接口来调用;使用 Spark 程序实现大规模数据抽取、转换的 ELT 功能;使用 Spark 程序实现实时、连续数据加载功能;使用 Spark 抽取、访问多种形式的数据,如云上的数据、对象存储数据、Parquet 格式的数据;通过 REST API 部署、运行 Python 数据等。由此可见,dashDB Local 支持非常全面的 Spark 分析能力。
dashDB Local 的维护我们知道,dashDB Local 采用 Docker 容器技术进行打包、部署,容器内 dashDB Local 软件栈同外部的主机系统相互独立,因此,在 dashDB Local 管理、运维方面,需要用户与 IBM 共同参与完成。
用户负责运维 Docker 主机系统,主要包括:
- 用户定义、拥有硬件、主机操作系统及集群文件系统
- 用户负责主机操作系统安全更新
- 用户负责维护 Docker 引擎
- IBM 只是需要正常运行的 Docker 客户端、针对 dashDB Local MPP 需要 POSIX 兼容的集群文件系统
- 用户可以创建、启动、关闭、重启 dashDB Local 容器
IBM 提供 dashDB Local Docker 容器,主要包括:
- IBM 定义 Docker 容器内的 dashDB Local 软件栈
- 应用容器是一致的、无状态的
- IBM 提供 dashDB Local 镜像的更新,用户可以通过停止、重命名旧的容器并根据新镜像创建新的容器。通常,启动一个新容器几分钟之内就可以完成。
- 一个 Docker 主机只支持一个 dashDB Local 容器
- dashDB Local 不会对容器之外做任何操作
dashDB Local 的升级
dashDB Local 应用容器不保存应用数据,它是无状态的、不可变的,我们可以通过执行下述命令更新新版本或完成 dashDB Local 升级:
1
2
3
4
5
6
| $docker pull ibmdashdb/linux:latest
$docker stop dashDB
$docker rm dashDB (or docker rename if you plan to revert rapidly )
$docker run -d -it --net=host --privileged=true --name=dashDB -v
/mnt/clusterfs:/mnt/bludata0 -v /mnt/clusterfs:/mnt/blumeta0/
ibmdashdb/linux:latest
|
dashDB Local 应用数据保存在用户提供的集群文件系统上,通常我们创建一个/mnt/clusterfs 文件目录。dashDB 实例及数据库目录(/mnt/bludata0)、元数据(/mnt/blumeta0)通过 docker run 命令的-v /mnt/clusterfs:/mnt/bludata0 -v /mnt/clusterfs :/mnt/blumeta0/选项指定保存在用户提供的/mnt/clusterfs 集群文件系统上。dashDB Local 应用数据保存在外部的集群文件系统上,通常保持不变,因此,dashDB Local 迁移、升级会非常简单。如下图所示:
图 14. dashDB Local 的升级 应用容器运行当前版本,数据容器保存在集群文件系统上,如 GPFS、GFS2、VxFS、CXFS。由于应用容器同存储是分开的,当 dashDB Local 升级时,我们只需要执行 docker stop dashDB 命令停止当前版本容器,运行 docker rm dashDB 删除该容器并运行 docker run 命令创建新版本容器即可。
dashDB Local 的备份、恢复及灾备 DR
我们可以依照以下步骤来完成 dashDB Local 的备份及恢复操作:
- 执行"db2 set write suspend for database"命令停止 dashDB 数据库写操作,为备份操作准备系统环境。此时,dashDB 数据库写操作被阻止,但允许读操作,系统也在正常运行
- 用户可以使用任何方法备份或恢复存储卷,即/mnt/clusterfs 文件系统。我们可以使用存储设备提供的 Flashcopy /volumecopy snapshot、文件系统快照如 GPFS snapshot、Tar or rsync 命令
- 当备份或恢复完成后,执行"db2 set write resume for database"命令恢复 dashDB 数据库到正常读、写状态
我们可以使用存储镜像技术来实现 dashDB Local 灾备 DR。通过 Flashcopy 技术同步生产系统/mnt/clusterfs 文件系统数据到灾备系统,当发生灾难时,灾备主机执行接管。当然,我们需要做一些开发工作来实现接管自动化。
另外,该技术也可以帮助我们实现集群克隆(cloning clusters),比如说我们需要创建开发、测试环境并需要预装生产数据。
Data Server Manager for dashDB LocaldashDB Local Console 控制台是 dashDB Local 功能强大的、基于浏览器的管理、监控、性能优化工具,它基于 IBM DSM enterprise 并进行了功能扩展,同 dashDB Managed 管理控制台使用相同的 look, feel and interaction。dashDB Local Console 主要包括以下几个功能组件:
Administration
- Available to administrators: Table, View, MQT, Sequences, Alias, Schemas, Application Objects
- Available to users: Table (View, MQT, Alias as tables)
- Object administration: Create, Alter and Browse
- Object view: list, filter, customize, search, export to csv
- Explore dependencies
- Explore constraints
- Manage access privileges
SQL Editor
- Integrated browser-based editor (nothing to install)
- Syntax check as you type
- Formatting
- Visual statement explain
- Run and browse results – multiple statement support
- SQL statement run history
- Error code help
Monitoring
- Real time and historical monitoring
- Overview
- Alerts
- Statements
- Locking
- Applications
- Workload
- IO
- Storage
- Distribution
- Statement History: Built by the DSM and Netezza teams
- Critical query performance diagnosis
- Biggest resource consumers
- Queries at crash analysis
- Historical query load by user, application, statement
- Export report
结论通过上述介绍,我们对 IBM dashDB Local 的特点、优势、使用场景以及体系结构、扩展性、高可用性、同 R 及 Spark 分析集成、dashDB Local 管理、运维做了一个比较详尽的介绍。dashDB Local 采用目前比较热门的 Docker 容器技术进行部署,安装简洁、灵活,既可以在自己的笔记本上部署,也可以在 Linux 集群环境下部署,大家可以自己部署一个 IBM dashDB Local 环境来更好的了解 IBM 云数据仓库解决方案。 |
|
|
|
|
|