Best Practices for HP Vertica OEM Customers



Similar documents
Best Practices for HP Vertica OEM Customers

HP SiteScope. HP Vertica Solution Template Best Practices. For the Windows, Solaris, and Linux operating systems. Software Version: 11.

HP Vertica on Amazon Web Services Backup and Restore Guide

Vertica OnDemand Getting Started Guide HPE Vertica Analytic Database. Software Version: 7.2.x

Plug-In for Informatica Guide

Supported Platforms HPE Vertica Analytic Database. Software Version: 7.2.x

Concepts Guide. HP Vertica Analytic Database. Software Version: 7.0.x

Innovative technology for big data analytics

Supported Platforms. HP Vertica Analytic Database. Software Version: 7.1.x

SEIZE THE DATA SEIZE THE DATA. 2015

Supported Platforms. HP Vertica Analytic Database. Software Version: 7.0.x

Online Transaction Processing in SQL Server 2008

HP Vertica Integration with SAP Business Objects: Tips and Techniques. HP Vertica Analytic Database

HP Business Service Management

Connectivity Pack for Microsoft Guide

Running a Workflow on a PowerCenter Grid

HP Operations Smart Plug-in for Virtualization Infrastructure

HP AppPulse Active. Software Version: 2.2. Real Device Monitoring For AppPulse Active

ORACLE DATABASE 10G ENTERPRISE EDITION

HP Device Manager 4.6

Siebel Installation Guide for UNIX. Siebel Innovation Pack 2013 Version 8.1/8.2, Rev. A April 2014

Oracle Essbase Integration Services. Readme. Release

How To Use Hp Vertica Ondemand

HP Embedded SATA RAID Controller

The Vertica Analytic Database Technical Overview White Paper. A DBMS Architecture Optimized for Next-Generation Data Warehousing

Legal Notices Introduction... 3

VirtualCenter Database Maintenance VirtualCenter 2.0.x and Microsoft SQL Server

Guidelines for using Microsoft System Center Virtual Machine Manager with HP StorageWorks Storage Mirroring

Developing Microsoft SQL Server Databases (20464) H8N64S

HP Service Manager. Software Version: 9.40 For the supported Windows and Linux operating systems. Application Setup help topics for printing

Database FAQs - SQL Server

features at a glance

Running VirtualCenter in a Virtual Machine

HP Device Manager 4.6

HP Server Automation Enterprise Edition

HP LeftHand SAN Solutions

HP IMC User Behavior Auditor

Siebel Installation Guide for Microsoft Windows. Siebel Innovation Pack 2013 Version 8.1/8.2, Rev. A April 2014

SQL Server Database Administrator s Guide

HP D2D NAS Integration with HP Data Protector 6.11

SQL Server Training Course Content

Optimizing Performance. Training Division New Delhi

Explain how to prepare the hardware and other resources necessary to install SQL Server. Install SQL Server. Manage and configure SQL Server.

VMware vsphere Data Protection 6.0

SQL Server 2008 Performance and Scale

Netezza PureData System Administration Course

VMware vsphere Data Protection 5.8 TECHNICAL OVERVIEW REVISED AUGUST 2014

Course Syllabus. At Course Completion

Server Consolidation with SQL Server 2008

Microsoft SQL Server OLTP Best Practice

HP ProtectTools Embedded Security Guide

FileMaker Server 11. FileMaker Server Help

CA Unified Infrastructure Management

PEPPERDATA IN MULTI-TENANT ENVIRONMENTS

Veeam Cloud Connect. Version 8.0. Administrator Guide

HP Intelligent Management Center v7.1 Virtualization Monitor Administrator Guide

HP LoadRunner. Software Version: Ajax TruClient Tips & Tricks

Microsoft SQL Server Decision Support (DSS) Load Testing

CA Workload Automation Agent for Databases

Case Studies Using EMC Legato NetWorker for OpenVMS Backups

HP Softpaq Download Manager and HP System Software Manager

Maintaining a Microsoft SQL Server 2008 Database

Symantec NetBackup OpenStorage Solutions Guide for Disk

SQL Anywhere 12 New Features Summary

MySQL Administration and Management Essentials

Using MySQL for Big Data Advantage Integrate for Insight Sastry Vedantam

Backup Strategies for Integrity Virtual Machines

IM and Presence Disaster Recovery System

Oracle BI EE Implementation on Netezza. Prepared by SureShot Strategies, Inc.

HP Service Manager. Software Version: 9.40 For the supported Windows and Linux operating systems. Request Management help topics for printing

HP Data Protector Express Single Server Edition technical white paper

Introduction. Part I: Finding Bottlenecks when Something s Wrong. Chapter 1: Performance Tuning 3

Extreme Networks Security Upgrade Guide

FileMaker Server 7. Administrator s Guide. For Windows and Mac OS

BrightStor ARCserve Backup for Windows

Foglight. Managing Hyper-V Systems User and Reference Guide

Oracle Database 11g: New Features for Administrators DBA Release 2

David Dye. Extract, Transform, Load

CA Nimsoft Monitor Snap

Improve Business Productivity and User Experience with a SanDisk Powered SQL Server 2014 In-Memory OLTP Database

CA Nimsoft Monitor. Probe Guide for iseries System Statistics Monitoring. sysstat v1.1 series

HP ProLiant BL660c Gen9 and Microsoft SQL Server 2014 technical brief

Microsoft SQL Server 2008 R2 Enterprise Edition and Microsoft SharePoint Server 2010

Microsoft Exchange 2003 Disaster Recovery Operations Guide

Informatica Data Replication FAQs

SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package Data Federation Administration Tool Guide

HP Factory-Installed Operating System Software for Microsoft Windows Small Business Server 2003 R2 User Guide

vcenter Operations Management Pack for SAP HANA Installation and Configuration Guide

EXPRESSCLUSTER X for Windows Quick Start Guide for Microsoft SQL Server Version 1

CASE STUDY: Oracle TimesTen In-Memory Database and Shared Disk HA Implementation at Instance level. -ORACLE TIMESTEN 11gR1

Data Access Guide. BusinessObjects 11. Windows and UNIX

HP Service Manager. Software Version: 9.34 For the supported Windows and UNIX operating systems. Incident Management help topics for printing

Upgrading to Microsoft SQL Server 2008 R2 from Microsoft SQL Server 2008, SQL Server 2005, and SQL Server 2000

HP VMware ESXi 5.0 and Updates Getting Started Guide

HP Quality Center. Software Version: Microsoft Word Add-in Guide

