Introduction
Modernizing your data warehouse with Yellowbrick
Yellowbrick Data Warehouse is an advanced, massively parallel (MPP), SQL database designed for the most demanding batch, real-time, ad hoc, and mixed workloads. It can run complex queries at up to petabyte scale across numerous nodes, with guaranteed sub-second response times. Yellowbrick was conceived with the goal of optimizing price/performance. It’s not uncommon for customers to see their workloads run tens or hundreds of times faster at a fraction of the cost compared to cloud-only or legacy data warehouses.
Yellowbrick Data Warehouse Architecture
A simple end to end migration
Yellowbrick is designed to make migrating from Netezza fast and simple. The Yellowbrick Data Warehouse:- Uses the same underlying PostgreSQL dialect as Netezza
- Supports PL/pgSQL stored procedures
- Has a library of functions added for Netezza compatibility
- Has intuitive syntax like Netezza (for example, nzload is ybload and nzsql is ybsql)
- Offers a similar set of ecosystem integrations via standard ODBC, JDBC, and ADO drivers
- Is certified and supported by many of the same enterprise tools you use today, such as Tableau,, MicroStrategy and Informatica
Yellowbrick is standards-based
The Yellowbrick Data Warehouse supports organizing your data into databases and schemas, just like Netezza and every other PostgreSQL-inspired database. This means you do not have to worry about the migration breaking your applications. You can continue to maintain your database organization as you always have, with one database per tenant. If you want to expand to multiple schemas in a single database, you can do so easily. The Yellowbrick Data Warehouse includes a query history database that is installed and fully documented. Your queries will be logged and optimized on day one, and you no longer have to endure dumps of inmemory query history or manually configure the NZ_QUERY_HISTORY table as you might have been doing with your Netezza system. Yellowbrick provides a richer, more granular level of detail about all activity within the database and is easy to configure. You can set the retention period for your history with just one click.
Determining the current Netezza DDL
The nz_ddl_database command provides all the information about the DDL in your Netezza system, including table, view, synonym, and sequence definitions; user and group role creations; stored procedures; user-defined functions; and much more. To extract the DDL for each database, execute the following command: $ nz_ddl_database < database > > < database >.ddl One of our solutions architects will perform an inventory of your DDLs and map them appropriately to Yellowbrick, according to best practices and using automated conversion tools.Migrating table definitions
Migrating your table definitions is a seamless process. Many Yellowbrick customers move the Netezza DDL (CREATE TABLE) with absolutely no change to their data types. In addition, you will have the opportunity to improve your table distribution with the following options:- Replication for all tables that compress to a gigabyte or less
- Hash-based co-location of all tables greater than a gigabyte on a distribution column that links all the tables
- Randomly distributed tables for other use cases
- Table clustering and sorting that is like Netezza zone maps, but more granular
- Table partitioning, which is unavailable in Netezza; this feature reduces resource consumption for very large aggregates and supports fact- to-fact joins that are impossible to execute on a Netezza system
Migrating view definitions
Because Yellowbrick is based on PostgreSQL, all your valid SQL operations and database views will run as is.Migrating stored procedures
Yellowbrick supports PL/pgSQL stored procedures. A Yellowbrick solutions architect will perform an impact analysis of your query history to determine which, if any, stored procedures you should migrate (that is, which stored procedures your queries are using).Exporting the data
You export Latin as well as Unicode data from your Netezza system with one of these options:- Direct streaming from Netezza into Yellowbrick (requires giving Yellowbrick necessary permissions)
- Exporting Netezza data to CSV files. You can do this on a Windows or Linux client using the following methods:
- nz_backup
- nzsql
- SQL for remote external tables
Importing the data
If you exported the data to a CSV file (as opposed to direct streaming), you will import it using the ybload tool. ybload is intuitive like Netezza nzload, but with dramatic improvements. It is designed for parallelization, so you will not need to chunk files manually, and it maximizes the 10Gb network connection shipped with Yellowbrick. ybload also compresses data before sending it to Yellowbrick and can load multiple files at once. For example, users can run one ybload with a thousand files as input instead of invoking nzload a thousand separate times. These optimizations make loading simple and possible to dramatically accelerate load speeds compared to Netezza. Yellowbrick can also load data directly from cloud-based object storage that’s S3-compatible. The platform supports compressed or un-compressed files. If you are an HDFS user storing data in Hadoop, Yellowbrick uses a Spark-based importer that can consume most common Hadoop file formats, such as Apache Parquet or Avro.Migrating user-defined functions (UDFs)
Netezza systems often have an Oracle compatibility toolkit installed that provides a set of UDFs. Typically, customers use only a small number of UDFs, and the Yellowbrick Data Warehouse includes many of these functions out of the box. A Yellowbrick solutions architect will perform an impact analysis to see if there are any functions that the Yellowbrick Data Warehouse does not provide that are being used by queries.Users, groups, and security configuration
Like Netezza, Yellowbrick supports local or LDAP authentication methods. Creating database users (or roles) is the primary mechanism for managing local database security. After creating users, you can set up access control by granting or revoking privileges on databases, schemas, tables, columns, and stored procedures.Users, groups, and security configuration
Like Netezza, Yellowbrick supports local or LDAP authentication methods. Creating database users (or roles) is the primary mechanism for managing local database security. After creating users, you can set up access control by granting or revoking privileges on databases, schemas, tables, columns, and stored procedures. Use the following SQL commands: CREATE ROLE, GRANT, and REVOKE Yellowbrick LDAP configurations support directory service providers such as Active Directory (AD) for OpenLDAP. LDAP, LDAPS (LDAP over SSL), and LDAP+TLS configurations. This is an improvement over Netezza LDAP integration, which is limited to just authentication and requires Netezza customers to manually create USERS or GROUPS and can result in mismatches to the LDAP service. Yellowbrick provides an alternative to creating non-superusers manually in the database by synchronizing the users and groups stored in an LDAP directory and creates users and roles with the same credentials. You can synchronize specific users and groups by defining search criteria and filters.Redirecting users and applications
You can connect ODBC, JDBC, and ADO.NET applications to a Yellowbrick database using standard PostgreSQL drivers you download and install. This means you do not have to purchase new licenses to redirect your existing applications. More importantly, third-party tools (such as BI, ETL, and analytical tools) that are certified for PostgreSQL drivers will automatically be certified for the Yellowbrick Data Warehouse. Yellowbrick ships the open-standard PostgreSQL versions of these Windows or Linux drivers with every instance. ETL tools leverage ybload and ybunload for high-speed data movement in and out of Yellowbrick as described in the “Importing the data” section.Simplify operations with intelligent automation
Yellowbrick is designed to deliver high performance to mixed workloads that modern enterprises require. It can support thousands of users running mixtures of real-time transactional atomic inserts; bulk loads of data; ELT workloads; interactive queries; ad hoc queries; and long-running, batch-oriented reports. While today’s mixed workloads require a high-performance solution, as the number and diversity of workloads increases, it is even more critical that you have the ability to specify, control, and automate the work that matters most. Yellowbrick gives you this control with:- Real-time visibility into workload performance, with alerts, that ensures you know immediately when workloads are struggling. Historical workload reporting also helps you manage workloads effectively across the enterprise.
- Workload management reporting that enables you to see if the performance of different workload groups is meeting business requirements.
- The ability to reprioritize any workload on the fly so you can adapt to unexpected changes in the business environment.