首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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 云数据仓库解决方案。
返回列表