Transcription:

Best Practices for HP Vertica OEM Customers HP Vertica Analytic Database Software Version: 7.0.x Document Release Date: 2/20/2015

Legal Notices Warranty The only warranties for HP products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. HP shall not be liable for technical or editorial errors or omissions contained herein. The information contained herein is subject to change without notice. Restricted Rights Legend Confidential computer software. Valid license from HP required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license. Copyright Notice Copyright 2006-2014 Hewlett-Packard Development Company, L.P. Trademark Notices Adobe is a trademark of Adobe Systems Incorporated. Microsoft and Windows are U.S. registered trademarks of Microsoft Corporation. UNIX is a registered trademark of The Open Group. HP Vertica Analytic Database (7.0.x) Page 2 of 37

Contents Contents 3 About This Document 7 Part 1: Developing and Testing the HP Vertica Database 8 Installing the HP Vertica Database 8 Loading Representative Data 8 Identifying Typical Queries 8 Optimizing the Database with Database Designer 9 What Does Database Designer Do? 9 Results of Running Database Designer 9 Exporting the Optimized Database 10 Managing Database Resources 10 Configuring CPU Resources 11 Pinning HP Vertica Processes to Certain CPUs 11 Setting Run-Time Priorities for Resource Pools 11 Configuring Memory Resources 12 Loading Data into the Database 12 WOS, ROS, and the Tuple Mover 12 How Loading Works 13 Loading Data from a File 13 Loading Data from Your Application 14 Parallel Load Streams 14 Trickle Loading 14 Monitoring Load Operations 15 PROJECTION_STORAGE 15 PARTITIONS 16 Dropping Partitions Due to Space Constraints 16 Load Balancing 17 IP Virtual Server (IPVS) 17 Native Connection Load Balancing 18 HP Vertica Analytic Database (7.0.x) Page 3 of 37

Contents Third-Party Load Balancers 18 Delete and Update Operations 19 How HP Vertica Deletes and Updates Data 19 Buffering Deletes and Updates 19 Monitoring Deletes and Updates 19 Purging Deleted Data 20 Part 2: Packaging the HP Vertica Database with Your Application 21 Installing the HP Vertica Database at the Command Line 21 Creating the Database 22 Configuring the Database 24 Starting the Database 24 start_db Option 24 restart_db Option 25 Connecting to the Database 25 Backing Up the Database 26 Part 3: Developing Applications to Work with HP Vertica 27 Connecting to HP Vertica from External Applications 27 HP Vertica Command-Line Interface 28 Administration Tools 28 vsql 28 Binary and Script Files 29 SQL Analytic Functions 29 Analytic Function Workflow 29 Part 4: Ongoing Database Maintenance 31 Monitoring System Resources for Concurrent Use 31 Monitoring Database Size 32 Updating Statistics 33 Optimizing the Physical Schema 34 Optimizing Query Performance 34 Database Recovery 35 Hardware Maintenance 35 HP Vertica Analytic Database (7.0.x) Page 4 of 37

Contents Adding or Removing Cluster Nodes 35 Troubleshooting Performance 36 We appreciate your feedback! 37 HP Vertica Analytic Database (7.0.x) Page 5 of 37

Contents HP Vertica Analytic Database (7.0.x) Page 6 of 37

About This Document About This Document This document outlines best practices and tips for Hewlett-Packard OEM customers. OEM customers embed the HP Vertica database with their own application and deliver it as an onthe-premises solution. Typically, the end users of the application do not interact with the HP Vertica database directly; they interact with the database only through the application. The information in this document addresses technical issues for three types of tasks that Hewlett- Packard's OEM customer must perform to optimize the database in their application: HP Vertica Analytic Database (7.0.x) Page 7 of 37

Part 1: Developing and Testing the HP Vertica Database Part 1: Developing and Testing the HP Vertica Database During your application development, install an HP Vertica database and load it with sample data. You can simulate and test the behavior of the database and application in a production-like environment. The following sections describe the steps to take and the HP Vertica features to focus on for the HP Vertica database to work as desired with your application at a customer site: Installing the HP Vertica Database Identifying Typical Queries Loading Representative Data Optimizing the Database with Database Designer Managing Database Resources Loading Data into the Database Dropping Partitions Due to Space Constraints Delete and Update Operations Installing the HP Vertica Database To install the HP Vertica software on your development system, follow the instructions in the Installation Guide of the HP Vertica documentation. Loading Representative Data You can effectively test the way the HP Vertica database interacts with your application in a production environment. To do so, load data that is representative of the data that you might use in a production environment. Representative data allows you to effectively test database functionality and performance. For more information about loading data into an HP Vertica database, see Bulk Loading Data in the Administrator's Guide. Identifying Typical Queries Identify common queries that your application uses. You can provide these queries to Database Designer, Database Designer to create projections that maximize performance throughput in your HP Vertica Analytic Database (7.0.x) Page 8 of 37

Part 1: Developing and Testing the HP Vertica Database database. Optimizing the Database with Database Designer An HP Vertica database stores its data in a physical format called projections. For optimal performance, projections should be optimized based on data and workload characteristics. As HP Vertica OEM customers, optimize the projection design during your development cycle.you can standardize on that design for all deployments of your application. The following sections describe the process of tuning projections using Database Designer: What Does Database Designer Do? (Administrator's Guide) gives an overall view of what Database Designer does for your database. Results of Running Database Designer (Administrator's Guide) explains what benefits your database achieves by running Database Designer. Exporting the Optimized Database (in this guide) contains information about how to deploy the optimized projections when the database is embedded with your application. After you create your database for the first time, load the typical queries and sample data on your development system. Then, create a comprehensive database design as described in Comprehensive Design in the Administrator's Guide. What Does Database Designer Do? Database Designer uses sophisticated strategies to create physical schemas or database designs. These designs provide excellent query performance while using disk space efficiently. Database Designer can create two types of designs: A comprehensive design allows you to create new projections for all tables in your database. A query-specific design creates projections for all tables referenced in the queries you supply to Database Designer. Database Designer accepts unlimited sample queries for a comprehensive design, It can accept up to 100 sample queries in the query input file for a query-specific design. Results of Running Database Designer In most cases, the projections that Database Designer creates provide excellent query performance within physical constraints while using disk space efficiently. Database Designer: Recommends buddy projections with the same sort order/ The buddy projections can significantly improve load, recovery, and site node performance. By default, Database Designer recommends both super and non-super segmented projections with a buddy of the same sort order. HP Vertica Analytic Database (7.0.x) Page 9 of 37

