Planning for Hardware Failure: Hadoop Enhancements – 1. Creating the DEV User in SPS09
Do you find yourself doing something you don’t recommend to others? In this video by the SAP HANA Academy Tahir Hussain Babar, aka Bob, demonstrates how to create a Development User for the HADOOP environment. This is an important first video, because as we all know, the System User’s fate, after installation and initial configuration, is retirement in splendid isolation. Returning to the point I made at the start. I have just found myself mildly rebuking one of my Rails students for reading about Tao rather than programming. Have I forgotten about the wider aims of Education in my drive for the material world? I sincerely hope not!
Bob s starts by outlining the other topics to be covered in this mini-series on the HADOOP environment for SPS09. He then shows the uninitiated how they can find about HADOOP and smart data access before stating explicitly that this video is going to focus on the delta features of HADOOP for SPS09.
What’s New for SPS09
Bob reminds viewers that from SPS08 it was possible to make a connection from HANA to a HADOOP system using an UNIX ODBC driver on a Linux Server. With SPS09 you now have direct access to the HDFS system from SAP HANA. You are also able to develop and invoke map reduced jobs directly from SAP HANA. You can use SAP HANA Studio as the single IDE to invoke map reduced jobs and leverage the HANA repository design time to create remote HADOOP sources and virtual functions. Additionally you have support for remote caching of virtual functions.
Bob outlines his starting point which in an Administration Console Perspective connected to an SPS09 system. He states that his objective to is to create a Development User using SQL. He explains the code line by line.
CREATE USER DEV01 PASSWORD Password1;
The first section of code creates a user called DEV01 and allocates it a password.
INSERT INTO _SYS_REPO.PACKAGE_CATALOG(PACKAGE_ID, SRC_SYSTEM, SRC_TENANT, DESCRIPTION, RESPONSIBLE, IS_STRUCTURAL)
The next section of code creates a base package where the user can store content.
GRANT EXECUTE ON REPOSITORY_REST TO DEV01;
GRANT EXECUTE ON GRANT_ACTIVATED_ROLE TO DEV01;
GRANT EXECUTE ON REVOKE_ACTIVATED_ROLE TO DEV01;
GRANT REPO.READ, REPO.EDIT_NATIVE_OBJECTS,
GRANT REPO.EDIT_IMPORTED_OBJECTS, REPO.ACTIVATE_IMPORTED_OBJECTS, REPO.MAINTAIN_IMPORTED_PACKAGES ON “DEV01” TO DEV01;
This section of code allocates permissions to work within the repository including the manipulation and modification of objects contained there.
GRANT CREATE REMOTE SOURCE TO DEV01;
The final section of code grants the DEV01 user the right to create a remote source.
After showing the scripts running Bob tells the viewer that this code is available from GitHub from the link in the description in the YouTube video. Bob then connects as the DEV01 user.
You will notice that this user has far less access to the catalogs but has access to the root package DEV01. Bob then uses the DEV01 user to create a repository workspace where content can be shared.
Big data is well, big right now, and will continue to grow as methods of collating and analysing information expand. Maybe it is time for a bit of Tao rather than bashing away at my keyboard. We all know the advantages that HADOOP brings. Data Warehouses are expensive and doing backups by replication is not practical for many businesses, a restore from a backup can also cause significant disruption. HADOOP has proven to be safe, easy to setup, cost-effective and fast. The system is live: and data in it can be analyzed. As online databases get larger, online backups allow for faster restores. HADOOP achieves reliability via its distributed architecture by sharing load. When you consider this idea, you will agree, that this is a very holistic approach. Once a system is configured in HADOOP, it’s like effortless action, the art of fighting without fighting, an inspirational way to think about how the way we work.