当ArcGIS遇到Netezza——初识Netezza

关于Netezza,是一个数据仓库的产品,几年前被IBM收购,作为IBM在数据仓库这块与Oracle的eXdata和Teradata进行竞争。一般情况下,数据仓库应用的行业比较有限(金融、电信、烟草等),对GIS所对应的常规行业来说,一般的关系型数据库就可以搞定了,但是如果用户有海量的数据存储以及对这些海量数据进行分析,可能使用数据仓库就比较好了。

我们上述的数据仓库产品一般情况下都是一体机,所谓一体机就是直接将硬件和软件一块绑定来销售,这样操作的特点

  • 好处:基本解放了DBA,关于性能、问题一般来说有提供商来做,硬件配置较高,与软件的协作性好,处理海量数据以及复杂的业务分析效果比普通关系型数据库优秀
  • 缺点:价格昂贵,虽然解放了DBA,有问题可能就依赖于提供商了,服务费用应该也不少,一般情况下数据仓库尽可能的放入的只读数据,关于有大量写和修改的情况可能不是太适合。

关于数据仓库和Hadoop

自从了解了Hadoop,已经现在研究的数据仓库,我一直对这两个对象感觉有相同的地方,有共同点:

  • 存储海量数据,数据量级别非常巨大
  • 高效的分析处理能力

但是经过与IBM工程师的沟通,这两个还是有相关区别的

数据仓库:

  • 不同产品,硬件参数以及存储是有限制的,也就是说这个量没有办法与hadoop存储的PB甚至ZB相比
  • 数据仓库更擅长处理机构化数据
  • 数据仓库比起hadoop的N台机器,占用地方较少
  • 解放了DBA

Hadoop:

  • 将大量廉价的计算机进行重新利用,共同来处理
  • 可以理解为,有多少节点,就可以支持多大的存储,这个比数据仓库存储还要大
  • 最大的特点是处理非结构化数据
  • 可能还是需要专业的DBA来对Hadoop进行管理、性能进行调优

好了,上面只是说了那么多,我们切入正题,我也是第一次接触这个东西,一方面是价格昂贵,这块应用较少,baidu搜索基本没有什么有效的信息,使用的用户较少,二是如果使用这个东西,相关技术人员是没有时间来整理技术总结,毕竟非常小众。刚好有个机会ArcGIS与Netezza有相关的合作,而且ArcGIS10.1就已经支持了netezza.下面就将相关培训进行总结。


虽然说Netezza是一体机,但是IBM也便于用户学习,根据Netezza的硬件构造以及工作原理,来模拟两个虚拟机。

当ArcGIS遇到Netezza——初识Netezza_第1张图片

IBM提供了两个虚拟机,

一个HOSTS(Linux无界面系统):提供一个操作Netezza的输入接口,比如NZ命令以及SQL操作

一个是SPU(Snippet Processing Unit):这个基本上是一些硬件的配置,CPU、内存、存储等

一般情况下先启动HOSTS虚拟机,然后启动SPU虚拟机,SPU虚拟机记录了HostS里面操作的相关信息。

这些虚拟机有两个操作系统用户root/netezza,nz/nz,还有一个netezza的数据库用户admin/password

当ArcGIS遇到Netezza——初识Netezza_第2张图片

我们可以使用Putty来连接nz用户,使用nzstop和nzstart来重启服务,然后查看nzstate如果状态为Online,说明netezza工作正常

[nz@netezza ~]$ nzstop
[nz@netezza ~]$ nzstart
WARNING: NPS fabric interface 'eth1' has a sub-optimal MTU: 1500
WARNING: NPS fabric interface 'eth1' tx queue length is low: 1000

(startupsvr) Info: NZ-00022: --- program 'startupsvr' (26081) starting on host 'netezza' ... ---
[nz@netezza ~]$ nzstate
System state is 'Online'.

以下是常有的命令介绍

当ArcGIS遇到Netezza——初识Netezza_第3张图片


当ArcGIS遇到Netezza——初识Netezza_第4张图片

那么通过nzsql来对netezza数据库里面的某些表进行操作

说明:netezza的底层有postgreSQL的内核,所以他们的方式与DB2、MSSQL、PostgreSQL类似,都是有数据库的概念,使用nzsql类似于Oracle的sqlplus

[nz@netezza ~]$ nzsql
Welcome to nzsql, the Netezza SQL interactive terminal.

Type:  \h for help with SQL commands
       \? for help on internal slash commands
       \g or terminate with semicolon to execute query
       \q to quit

SYSTEM(ADMIN)=>
默认情况下进入的SYSTEM数据库,用户名是admin,我们可以直接在后面写SQL语句

当ArcGIS遇到Netezza——初识Netezza_第5张图片