Part 1: Developing and Testing the HP Vertica Database Automatically rebalances data after you add or remove nodes. Produces higher quality designs by considering UPDATE and DELETE statements. Database Designer creates two scripts: Design script Contains all the DDL statements that are needed to create the design. Deployment script Contains all the CREATE PROJECTION scripts that are needed to create the projections for the design. The deployment script is a subset of the design script. Exporting the Optimized Database in this guide describes how to configure these scripts so that you can standardize all customers on the optimal projections. The scripts must be portable to deployments with different numbers of nodes and K-safety levels. Exporting the Optimized Database After you optimize the database using Database Designer and other techniques, verify that the optimized projections are available for all customers in the deployed database. The following HP Vertica functions generate scripts that create the database on the customer's cluster: EXPORT_CATALOG Generates a SQL script that re-creates a physical schema design in its current state on a different cluster. EXPORT_OBJECTS Generates a SQL script that re-creates on a different cluster all the nonvirtual objects to which you have access. Running the generated SQL script on another cluster creates all referenced objects before their dependent objects. EXPORT_TABLES Generates a SQL script that re-creates a logical schema on a different cluster. This logical schema includes schemas, tables, constraints, and view. After you have created these scripts, edit them as follows: Modify the CREATE PROJECTION statements to include the appropriate segmentation clauses. Modify the CREATE PROJECTION statements to specify ALL NODES KSAFE <value>. As a result, all unsegmented projections are replicated on all nodes, with the designated K-safety value. If you don t specify a K-safety value, HP Vertica uses the current K-safety value, or 1. Managing Database Resources For large data sets of complex workloads, Hewlett-Packard recommends that you run the database software on dedicated servers. HP Vertica Analytic Database (7.0.x) Page 10 of 37

Part 1: Developing and Testing the HP Vertica Database In some installations, you may have to run the HP Vertica database on a shared server with your application. To manage the CPU and memory usage so that neither the database nor your application monopolizes them, consider the following tips: Configuring CPU Resources Configuring Memory Resources Configuring CPU Resources You can configure CPU resources in two ways: Pinning HP Vertica processes to certain CPUs Setting run-time priorities for resource pools Pinning HP Vertica Processes to Certain CPUs To pin an entire HP Vertica server process and its child processes to execute on a specified set of CPUs in the cluster, use the following configuration parameters. These parameters do not affect external processes and applications: PINPROCESSORS: Number of CPUs to which HP Vertica processes will be pinned PINPROCESSORSOFFSET: Offset for the start of CPUs to be used by the HP Vertica server For example, suppose you have a cluster where each node has 24 CPUs, numbered 0 through 23. In this case, you can restrict the server process to CPUs #16 23 by entering the following statements: SELECT SET_CONFIGURATION_PARAMETER('PINPROCESSORS', 8) SELECT SET_CONFIGURATION_PARAMETER('PINPROCESSORSOFFSET', 16) Pin your application to the processors that are not allocated to the HP Vertica database. To make sure that other applications do not use the processors assigned to the HP Vertica server, use the Linux cgroups command. Setting Run-Time Priorities for Resource Pools You can manage resources in a resource pool. For you to do so, those resources must be assigned to queries already running in that resource pool. You assign each resource pool a run-time priority of HIGH, MEDIUM, or LOW. These settings determine the amount of run-time resources (such as CPU and I/O bandwidth) assigned to queries in the resource pool when they run. Queries in a resource pool with a HIGH priority are assigned greater run-time resources than those in resource pools with MEDIUM or LOW run-time priorities. HP Vertica Analytic Database (7.0.x) Page 11 of 37

Part 1: Developing and Testing the HP Vertica Database Configuring Memory Resources To limit the amount of overall system memory that you allocate to the HP Vertica database, set the MAXMEMORYSIZE parameter on the GENERAL resource pool. To prevent swapping, verify that your application uses only the memory that the database is not using. For example, suppose the MAXMEMORYSIZE of the GENERAL pool for the database is set to 32 GB on a system with 48 GB of RAM. In this case, your application should use no more than (48 32) = 16 GB of RAM. Loading Data into the Database While your application is running, you load data into your HP Vertica database on a regular basis. You can collect large amounts of data to load into your database at once, if you can meet your latency service-level agreement (SLA). Simulate your data-loading operations in a production environment. Make sure to replicate the maximum expected rates of loading and spiking. The following sections describe how HP Vertica stores data and how to load data into your database. They also describe how you can tune the processes and monitor the system to prevent performance problems: WOS, ROS, and the Tuple Mover How Loading Works Loading Data from a File Loading Data from Your Application Parallel Load Streams Trickle Loading Monitoring Load Operations WOS, ROS, and the Tuple Mover HP Vertica supports INSERT, UPDATE, DELETE, and bulk load operations (COPY), intermixed with queries in a typical data warehouse workload. The storage model consists of three elements,which operate the same on each HP Vertica node: Write Optimized Store (WOS) is a memory-resident data structure for storing INSERT, UPDATE, DELETE, and COPY (without /*+DIRECT*/ hints) actions. To support very fast data HP Vertica Analytic Database (7.0.x) Page 12 of 37

Part 1: Developing and Testing the HP Vertica Database load speeds, the WOS stores records without data compression or indexing. The WOS organizes data by epoch and holds both committed and uncommitted transaction data. Read Optimized Store (ROS) is a highly optimized, read-oriented, disk storage structure. The ROS makes heavy use of compression and indexing. You can use the COPY...DIRECT and INSERT (with /*+DIRECT*/ hints) statements to load data directly into the ROS. The Tuple Mover (TM) is the Vertica Analytic Database database optimizer component that moves data from memory (WOS) to disk (ROS). The Tuple Mover runs in the background, performing some tasks automatically at time intervals determined by its configuration parameters. For further information about the WOS, ROS, and Tuple Mover, see Hybrid Storage Model in the Concepts Guide. How Loading Works When you load data into a database, HP Vertica first moves it into memory (WOS) by default. You can override this default, and specify that HP Vertica move the data directly to disk (ROS). Periodically, the Tuple Mover: Moves data from the WOS to the ROS. Combines like-size ROS containers. Deletes purges records. If the you move too much data too frequently to the WOS, the data can spill to disk. No data is lost, but such spillover can cause performance problems. Loading Data from a File If the data to be loaded into your database is stored in a file, use the COPY statement to load the data. You can also use COPY to load data from a data stream. In its basic form, use COPY as follows: COPY to_table FROM data_source For more information, see the following sections of the HP Vertica documentation: Using COPY and COPY LOCAL in the Administrator's Guide COPY in the SQL Reference Manual COPY LOCAL in the SQL Reference Manual HP Vertica Analytic Database (7.0.x) Page 13 of 37

