Prince2 Certification

The second week of this year I had spend on Prince2 training. I can say, that the training was intense - every day I had to read ~80 pages and learn a lot of stuff. Additionally, the training included two exams (second and fifth days) :). Well, today I have received the result and I am glad to say that I'm a qualified Prince2 Practitioner.

dsSize function and TTSize utility in TimesTen

I didn't have an opportunity to write anything lately, because had spent last two months in Nottingham.  But now I have a couple days to relax, so I have decided to write about one useful function and one utility in TimesTen. 7.0.5 version is used for the demo (I understand that this is a very old version, but I am a lazy person :) )

As you know, TimesTen stores all information into the memory (RAM) and obviously there are limits for RAM space (nowadays you can buy a server with a couple of TBs of RAM, but still it is not 100 TBs). In this situation, TimesTen users should know how to control the space and how to determine the necessary volume of memory for your  system. I have already written one post about the memory allocation here, but now I would like to describe the following:
  • dsSize function
  • ttSize utility
The first one is used to reports the current sizes of the permanent and temporary database partitions. For example:

[oracle@localhost info]$ ttisql

Copyright (c) 1996-2008, Oracle.  All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
All commands must end with a semicolon character.


Command> connect dslab1;
Enter password for 'ttdemo': 
Connection successful: DSN=dslab1;UID=ttdemo;DataStore=/app/oracle/product/datastore/dslab1;DatabaseCharacterSet=CL8MSWIN1251;ConnectionCharacterSet=US7ASCII;DRIVER=/app/oracle/product/7.0.5/TimesTen/tt70/lib/libtten.so;LogDir=/app/oracle/product/datastore/dslab1/log;PermSize=120;TempSize=50;TypeMode=0;
(Default setting AutoCommit=1)
Command>
Command> dssize;

  PERM_ALLOCATED_SIZE:      122880
  PERM_IN_USE_SIZE:         1222
  PERM_IN_USE_HIGH_WATER:   1372
  TEMP_ALLOCATED_SIZE:      51200
  TEMP_IN_USE_SIZE:         3587
  TEMP_IN_USE_HIGH_WATER:   3587

Command>
I just created the connection and checked current sizes of the permanent and temporary database partitions. If you add more information in your database, the size will grow. For example, let's create two tables and insert a couple of rows and after that compare results:
[oracle@localhost sql]$ ttisql -f lab1.sql dslab1

Copyright (c) 1996-2008, Oracle.  All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
All commands must end with a semicolon character.

connect "DSN=dslab1";
Enter password for 'ttdemo': 
Connection successful: DSN=dslab1;UID=ttdemo;DataStore=/app/oracle/product/datastore/dslab1;DatabaseCharacterSet=CL8MSWIN1251;ConnectionCharacterSet=US7ASCII;DRIVER=/app/oracle/product/7.0.5/TimesTen/tt70/lib/libtten.so;LogDir=/app/oracle/product/datastore/dslab1/log;PermSize=120;TempSize=50;TypeMode=0;
(Default setting AutoCommit=1)

run "lab1.sql";

set autocommit 0;

create table emp (id number not null,
                  creation date, 
                  name_1   varchar2(40),
                  name_2   varchar2(40),
                  surname  varchar2(40),
                  dept_id  number,
                  Primary key (id) );

commit;
create table dept (dept_id    number not null,
                   dept_name  varchar2(40), 
                   Primary key (dept_id) );

commit;

insert into dept (dept_id, dept_name) values (1, 'Sales');
1 row inserted.

...

insert into dept (dept_id, dept_name) values (9, 'CEO office');
1 row inserted.

commit;

insert into emp (id, creation, name_1, name_2, surname, dept_id) values (1, sysdate, 'Pety1','Petrovich1', 'Ivanov1',1);
1 row inserted.

…

insert into emp (id, creation, name_1, name_2, surname, dept_id) values (100, sysdate, 'Pety100','Petrovich100', 'Ivanov100',9);
1 row inserted.

commit;

exit;
Disconnecting...
Done.


Command> tables;
   ...
  TTDEMO.DEPT
  TTDEMO.EMP
   ...
Command> dssize;

  PERM_ALLOCATED_SIZE:      122880
  PERM_IN_USE_SIZE:         1372
  PERM_IN_USE_HIGH_WATER:   1372
  TEMP_ALLOCATED_SIZE:      51200
  TEMP_IN_USE_SIZE:         3650
  TEMP_IN_USE_HIGH_WATER:   3713


We see the difference in PERM_IN_USE_SIZE values as expected. ttSize utility is used to estimates the amount of space that a given table in the data store will consume when it grows to include particular amount of rows. For example, we created the table emp, so let's have a look how we can use ttSize utility:
[oracle@localhost ~]$ ttSize -tbl emp -rows 1000000 dslab1
Enter password for 'ttdemo': 

Rows = 1000000

Total in-line row bytes = 207078073

