Monday, February 17, 2014

Leverage DB2 Analytics Accelerator Technology More Completely with the IBM DB2 Analytics Accelerator Loader for z/OS

Yes, it's been a while since I last posted an entry to this blog - I've been up to my ears in other stuff. Now, however, I have something I really want to blog about, so I'm making the time to put pen to paper (figuratively speaking). Here's the elevator version, in case you're just going up a floor or two: if your organization has an IBM DB2 Analytics Accelerator, you need to be looking at the Analytics Accelerator Loader. If you don't have a DB2 Analytics Accelerator, consider how that technology could be made even more valuable to your company when paired with the Analytics Accelerator Loader.

OK, here's more information (if you're not on an elevator, or you're taking a long elevator ride). Lots of people know about the DB2 Analytics Accelerator: it's an appliance (server, software, and storage), based on Netezza technology, that is deeply integrated with a front-end DB2 for z/OS system and extends the capabilities of that system to enable execution of particularly complex and/or data-intensive queries with eye-popping speed. In case after case, you hear of queries executing 1000 or more times faster with a DB2 Analytics Accelerator on the floor. This consistency of outstanding performance led people to think, "Wow, the DB2 Analytics Accelerator is fantastic for queries that target tables in my DB2 for z/OS database. Wish I could achieve that kind of performance effect (and with the same attractive economics) for my non-DB2 data." With the availability of the Analytics Accelerator Loader, such thinking is no longer wishful.

The value proposition of the DB2 Analytics Accelerator Loader can be nicely summed up via two key use cases: getting non-DB2 data into an Analytics Accelerator, and non-disruptive loading of DB2 data into an Analytics Accelerator.

Getting non-DB2 data into a DB2 Analytics Accelerator. As previously mentioned, a DB2 Analytics Accelerator is front-ended by a DB2 for z/OS system (that's part of the beauty of the solution -- more on this momentarily). The front-end DB2 for z/OS system needs to know about any tables that have been "accelerated" (i.e., which can be found on the Analytics Accelerator), and that means that the "accelerated" data has to be in DB2 tables in the first place, right? Well, that used to be the case, and it caused some folks to hold off on putting data from sources other than DB2 for z/OS into an Analytics Accelerator. That thinking was understandable. Suppose, for example, that you had 100 million rows of data in table XYZ in a non-DB2 DBMS. To get that table's data into a DB2 Analytics Accelerator, you had to create the table on the DB2 for z/OS front end, load that table, and then copy that data (via unload and load) into the Analytics Accelerator. Maybe you didn't have the space in your mainframe disk subsystem for that data. Maybe you didn't want your DB2 for z/OS DBAs to have to manage an extra 100 million-row table on the front-end DB2 system. For whatever reason (or reasons), you may have ended up at, "Oh, well. I'll just leave the data in table XYZ where it is."

The Analytics Accelerator Loader can turn that "Oh, well" into "Oh, yeah!" How? By enabling this scenario: unload data from that hypothetical non-DB2 table XYZ, and load it directly into the DB2 Analytics Accelerator. The table ends up existing on the front-end DB2 for z/OS system only in a logical sense -- the table definition is there in the front-end system's DB2 catalog, but ALL of the table's data resides ONLY on the Analytics Accelerator. Is this a hard thing to do? NO. All that's required in terms of preparation for Analytics Accelerator loading is to get the data from the non-DB2 for z/OS source object unloaded into a flat file that's compatible with the IBM DB2 for z/OS LOAD utility (i.e., a flat file and the accompanying field specification information that indicates where fields start and end within a record). And THAT means that you can load non-DB2 data from all kinds of sources directly into a DB2 Analytics Accelerator: from VSAM, from IMS, from mainframe database management systems other than DB2, and from a wide variety of non-mainframe DBMSs.

So, why put non-DB2 data into a DB2 Analytics Accelerator? To get tremendous speed-up for queries accessing that data, sure, but also because the Accelerator is front-ended by a DB2 for z/OS system. Queries are directed to the front-end DB2 for z/OS system as they would be if the Accelerator weren't present, so nothing new is needed there (the front-end DB2 system takes care of routing queries to the Analytics Accelerator). AND you get the advantage of the best-of-breed security offered by DB2 for z/OS (the only way to access data in the Accelerator is through the DB2 front-end, and data security is managed at that level). AND you get the superior performance monitoring available with DB2 for z/OS (IBM's OMEGAMON for DB2 for z/OS provides DB2 Analytics Accelerator monitoring capabilities). AND you get to leverage the skills and abilities of the DB2 for z/OS system support team that you already have in place, without putting a lot of extra work on those folks (the Analytics Accelerator administrative interface is an add-on to Data Studio, with which many DB2 for z/OS people are familiar).

Non-disruptive loading of DB2 for z/OS data into a DB2 Analytics Accelerator. As appealing as that non-DB2-data angle is, it's not the whole of the Analytics Accelerator Loader story. For data that is already in a front-end DB2 for z/OS system, the Analytics Accelerator Loader enables non-disruptive loading of that data into a DB2 Analytics Accelerator. How so? Well, consider that the traditional DB2 Analytics Accelerator load operation involves unload from a source table on the DB2 for z/OS front end. If one wants the data unloaded from the front-end table to be time-consistent (i.e., not "fuzzy"), one needs to suspend updating of the front-end DB2 data while it's being unloaded. Enter the Analytics Accelerator Loader, and you have a great new option for loading data into a DB2 Analytics Accelerator: you can use an image copy of a DB2 for z/OS table space as input to a DB2 Analytics Accelerator load operation. That means zero impact on front-end objects. Not only that, but with the Analytics Accelerator Loader you can use an image copy together with the DB2 log to effect a point-in-time load of a table in a DB2 Analytics Accelerator, and that can be whatever point-in-time you want: after initial load from the input image copy data set, information from the DB2 log is used to roll the data in the table in the DB2 Analytics Accelerator forward to the desired point in time. And hey, there's more: you can use the Analytics Accelerator Loader to load data into a table in the DB2 Analytics Accelerator "as of current." Choose that option, and the Analytics Accelerator Loader will drive a new SHRLEVEL CHANGE (thus non-disruptive) FlashCopy (thus near-instantaneous) image copy that will then serve as input to the load of the associated table in the DB2 Analytics Accelerator.

The IBM DB2 Analytics Accelerator has proven itself -- across industries and around the world -- as a game-changing solution that greatly enhances the value (from a decision support perspective) of an organization's data assets. The Analytics Accelerator Loader, in turn, enhances the value of a DB2 Analytics Accelerator by 1) expanding its range of application beyond DB2 for z/OS-resident data and 2) increasing flexibility and decreasing impact when it comes to loading into an Analytics Accelerator data that already is resident in a DB2 for z/OS system. This is one of those situations in which one plus one equals a lot more than two. The Analytics Accelerator Loader could be a real winner for your company. Give it some thought.