Part 1: Developing and Testing the HP Vertica Database Loading Data from Your Application If the application needs to push data into the HP Vertica database, use the driver associated with the programming language that your application uses. For more information, see: Loading Data through ODBC in the Programmer's Guide Loading Data through JDBC in the Programmer's Guide Loading Data through ADO.NET in the Programmer's Guide Parallel Load Streams When you have a large amount of data to load, use parallel load streams to distribute the load operations across the cluster. To do this, create threads from multiple nodes that are connected to the HP Vertica database and load the data. This approach lets you use vsql, ODBC, ADO.NET, or JDBC. You can load server-side files or client-side files using the COPY from LOCAL statement. Best practices for parallel load streams are: Issue a single multi-node COPY command that loads different files from different nodes. Specify the nodename option for each file. Issue a single multi-node COPY command that loads different files from any node using the ON ANY NODE option. Use the COPY x WITH SOURCE PloadDelimitedSource option to parallel load. This approach uses all cores on the server node on which the file resides. For additional information, see Using Parallel Load Streams in the Administrator's Guide. Trickle Loading Trickle loading is the process of loading data into your database periodically. You can use trickle loading to create a more sustainable load process that generates fewer ROS containers. The HP Vertica database uses the transaction isolation level of READ COMMITTED. This level allows users to see the most recently committed data without holding any locks. READ COMMITTED also allows new data to be loaded while concurrent queries are running. To tune the trickle-loading operations: Adjust batch size. Generally, larger load batches are more efficient. Alter the moveout/mergeout parameters: MergeOutInterval MoveOutInterval HP Vertica Analytic Database (7.0.x) Page 14 of 37

Part 1: Developing and Testing the HP Vertica Database MoveOutMaxAgeTime MoveOutSizePct Limit the load process to a specific resource so that other resources are available to queries. To do so, create a resource pool specifically for the trickle-loading process. Monitoring Load Operations When you simulate the load operations while developing your application, there are two system tables you must monitor. These tables help you verify that you have configured load operations in a way that negative effects on the database or application performance: PROJECTION_STORAGE PARTITIONS PROJECTION_STORAGE While developing your application, monitor the ROS count over time. To monitor the ROS count: Query the ROS_COUNT field in the PROJECTION_STORAGE system table. Query partitions that show the ROS_COUNT per partition. The default maximum for the ROS_COUNT field is 1024. The ROS_COUNT value should not come close to 1024 for the duration of a partition and through the time it takes an old partition to merge. If the ROS_COUNT field does not come close to 1024, your loading techniques should be adequate. VMart=> SELECT projection_id, projection_name, ros_count FROM projection_storage; projection_id projection_name ros_count -------------------+-----------------------------+----------- 45035996273719430 promotion_dimension_super 1 45035996273720042 online_page_dimension_super 1 45035996273719788 employee_dimension_super 1 45035996273719276 store_dimension_super 1 45035996273719610 customer_dimension_super 1 45035996273722132 T_super 1 45035996273719098 product_dimension_super 1 45035996273719942 warehouse_dimension_super 1 45035996273720000 shipping_dimension_super 1 45035996273720498 online_sales_fact_super 1 45035996273719536 vendor_dimension_super 1 45035996273720206 store_sales_fact_super 1 45035996273720652 inventory_fact_super 1 45035996273718920 date_dimension_super 1 45035996273720336 store_orders_fact_super 1 45035996273720100 call_center_dimension_super 1 45035996273722194 T2_super 1 HP Vertica Analytic Database (7.0.x) Page 15 of 37

Part 1: Developing and Testing the HP Vertica Database (17 rows) PARTITIONS While developing your application, monitor the PARTITIONS system table. Make sure that the number of ROS containers per partition does not reach the maximum of 1024. In addition, monitor the ros_size_bytes field to see if there are any small ROS containers that you can merge. => SELECT projection_name, ros_id, ros_size_bytes FROM partitions; projection_name ros_id ros_size_bytes -----------------+-------------------+---------------- t_p_node0001 45035996273740461 90 t_p_node0001 45035996273740477 99 t_p_node0001 45035996273740493 99 Dropping Partitions Due to Space Constraints If your hardware has fixed disk space, you may need to configure a regular process to roll out old data by dropping partitions. For example, if you have only enough space to store data for a fixed number of days, configure HP Vertica to drop the partition with the oldest date. To do so, create a time-based job scheduler, such as cron, to drop the partition on a regular basis during low-load periods. If the ingest rate for data has peaks and valleys, you can use two techniques to manage how you drop partitions: Set up a process to check the disk space on a regular (daily) basis. If the percentage of used disk space exceeds a certain threshold for example, 80% drop the oldest partition. Add an artificial column in a partition that increments based on a metric like row count. For example, that column might increment each time that the row count increases by 100 rows. Set up a process that queries that column on a regular (daily) basis. If the value in the new column exceeds a certain threshold for example, 100 drop the oldest partition, and set the column value back to 0. For more information about partitions, see the following sections in the HP Vertica documentation: CREATE TABLE in the SQL Reference Manual Working with Table Partitions in the Administrator's Guide HP Vertica Analytic Database (7.0.x) Page 16 of 37

Part 1: Developing and Testing the HP Vertica Database Load Balancing In HP Vertica, load balancing supports multiple client connections through an IP address that is shared among all nodes in a cluster. Your cluster needs to balance incoming client requests across nodes and prevent node exclusion from clients in the case of node failure. While you are developing your application, simulate a high load of activity in your cluster to mimic the expected behavior after the application is running. You can perform load balancing on your database cluster using any of these methods: IP Virtual Server (IPVS) Native Connection Load Balancing Third-Party Load Balancers For more detailed information, see the Connection Load Balancing and Adding Nodes sections in the Administrator's Guide. IP Virtual Server (IPVS) The IP Virtual Server (IPVS) running on a database node provides load balancing for an HP Vertica database cluster. IPVS balances the connection streams and is contains the following components: The Virtual IP (VIP) The IP address that is accessed by all client connections. Real server IPs (RIP) The IP addresses of client network interfaces used for connecting database clients to the database engine. Cluster A cluster of real HP Vertica servers (nodes). Virtual server The single point of entry that provides access to a cluster, based on dynamic node selection. The IPVS load balancer uses a two-node, stand-by redundancy model. If one node is lost, the stand-by node assumes primary responsibility. This model differs from the redundancy that the HP Vertica Analytics Platform provides. The HP Vertica redundancy model provides the ability to add, remove, and replace nodes on a live cluster that is actively processing queries. You can scale the database without interrupting users. In addition, you can consider refreshing or dropping projections. For detailed information, see the Connection Load Balancing and Adding Nodes sections in the Administrator's Guide. HP Vertica Analytic Database (7.0.x) Page 17 of 37