Indexes:
  T-tree index TTDEMO.EMP adds 10541265 bytes
  Total index bytes = 10541265

Total = 217619338

This command shows the approximate amount of memory required for storing 1M rows in emp table.

Hadoop on Windows

A lot of people are interested in Hadoop technology these days and currently I am participating in one project related with this technology. The first task was to install Hadoop - easy, right? But I had been told that we were going to use Windows OS and there is no opportunity to use Linux instead. I conducted a quick research and found the Hortonworks distribution which can work on Windows. BTW, the Hortonworks is the only Hadoop distribution that works in Windows :). As you see, I didn't have much choice, so I downloaded the software and installation guide.

The first surprise is that Windows Server (2008 and 2012) is supported OS only, but I could manage to find the Windows Server 2008 machine. After that you have to install required software (jdk, python, .net and Visual C++ Distributable Package). No problem. Everything is done. The next step is to run the msi file. I run it and specified all parameters I required. Installation started but suddenly McAfee windows appeared and showed the message that one of the Hadoop files contains a virus and just deleted it. Nice. After that very weird things started happens - I started to get errors like "There is a problem with Windows Installer package. A program run as part of setup didn't finish as expected. Contact the vendor". Hm... I got this error even after I stopped all McAfee services. I am not a Windows expert, therefore I didn't even know what to do :)

After one week struggling with Windows Server 2008 and our firm's security policies I could finally install the Hadoop on Windows. The next post will be about the loading data into Hadoop and Hive.

PS. I would like to thank David Goodhand from Hortonworks support team for his help and very fast response (I didn't expect this to be honest :) ).




 

Oracle News

There are a lot of news related with Oracle these days.

The first one is that the founder and CEO of Oracle Larry Ellison decided to leave a CEO job and became a CTO instead. It is kind of a big change in my opinion. Larry has been leading Oracle for the last 37 years and he has archived a great success, therefore now I would expect a new era with Oracle (good or bad will see).

The second one is that OOW conference is started. The first day was about the Cloud, nothing special. Only one announcement was surprising - Oracle Exalytics X4-4 would contain Oracle in-Memory Database! It means that Oracle TimesTen would be replaced by Oracle DB. I think, it is the end of TimesTen! Very sad.

Chapter 4 - Key Terminology

This chapter contains only definitions - the most boring chapter I've ever read. Don't know even what to write. Quick read and test is passed (5 out of 6). Anyway, have to learn these definitions :(
Hope the next chapter will be more interesting.

Chapter 3 - Core Concepts (Part 2)

Today I have to understand what Enterprise Continuum (EC) is. First of all, EC is a view of Architecture Repository. EC should explain how the generic solution can be leveraged and managed in order to support the requirements of an particular organisation.

Architecture Repository stores different classes of architectural output at different level of abstraction. AR is consists of the following components:
  • Architecture Metamodel
  • Architecture Capability
  • Architecture Landscape
  • Standards Information Base (SIB)
  • Reference Library
  • Governance Log
Enterprise Architecture Capability (Architecture Capability Framework) - is a set of materials and guidelines. It consists of 7 parts (will not list them here) - OMG I have never seen the word "Architecture", "Capability" so many times on one page :).

Additional thing is enterprise architecture practice must be run like any other operational unit within a business.

The test is done. 6 out of 7 - made only one mistake - forgot that EC is a model for classifying artifacts. Looking forward for the next chapter.


Chapter 3 - Core Concepts (part 1)

I've already written that didn't have much time to read the TOGAF - last Friday was a deadline for the project, therefore I was spending for almost 10-11 hours at work. Finally, it is over, so I can continue the process.

Today is the third chapter. It contains a lot of information and I have to remember all of it. This is not a very easy process, so I decided to split this chapter to two part. This part contains information about ADM (including phases), Deliverables, Artifacts and Building Blocks.

ADM (Architecture Development Method) forms the core of TOGAF and provides the repeatable process for developing architecture. There are 10 phases in ADM.
  • Preliminary (Architecture Capability)
  • Phase A: Architecture Vision
  • Phase B: Business Architecture
  • Phase C: Information Systems Architecture (Data and Application)
  • Phase D: Technology Architecture
  • Phase E: Opportunity and Solutions (forming Target Architecture)
  • Phase F: Migration Planning (migration from Base to Target)
  • Phase G: Implementation Governance (architecture oversight of implementation)
  • Phase H: Architecture Change Management (managing change to the new architecture)
  • Requirements Management (examines the process)
Very difficult to remember, spatially G and H phases, but I will try :). The next section describes the structural model for ADM outputs (like requirements, plans etc.). The TOGAF Architecture Content Framework uses three category:
  • deliverable (signed off by stakeholders)
  • artifacts (aspects of architecture: matrices, catalogs, diagrams)
  • building blocks (reusable components)
That is all for today. Tomorrow, will have a look on the rest of chapter 3.