Ab Initio Overview
Ab Initio is suite of applications containing the various components, but generally when people name Ab Initio, they mean "Ab Initio Co>operation system", which is primarily a GUI based ETL Application. It gives user the ability to drag and drop different components and attach them, quite akin to drawing.
The strength of Ab Initio-ETL is massively parallel processing which gives it capability of handling large volume of data.
Let’s componentise Ab Initio
- Co>operation System
- EME(Enterprise Meta>Environment)
- Additional Tools
a. Data profiler
b. Plan-IT etc
ETL application Co>operating System comes packed with EME (mentioned in next paragraph). This is a graphical user interface (GUI) application. Because of the drag-and-drop features, the design is extremely straightforward; most of the functions are quite basic, therefore the learning curve is quite high. It now has two additional flavours or subclasses:
1. Batch Processing Mode
2. Constant Flow Both are mainly accomplishing the same tasks, but their processing modes are classically distinct, as the names suggest. Most customers prefer "Batch Mode" since it allows them to move large amounts of data (daily/multiple times per day). Continuous mode is more "Click/Trigger" driven; for example, when you click on a web page, data flow begins; some very big web-based applications run on Ab Initio servers utilising Continuous mode. Flowing indefinitely EME is similar to source control for Ab Initio, however it has a lot more functionality.
1. Meta data management
a. Business Metadata management
b. Process metadata management
- Impact Analysis
- Documentation tools
- Run History Tracking
- And surely Check-in and check-out
Ab Initio has come up with certain other application to complement the ETL suite; I will not be covering these in details, just one liner
Data profiler – It is data profiling tool, got the features for data quality analysis
Plan-IT – It is primarily a scheduler built by Ab Initio to run Ab Initio jobs. It can be integrated with Ab Initio jobs.
Categorising Ab Initio and labelling strength and weakness based on the following criteria. I am giving each section points from 1 to 10(10 being best) based on my own experience and some reference from web.
- Cost to purchase(4)
- Total Cost of Ownership(4)
- Platform (OS and DBMS)(8)
- Ease of use (wizards, drag & drop, etc)(8)
- Learning curve(6)
- Performance(9)
- Available expertise(7)
- Ab Initio Support and Other Resources(5)
Cost of Purchase – It is one of the costliest ETL tool in the market, with cost ranging from 500k to 5M, it depends upon the number of servers Ab Initio is installed, number of developer license and type of license, and batch flow is comparatively cheaper than continuous flow.
Comparing it with other major ETL tools like Informatica with similar functionalities, the pricing difference will be clearly evident
Total Cost of Ownership – The cost of ownership comes in 3 parts
a) Annual maintenance charges
b) Cost of employing/training Ab initio resources
c) Development cost
Annual Maintenance charges – It is generally the percentage of initial cost and it is significant due to high initial cost. This number may differ based on the NDA and initial investment. A rough 10% maintenance charges is significant outflow.
Development cost – covered under training and resources
Available Expertise/Ab Initio Resources (training/employing) –
It is high end tool, so the developer community is not massive like many open source application, so employing these resources come with premium price.
Additionally Ab Initio is such a close community, so if you are ETL developer and want to explore/learn Ab Initio generally you will hit a wall and as I recall really there are 2 options
- Work for an Organisation who own Ab initio
- There are only handful of organisation who train in Ab Initio, so pay a premium to join the club
Platform – Like most of other ETL tools, it can work in various platforms.
On Database front, it can connect to all the major databases available in the market. So there is nothing to choose between this tool with respect to others. It allows connection to DB either by ODBC client or native mode, I believe some of other ETL tools may not have native mode supported
Ease of use – Being GUI based it is easy to use, simple component s, drag and drop and various indicators if connections are not completely made. In comparison to other tools, there is nothing much to chose in that end.
Creating custom based components and re-using those is one feature, I really liked in Ab Initio
There are certain set of components which are difficult to use and may require bit of scripting experience, but it is okay
Learning Curve – Learning curve is quick to start with; the difficult components can take some time. Ab Initio has designed certain components very cleverly, it takes bit of experience to utilize those optimally and take bit of time. I guess learning time of about 15 man days for a programmer with about 2-3 years experience will give enough fluency in designing application
Part of learning curve is covered in next section
Ab Initio Support and other resources –
Covering both topics in one go – Ab Initio is treating their application like a fort/sacred book, with little information and literature available on the market, so as a consequence, there is not enough information material on web.
- Not enough resources on web
- Hit productivity of team, when struck with a technical/design issue
- Unavailability of training material hurt training new employees
Just like any application/scripting language, there is potential of not using the application optimally, I really believe lack of proper training and open discussion has hit Ab Initio developers really hard, where they missing and still groping in dark having following set of problems
- No Access or standard set of best practices. Organisation tend to have their own best practices if any and under tough external review generally these will fall much short of best
- Missing Input from other communities having parallel functionalities and smaller developer pool restricts better ideas/inputs
Though Ab Initio provides training for users (costumers), but it does not cover each and every aspect of Ab Initio and advanced training comes with a cost,
Ab Initio provide support to their customers, it is of decent quality, but it takes generally long turnaround time
Performance –
I left this topic at end, as this is the reason Ab Initio is used
For massive data processing, where time is of essence and performance and through put is critical, Ab Initio stands head and shoulder above others.
1. Massively parallel Architecture
a. Available data can be split and processed in parallel giving it huge processing advantage.
b. Theoretically, it is possible to design a system using Ab Initio architect where any additional processing power can be achieved by adding additional resources in parallel, thus allowing any scale-up easy and possible
2. Innovative component
a. Ab Initio components like compressed indexed files and similar gives Ab initio an edge when dealing with huge dataset. Though this concept is not unheard of, in past, but Ab Initio implemented it successfully.
b. Some new scripting features known as PDL (Program definition Language) in Ab Initio allows flexibility, which is quite well received by Ab Initio developers and not easily available in other ETL tools.
c. Personal perception: Ab Initio has put some effort in component design taking care of small issues like memory management/memory foot print. Though these are not critical essentially, but in time critical system, these provide an edge.
visit us: https://hkrtrainings.com/abinitio-online-training