Part 1: Developing and Testing the HP Vertica Database Native Connection Load Balancing The HP Vertica server and client libraries have native connection load balancing built in. This feature distributes client connection CPU and memory overhead across all nodes in the database cluster. Native connection load balancing can prevent overburdening some nodes with many client connections, while other nodes have few client connections. You must enable native connection load balancing on both the HP Vertica server and the client. For more information about native connection load balancing, see the following topics in the Administrator's Guide: About Native Connection Load Balancing Enabling and Disabling Native Connection Load Balancing Monitoring Native Connection Load Balancing To learn how to enable native connection load balancing with your specific client software, see the following topics in the Programmer's Guide: Enabling Native Connection Load Balancing in JDBC Enabling Native Connection Load Balancing in ODBC Enabling Native Connection Load Balancing in ADO.NET Third-Party Load Balancers You can perform load balancing across your HP Vertica database cluster using third-party load balancers. Third-party load balancers exist as software applications or hardware appliances. They manage the inbound and outboard data traffic and network connections throughout the cluster. Their goal is to distribute the workload evenly among all the nodes in the cluster. Many third-party load balancers are available. Before choosing a load balancer for your HP Vertica database cluster, consider these configuration characteristics: Size of the cluster Potential future growth of your cluster Security Performance HP Vertica Analytic Database (7.0.x) Page 18 of 37

Part 1: Developing and Testing the HP Vertica Database Delete and Update Operations You may have small configuration tables with more of an online transaction processing (OLTP) workload. If so, your HP Vertica database can handle this situation efficiently. The following sections explain how to configure your database to ensure optimal performance during delete and update operations: How HP Vertica Deletes and Updates Data Buffering Deletes and Updates Monitoring Deletes and Updates Purging Deleted Data How HP Vertica Deletes and Updates Data In HP Vertica, delete operations do not actually remove rows from physical storage. Instead, the HP Vertica DELETE statement marks rows as deleted. Update operations have the same effect; the UPDATE statement is actually a combined delete and insert operation. The deleted rows remain in physical storage until the Tuple Mover performs a purge operation. The purge operation permanently removes deleted data so that the disk space can be reused. Note: For more information about how deletes and updates work in HP Vertica, see Understanding the Tuple Mover in the Administrator's Guide. Buffering Deletes and Updates The most efficient way you can perform delete and update operations with HP Vertica is to update many database records at a time using fewer statements. To do this, buffer database deletes and updates in your application before you submit them. That way, you can manage the flow of the delete and update operations so that they do not interfere with normal database performance. For more information, see Best Practices for DELETEs and UPDATEs in the Administrator's Guide. Monitoring Deletes and Updates The frequency of delete and update submissions to the database should be sustainable and not negatively impact performance. While you develop your application, make sure to monitor the delete and update operations in the database. To do so, monitor the DELETE_VECTORS system table. This table provides a view of the number of deleted records and their corresponding delete vectors that are still physically stored in the system: HP Vertica Analytic Database (7.0.x) Page 19 of 37

Part 1: Developing and Testing the HP Vertica Database VMart=> SELECT node_name, schema_name, projection_name, deleted_row_count, used_bytes FROM delete_vectors; -[ RECORD 1 ]-----+-------------------------- node_name v_vmart_node0001 schema_name public projection_name product_dimension_super deleted_row_count 32345 used_bytes 524288 -[ RECORD 2 ]-----+-------------------------- node_name v_vmart_node0001 schema_name public projection_name employee_dimension_super deleted_row_count 943 used_bytes 54788 -[ RECORD 3 ]-----+-------------------------- node_name v_vmart_node0001 schema_name public projection_name warehouse_dimension_super deleted_row_count 20 used_bytes 16384 Purging Deleted Data Consider scheduling a nightly purge of small tables that receive frequent updates. This operation rewrites the tables while removing deleted records. Run the nightly purge against small tables that would not be expensive to rebuild and that have many deleted records. For more information, see PURGE_TABLE in the SQL Reference Manual. HP Vertica Analytic Database (7.0.x) Page 20 of 37

Part 2: Packaging the HP Vertica Database with Your Application Part 2: Packaging the HP Vertica Database with Your Application Once you have installed your HP Vertica database, loaded sample data into it, and tested the database operation in a simulated production environment, create a script that installs and configures the database with your application. This script should Perform its operations "silently", in a way that is invisible to your end users. Be portable so that it can install the database on a cluster with any number of nodes. The following sections describe what functions the script should perform. Installing the HP Vertica Database at the Command Line Creating the Database Configuring the Database Starting the Database Connecting to the Database Backing Up the Database Installing the HP Vertica Database at the Command Line The packaging script should contain commands to execute the HP Vertica installation procedure. Important: HP Vertica must be installed separately for each user. You cannot create a system image for subsequent installations, which may cause all users to use the same SSH keys. This situation can result in serious security issues. The commands in the packaging script should perform the following tasks: 1. Login as the root user. 2. Create a properties file that enables non-interactive setup by supplying the parameters you want HP Vertica to use. The properties file is described in Installing HP Vertica Silently in the Installation Guide. 3. Install the database by running the install_vertica script, as described in Installing HP Vertica Silently in the Installation Guide. HP Vertica Analytic Database (7.0.x) Page 21 of 37