另外也可以使用\h已经\?来查看相关的SQL命令以及内部命令。

SYSTEM(ADMIN)=> \?
 \a              toggle between unaligned and aligned mode
 \act            show current active sessions
 \c[onnect] [dbname [user] [password]]
                  connect to new database (currently 'INZA')
 \C <title>      HTML table title
 \copy ...       perform SQL COPY with data stream to the client machine
 \d <table>      describe table (or view, index, sequence, synonym)
 \d{t|v|i|s|e|x} list tables/views/indices/sequences/temp tables/external tables
 \d{m|y}         list materialized views/synonyms
 \dS{t|v|i|s}    list system tables/views/indexes/sequences
 \dM{t|v|i|s}    list system management tables/views/indexes/sequences
 \dp <name>      list user permissions
 \dpu <name>     list permissions granted to a user
 \dpg <name>     list permissions granted to a group
 \dgp <name>     list grant permissions for a user
 \dgpu <name>    list grant permissions granted to a user
 \dgpg <name>    list grant permissions granted to a group
 \d{u|U}         list users/User Groups
 \d{g|G|Gr}      list groups/Group Users/Resource Group Users
 \da[+] [name]   list aggregates, + for additional fields
 \dd [object]    list comment for object
 \df[+] [name]   list functions, + for additional fields
 \dl[+] [name]   list libraries, + for additional fields
 \do             list operators
 \dT             list data types
 \e [file]       edit the current query buffer or [file] with external editor
 \echo <text>    write text to stdout
 \f <sep>        change field separator
 \g [file]       send query to backend (and results in [file] or |pipe)
 \h [cmd]        help on syntax of sql commands, * for all commands
 \H              toggle HTML mode (currently off)
 \i <file>       read and execute queries from <file>
 \l              list all databases
 \o [file]       send all query results to [file], or |pipe
 \p              show the content of the current query buffer
 \pset <opt>     set table output  <opt> = {format|border|expanded|fieldsep|
                  null|recordsep|tuples_only|title|tableattr|pager}
 \q              quit nzsql
 \qecho <text>   write text to query output stream (see \o)
 \r              reset (clear) the query buffer
 \s [file]       print history or save it in [file]
 \set <var> <value>  set internal variable
 \t              show only rows (currently off)
 \time           print time taken by queries
 \T <tags>       HTML table tags
 \unset <var>    unset (delete) internal variable
 \w <file>       write current query buffer to a <file>
 \x              toggle expanded output (currently off)
 \! [cmd]        shell escape or command

比如我可以使用\l来查看里面存储了多少数据库

SYSTEM(ADMIN)=> \l
  List of databases
 DATABASE  |  OWNER
-----------+----------
 INZA      | ADMIN
 LABDB     | LABADMIN
 MASTER_DB | ADMIN
 NZA       | ADMIN
 NZM       | ADMIN
 NZR       | ADMIN
 SYSTEM    | ADMIN
(7 rows)
如果想连接其他数据库,比如我想连接INZA库,那么可以进行如下操作,\q退出,然后

 nzsql -d database -u user -pw password

也就是添加连接数据库的参数,连接上之后使用\dt来查看这个数据库里面有多少表。


SYSTEM(ADMIN)=> \q
[nz@netezza ~]$ nzsql -d inza -u admin -pw password
Welcome to nzsql, the Netezza SQL interactive terminal.

Type:  \h for help with SQL commands
       \? for help on internal slash commands
       \g or terminate with semicolon to execute query
       \q to quit

INZA(ADMIN)=> \dt
        List of relations
       Name       | Type  | Owner
------------------+-------+-------
 GEOMETRY_COLUMNS | TABLE | ADMIN
 POLY             | TABLE | ADMIN
 PT               | TABLE | ADMIN
 SPATIAL_REF_SYS  | TABLE | ADMIN
 XZQ              | TABLE | ADMIN
(5 rows)

另外,我们也可以使用ODBC、JDBC、OLEDB来连接Netezza数据源。

Netezza同样也有界面化的操作工具,如果用户想着Windows操作系统来操作Netezza,安装过相关的驱动程序,推荐使用两个工具

NZAdmin:缺点是相关表不能查看表记录,如果想查看表记录需要使用Aginity的工具

当ArcGIS遇到Netezza——初识Netezza_第6张图片

Aginity:www.aginity.com下载软件即可

当ArcGIS遇到Netezza——初识Netezza_第7张图片


注意:netezza没有在线帮助文档,如果需要学习,可能直接向软件提供商索取相关资料

 -------------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
------------------------------------------------------------------------------------------------------

你可能感兴趣的:(当ArcGIS遇到Netezza——初识Netezza)