Part 2: Packaging the HP Vertica Database with Your Application a. Make sure to run the scripts with the -y parameter to avoid the script asking for EULA agreement. b. On a single-node installation, consider using the host name or IP address instead of localhost or 127.0.0.1 because of the following limitations: i. The -s parameter is required for multi-node installations. On single-node installations the parameter is optional and the default is localhost. However, if you plan to expand to additional hosts later, you must use the -s parameter. If you do not use the -s parameter, your HP Vertica installation cannot be upgraded to a multi-node deployment. ii. iii. On a single-node localhost installation, the installer does not set up a passwordless ssh. HP Vertica's backup scripts require that the administrator be able to log into the node via ssh without a password. Consequently, you must manually enable passwordless ssh logins for any single-node installation if you want to use the backup scripts. If either side of a connection is a single-node cluster installed to local house, or you did not specify a host name or IP address for your single-node cluster, importing and exporting data fails. 4. To save any warnings that the install_vertica script returns, redirect any warning messages to a separate file by specifying the redirect_output = filename parameter in the properties file. After the installation completes, review the warnings and correct any problems that are critical. 5. The following steps are optional: Installing the HP Vertica Client Drivers in the Programmer's Guide Optionally Install the vsql Client Application on Non-Cluster Hosts in the Installation Guide 6. Disconnect from the Administration Host. 7. Unless you used the -L parameter in the properties file, install the license key you downloaded. Note: To use data or catalog directories other than those that the install_vertica script creates, create those directories and make sure that dbadmin has ownership of those directories. Creating the Database To initially create the HP Vertica database to embed with your customer application, add the following command to the packaging script: $ /opt/vertica/bin/admintools --tool create_db [ options ] Command-Line Options: HP Vertica Analytic Database (7.0.x) Page 22 of 37

Part 2: Packaging the HP Vertica Database with Your Application Option -h --help -s NODES --hosts=nodes -d DB --database=db -c CATALOG --catalog_path=catalog -D DATA --data_path=data -p DBPASSWORD --password=dbpassword -l LICENSEFILE --license=licensefile -P POLICY --policy=policy --compat21 Function Show this help message and exit. Comma-separated list of hosts to participate in database. Name of database to be created. [Optional] Path of catalog directory if not using compat21. [Optional] Path of data directory if not using compat21. [Optional] Database password in single quotes. [Optional] Database license. [Optional] Database restart policy. Use HP Vertica Analytic Database 2.1 method using node names instead of host names. The following example creates a database named mydb: $ admintools -t create_db -s 10.20.100.66,10.20.100.67,10.20.100.68 -d mydb -c /home/dbadmin/mydb/catalog -D /home/dbadmin/mydb/data -l /home/dbadmin/vlicense.dat Info: no password specified, using none Distributing changes to cluster. 10.20.100.66 OK [vertica][(6, 1, 2)][20130430][x86_64] 10.20.100.67 OK [vertica][(6, 1, 2)][20130430][x86_64] 10.20.100.68 OK [vertica][(6, 1, 2)][20130430][x86_64] Checking full connectivity Creating database mydb Node Status: v_mydb_node0001: (DOWN) Node Status: v_mydb_node0001: (INITIALIZING) Node Status: v_mydb_node0001: (VALIDATING LICENSE) Node Status: v_mydb_node0001: (UP) Creating database nodes Creating node v_mydb_node0002 (host 10.20.100.67) Creating node v_mydb_node0003 (host 10.20.100.68) Node Status: v_mydb_node0001: (UP) v_mydb_node0002: (UP) v_mydb_node0003: (DOWN) Node Status: v_mydb_node0001: (UP) v_mydb_node0002: (UP) HP Vertica Analytic Database (7.0.x) Page 23 of 37

Part 2: Packaging the HP Vertica Database with Your Application v_mydb_node0003: (UP) Database mydb created successfully. Configuring the Database Execute the scripts that you created in Exporting the Optimized Database in this guide that Create the physical schema. Create the catalog objects. Create the logical schema. Create projections that have been configured for use with the application. Starting the Database To start your HP Vertica database, add a command to your packaging script that uses the admintools script with either the start_db or restart_db option, as described in this section. The restart_db option allows you to restart the database at the last good epoch, minimizing any loss of data. start_db Option $ /opt/vertica/bin/admintools --tool start_db [ options ] Command-Line Options Option -h --help -d DB --database=db -p DBPASSWORD --password=dbpassword -i --noprompts Purpose Show this help message and exit. Name of database to be started. Database password in single quotes. Do not stop and wait for user input. (Default: False.) HP Vertica Analytic Database (7.0.x) Page 24 of 37

Part 2: Packaging the HP Vertica Database with Your Application restart_db Option $ /opt/vertica/bin/admintools --tool restart_db [ options ] Command-Line Options Option -h --help -d DB --database=db -e EPOCH --epoch=epoch -p DBPASSWORD --password=dbpassword -i --noprompts Purpose Show this help message and exit. Name of database to be restarted. Epoch at which the database is to be restarted. If 'last' is given as the argument, the database restarts from the last good epoch. Database password in single quotes. Do not stop and wait for user input. (Default: False.) Connecting to the Database To connect to the HP Vertica database that you have started, add the following command to the packaging script: $ /opt/vertica/bin/admintools --tool connect_db [ options ] Command-Line Options Option -h --help -d DB --database=db -p DBPASSWORD --password=dbpassword Purpose Show this help message and exit. Name of database to connect to. Database password in single quotes. HP Vertica Analytic Database (7.0.x) Page 25 of 37

Part 2: Packaging the HP Vertica Database with Your Application Backing Up the Database Hewlett-Packard strongly recommends backing up the database on a regular basis. This task is especially important for a single-node environment where K-safety = 0. Hewlett-Packard provides a comprehensive utility, the vbr.py Python script, that lets you back up, restore, list backups, and copy your database. You can create full and incremental database backups and snapshots of specific schemas or tables to use with a multi-tenant database. Using vbr.py, you can save your data to a variety of locations: A local directory on the nodes in the cluster One or more hosts outside of the cluster A different HP Vertica cluster (effectively cloning your database) Create regular snapshots of your data by running vbr.py from a cron job or other task scheduler. HP Vertica Analytic Database (7.0.x) Page 26 of 37

Part 3: Developing Applications to Work with HP Vertica Part 3: Developing Applications to Work with HP Vertica Sometimes, either your application or your HP Vertica database requires changes to optimize performance. The following sections provide an overview to the APIs that you can use to make such changes: Connecting to HP Vertica from External Applications HP Vertica Command-Line Interface SQL Analytic Functions Connecting to HP Vertica from External Applications To communicate with your database from an external application, HP Vertica support the following client drivers: Open Database Connectivity (ODBC) ODBC is the most commonly used interface for thirdparty applications and clients written in C, Python, PHP, Perl, and most other languages. Java Database Connectivity (JDBC) Clients written in the Java programming language communicate using JDBC. For Java and JDBC, you can use HP Vertica class extensions to add functionality. For more information, see the JDBC API Documentation. ActiveX Data Objects for.net (ADO.NET) You can develop clients using the Microsoft.NET Framework. Clients written in C#, Visual Basic.NET, and other.net languages use ADO.NET to communicate with your database. HP Vertica provides class extensions for ADO.NET. Specific programming languages often have their own interfaces on top of these libraries. For example, HP Vertica supports: The Perl Database Interface Module (DBI), which provides an interface based on the ODBC driver. The Python pyodbc module, which also provides an interface to the ODBC driver. The Linux ODBC or iodbc libraries support connections through PHP-ODBC. For detailed instructions about connecting using external applications, see the following sections in the Programmer's Guide: HP Vertica Analytic Database (7.0.x) Page 27 of 37

Part 3: Developing Applications to Work with HP Vertica Programming ODBC Client Applications Programming JDBC Client Applications Programming ADO.NET Applications Programming Python Client Applications Programming Perl Client Applications Programming PHP Client Applications HP Vertica Command-Line Interface There are three ways to work with HP Verticausing command-line tools: Administration Tools vsql Binary and script files that install when you install your HP Vertica database Administration Tools Administration Tools is a GUI that you use to manage your database. You can also perform many of the Administration Tools tasks from the Linux command line or within a shell script. To see a list of tasks you can perform by running the Administration Tools from the command line, enter: $ admintools -a vsql One way you can use vsql is for monitoring the data in the system tables. These tables provide a stable set of views that let you monitor information about your system s resources, background processes, workload, and performance. This information allows you to more efficiently profile, diagnose, and view historical data about load streams, query profiles, tuple mover operations, and more. System tables are grouped into two main schemas: V_CATALOG and V_MONITOR. For detailed information about system tables, see System Tables. To see the full list of system tables, enter: => SELECT * FROM system_tables ORDER BY table_schema, table_name; HP Vertica Analytic Database (7.0.x) Page 28 of 37

Part 3: Developing Applications to Work with HP Vertica Binary and Script Files Located in /opt/vertica/sbin are scripts that you can call from the Linux command line. These scripts allow you to perform certain administrative tasks. For example, the install_vertica and update_vertica scripts allow you to add hosts to a cluster. The vbr.py utility, which is a Linux binary file, performs backups and restores on your database. You can also run Database Designer programmatically. You can call the functions from vsql using functions or from the Linux command line. This may be helpful when an update to the application changes the database schema and a call to Database Designer can be embedded within the update code. For more information about running Database Designer programmatically, see the functions listed in the SQL Reference Manual. SQL Analytic Functions HP Vertica provides advanced data manipulation and analytic capabilities as SQL functions. These functions are based on the ANSI-99 syntax and their syntax is similar to basic SQL. The functionality that the analytic functions includes: Ranking Calculating moving averages Comparing values based on a moving or partitioned window Calculating a distribution of values Calculating standard deviation or variance of values Geospatial calculations IP conversion Analytic Function Workflow Most HP Verticaanalytic functions follow this workflow: 1. Group the input rows according to the PARTITION BY clause. 2. Order the input rows within groups according to the ORDER BY clause. 3. Compute the function for each row. You can use the analytic functions to sort group values or partitions using a window ORDER BY clause. However, the order affects only the function result set, not the entire query result set. HP Vertica computes the full results after WHERE, GROUP BY, HAVING clause operations, and after joins are performed on the query. HP Vertica Analytic Database (7.0.x) Page 29 of 37

Part 3: Developing Applications to Work with HP Vertica For detailed information about the analytic functions, see Analytic Functions. Syntax Analytic functions use the following syntax: Analytic_function (arguments) OVER (analytic_clause) HP Vertica Analytic Database (7.0.x) Page 30 of 37

Part 4: Ongoing Database Maintenance Part 4: Ongoing Database Maintenance Once your application is up and running at the customer site, manage and monitor your database operations in the following areas. These steps help you prevent performance issues and down time: Monitoring System Resources for Concurrent Use Monitoring Database Size Updating Statistics Optimizing the Physical Schema Optimizing Query Performance Database Recovery Hardware Maintenance Troubleshooting Performance Monitoring System Resources for Concurrent Use If you are running Vertica Analytic Database in a multi-user environment, you may have several processes competing concurrently for system resources. The built-in GENERAL resource pool is preconfigured based on your system's RAM and machine cores. You can customize the GENERAL pool or define new resource pools and configure them for memory usage, concurrency, and query priority. To monitor use of system resources over time, query the following system tables: RESOURCE_ACQUISITIONS lists details about each resource (memory, open file handles, threads) acquired by each request for each resource pool in the system. RESOURCE_POOL_DEFAULTS (systab) lists default values for parameters in each internal and user-defined resource pool. RESOURCE_POOL_STATUS contains configuration settings of the various resource pools in the system, including internal pools. RESOURCE_POOLS contains information about settings that each resource pool was configured with. RESOURCE_QUEUES lists information about requests pending for various resource pools. RESOURCE_REJECTIONS monitors requests for resources that are rejected by the Resource Manager. HP Vertica Analytic Database (7.0.x) Page 31 of 37

Part 4: Ongoing Database Maintenance RESOURCE_REJECTION_DETAILS records an entry for each resource request that HP Vertica denies. This information is useful for determining if there are resource space issues and which users/pools encounter problems SYSTEM_RESOURCE_USAGE provides history about system resources, such as memory, CPU, network, disk, I/O. For more information about managing resource pools, see Best Practices for Managing Workload Resources in the Administrator's Guide. Monitoring Database Size Your HP Vertica database is fully operable until columnar data reaches its allowance. Your license agreement specifies the maximum raw data size. In this context, raw data is the size of the uncompressed data in columnar tables. HP Vertica estimates raw data size by sampling data across the database, before compression occurs. The database uses statistical sampling to calculate an accurate estimate of the raw data size of your database. This approach allows HP Vertica to estimate the database size without significantly affecting database performance. Some data is not included when calculating the database size: Multiple projections of data from a table. Data appearing in multiple projections of the same table is counted only once. Data stored in temporary tables. Data accessible through external table definitions. Data that has been deleted but not purge from the database. Data stored in the WOS. Data stored in system tables such as monitoring tables, Data Collector tables, and Database Designer tables. Data stored in the flexible tables raw column. If you need a more accurate database size estimate than statistical sampling can provide, use the AUDIT function. The AUDIT function has parameters that allow you to tune its execution to minimize the impact on database performance. If your database's size approaches your licensed usage allowance, you see warnings in the Administration Tools and vsql. You have two options to eliminate these warnings: Upgrade your license to a larger data size allowance. Delete data from your database to remain under your licensed raw data size allowance. HP Vertica Analytic Database (7.0.x) Page 32 of 37

Part 4: Ongoing Database Maintenance If your database continues to grow, after a grace period, the software displays additional warnings in more parts of the system. If your database size exceeds your licensed data allowance, all successful queries from ODBC and JDBC clients return with a status of SUCCESS_WITH_INFO instead of SUCCESS. The result contains a warning about your database size. Your ODBC and JDBC clients should be prepared to handle these messages instead of assuming that successful requests always return SUCCESS. For more information, see: Calculating the Database Size Monitoring Database Size for License Compliance AUDIT Updating Statistics The HP Vertica query optimizer relies on up-to-date statistics for tables, schemas, and the database. The statistics allow the optimizer to determine the most efficient plan to execute a query. The following statistics can affect optimizer decisions: Eligible projections to answer the query The best order in which to perform joins Plans involving different algorithms, such as hash join/merge join or group by hash/group by pipelined operations Data distribution algorithms, such as broadcast and resegmentation Without reasonably accurate statistics, the optimizer could choose a suboptimal projection or a suboptimal join order for a query. As you update your data over time, the statistics become out of date. Stale statistics can cause the optimizer to choose a less-than-optimal plan for executing a query. The query plan that the EXPLAIN statement creates contains information about statistics. How often you update statistics depends on how often your data changes. HP Vertica recommends that you schedule statistics analysis on a regular basis. This helps ensure that the optimizer chooses the most efficient plan for executing your queries. For guidance on updating statistics, see Collecting Database Statistics in the Administrator's Guide. HP Vertica provides the following functions related to collecting statistics: ANALYZE_HISTOGRAM Collects and aggregates statistics from all nodes that store projections associated with the specified table or column. You can specify what percentage of data to read from disk. HP Vertica Analytic Database (7.0.x) Page 33 of 37

Part 4: Ongoing Database Maintenance ANALYZE_STATISTICS Collects and aggregates statistics from all nodes that store projections associated with the specified table or column. DROP_STATISTICS Removes statistics for the specified table and lets you optionally specify the category of statistics to drop. EXPORT_STATISTICS Exports statistics to an XML file. IMPORT_STATISTICS Imports statistics from an XML file created by EXPORT_ STATISTICS. Optimizing the Physical Schema After you load data into your database, your first step should always be to run Database Designer. Database Designer creates a physical schema that provides optimal query performance. The first time you run Database Designer, make sure that Database Designer has representative queries and data on which to base the design. Then create a comprehensive design. Consider rerunning Database Designer to create an incremental design when: The data has changed significantly. You use different queries on a regular basis. You encounter performance issues with your queries. For more information, see Creating a Database Design in the Administrator's Guide. Optimizing Query Performance When you submit a query to HP Vertica for processing, the HP Vertica query optimizer automatically chooses a set of operations to compute the requested result. These operations together are called a query plan. The choice of operations can drastically affect the run-time performance and resource consumption needed to compute the query results. Depending on the properties of the projections defined in your database, the query optimizer can choose faster and more efficient operations to compute the query results. As your database grows over time, queries could degrade in performance. It is important to monitor the performance of your queries especially queries that are run frequently or access large data sets. If you encounter these problems, the first steps are to Analyze the statistics and the histogram for your database tables and run Database Designer, supplying queries that are experiencing performance problems. Review the QUERY_EVENTS system table. This table identifies whether there are issues with the planning phase of a query. HP Vertica Analytic Database (7.0.x) Page 34 of 37

Part 4: Ongoing Database Maintenance Database Recovery Recovery is the process of restoring the database to a fully functional state after one or more nodes in the system has experienced a software- or hardware-related failure. Those failures can include: Hardware failure of one or more nodes Clean shutdown of the database Unclean shutdown of the database, which can be caused by A critical node failed, leaving part of the database's data unavailable. A power failure that causes all nodes to reboot. HP Vertica processes on the nodes exited due to a software or hardware failure. A failure can cause a node to lose database objects or to miss changes made to the database (INSERTs, UPDATEs, and so on) while offline. The recovery process recovers lost objects and catches up with changes by querying the other nodes. For detailed information about database recovery after specific types of failure, see Recovering the Database in the Administrator's Guide. Hardware Maintenance The HP Vertica 7.0.x Supported Platforms document describes the hardware required to run the HP Vertica database. For on-going maintenance of your cluster nodes, follow the guidance in Adding or Removing Cluster Nodes in this guide. Adding or Removing Cluster Nodes You can scale your HP Vertica cluster up or down to meet the needs of your database. The most common way to scale up your cluster is to add nodes to your database cluster. These nodes can accommodate more data and provide better query performance. However, if your cluster has more nodes than it needs or if you need to divert hardware for other uses, you can scale down your cluster. You scale your cluster by adding or removing nodes. You can add or remove nodes without having to shut down or restart the database. After adding a node or before removing a node, HP Vertica rebalances the data. During rebalancing, HP Vertica moves data around the cluster to populate the new nodes or moves data off nodes that are about to be removed from the database. Data may also be exchanged between nodes that are not being added or removed to maintain robust intelligent K-safety. If HP Vertica determines that the data cannot be rebalanced in a single iteration due to a lack of disk space, then HP Vertica performs the rebalancing in multiple iterations. HP Vertica Analytic Database (7.0.x) Page 35 of 37

Part 4: Ongoing Database Maintenance For detailed information about managing your cluster, see Managing Nodes in the Administrator's Guide. Troubleshooting Performance If your application performance is slow, you need to determine if your application or the HP Vertica software is causing the problems. First, evaluate your system for performance issues. If you modify your application but are still experiencing issues, evaluate your HP Vertica database for performance issues. HP Vertica provides many tools to evaluate the performance of your database. The following sections of the Administrator's Guide describe them in detail: Analyzing Workloads Using Diagnostic Tools Understanding Query Plans Profiling Database Performance The Optimizing Query Performance section of the Programmer's Guide gives information about improving the performance of your database queries. HP Vertica Analytic Database (7.0.x) Page 36 of 37

We appreciate your feedback! If you have comments about this document, you can contact the documentation team by email. If an email client is configured on this system, click the link above and an email window opens with the following information in the subject line: Feedback on Best Practices for HP Vertica OEM Customers (Vertica Analytic Database 7.0.x) Just add your feedback to the email and click send. If no email client is available, copy the information above to a new message in a web mail client, and send your feedback to vertica-docfeedback@hp.com. HP Vertica Analytic Database (7.0.x) Page 37 of 37