The first event in 2015: Riga DevDay

Last week I was speaking at the Riga DevDay. That was an event in Riga, Latvia for software developers. The venue was a movie theatre inside a shopping mall (I did not buy anything:)) and there were more than 400 attendees. Quite a number!

I spoke about Data Modeler and 9 use cases for it. This time I adjusted my session a bit because I realized not everybody in the audience knew the tool so I cannot jump to details immediatelly. This time I had a very special audience in many ways: it included my younger son. I was a bit nervous how he sees my presentation and will he be very embarassed (he is a teenager)… He enjoyed the session and afterwards told me that most, if not all, of my sentences were meaningful and he enjoyed my session a lot. He also pointed out that I was the only female speaker in this event and that makes him especially proud of me. I hope the rest of the audience enjoyed too :-)

Riga DevDay was a great start for a new year and I really enjoyed it very much. I want to thank the organizers for everything and especially the best speaker’s gifts ever: a red and white woolen scarf (I love it and I wear it every day!) and a cooking book for Latvian food (one of my favorite hobbies is cooking…).

Unfortunately I must cancel my sessions and travels on February due to my health issues but in March I will have the full power on again and heading to both Norway (OUGN) and Ireland (OUG Ireland)… I hope to see you in either of those conferences…

My 2014 and Happy 2015!

My life is always busy but I do not think it has ever been busier than it was during 2014!

 

In January, while I was visiting the Oracle HQ, Paul Carlstroem from Oracle Press came to me and asked if I was interested in writing a book for them. Believe me I was the most surprised person to hear my reply: yes. Wow! That decision alone made my year busy!

 

So in January I was at the Oracle HQ attending the International Oracle User Group Summit and in May I attended the EMEA User Group Presidents’ meeting in Sofia, Bulgaria. During the year I spoke at some exciting events the first time: the OUGN boat conference, Kscope14 and the Nordic ACE Director Tour. These were so great and I can already say that I am a lucky girl: I will be speaking in both OUGN15 and Kscope15! New to me were also the roadshows organized by local Oracle. Amazing tours around Finland that I was lucky to be a part of.

Of course I did do some talks in user groups I always love to go: BGOUG (Bulgaria) and DOAG (Germany). Lucky me! Not to mention my own user group OUGF that organized an amazing event in the middle of a Finnish forest in June. That conference I will always remember. Mainly because it also included a guided tour in Helsinki by yours truly and a camping night for the speakers. That was great fun!

This year’s Oracle Open World was very special to me. There was my first Oracle ACE Director briefing at the Oracle HQ just before the Open World and I had four talks during the Open World. It was a busy 10 days! But I enjoyed very much and I am really looking forward to my next briefing and the Open World! Thank you for letting me be an Oracle ACED! I am so happy and honored and will try to be as good ACED as I can be!

2014 was not a good year in the sense of finance and Finland is not doing great now. I hope 2015 will be better. I love my country but I am very worried. I never speak “politics” but this country needs strong decisions and less restrictions for business.

2015 will be very interesting. My book will come out (I am so excited!) and I will have been invited to many great events to go and talk about my favorite topic: database design! It is possible I will find new topics too as I did in 2014… I have made a very hard and sad decision for 2015: I will not continue as the president of OUGF. I will continue my work and co-operation with user groups if they only let me but I will not be a president any more. My life has been too busy and I have too many responsibilities, it is time to let other people to take some of those responsibilities. My company needs me, my family needs me and most of all I need me…

 

Thank you for making my year 2014 so amazing! And thank you for being a friend!

I wish you all a great 2015 and I hope to see you in 2015 many times during my trips!

DOAG, Germany

On Nov 18-20 I attended the User Group (DOAG) event in Nuremberg, Germany. The event was amazing. The content was super quality, plenty of people to network with and such a great hospitality from the organizers.

On Tuesday I presented with Jeff Smith from Oracle Corp. We were showing how Data Modeler can be used in collaborative work with Subversion and with Microsoft Excel. I think the presentation was very well taken and I always love speaking with Jeff: he is fantastic. And I am glad Maria Colgan found our presentation both informative and funny:) Thank you, Maria, for your great feedback! In the evening we had the speakers’ dinner in a lovely small restaurant. We had a fun and enjoyable evening!

On Wednesday I did not have any presentations but I attended the user group presidents’ meeting that DOAG was kind enough to organize. The meeting was excellent and we shared a lot of ideas and concerns. In the evening we had a great conference party with plenty of food, drinks, football and music. And a lot of networking. FUN!

On Thursday I gave my database security talk in the biggest room. That was quite scary. See yourself…

DOAG

The content in the conference was excellent and everything was just perfect but I think the most valuable thing in visiting events is meeting people. I met many of my friends and I made so many new friends it makes me happy. And I must say the Nuremberg airport was a great place to be on Thursday evening to meet the rest of the gang:-) It was so nice to see you all!

Thank you DOAG for your support to the Oracle Community! And thank you for inviting me!

Hive tables with Data Modeler

Since version 4.0.2 Data Modeler has supported Hive tables, now in 4.0.3 also SQL Developer does that. It means that at least you can:

– design Hive tables

– reverse engineer Hive tables

– create SQL queries on both Oracle tables and Hive tables

The implementation is a special external table.

I will write a little about designing and reverse engineering a Hive table. I leave the query part to Jeff Smith to complete:-)

1. How too design a Hive table

Design a table as usual. In relational model you can set dynamic properties hiveName and hiveSchema for the table. These properties will be taken into account in DDL generation.

In Physical Mode define “Organization” property for a table to “External” and the “Access Driver” in “External Table Propertied” to “ORACLE_HIVE”.

And there you are. Now just Export the DDLs and you have the DDLs for creating the external Hive table.

Note that the table will be found under “External tables” tab in “DDL Generation Options”.

2. How to reverse engineer a Hive table

Since version 4.0.2 Data Modeler and since version 4.0.3 SQL Developer has been supporting Oracle Big Data SQL and Hive. This support allows you to connect to Hive and reverse engineer Hive tables. To be able to create a connection to Hive you must first download the JDBC drivers and connectors. Data Modeler supports both Hortonworks and Coludera implementations, SQL Developer only supports Cloudera. You can download the Cloudera JDBC Drivers from http://www.cloudera.com/content/cloudera/en/downloads.html.

Unzip. Note: there is also a PDF file that is worth reading.

Start Data Modeler or SQL Developer. Go to Tools, Preferences, Third Party JDBC Drivers and add the drivers on the list: press the green plus and find the files extracted from Cloudera_HiveJDBC4_<version>.zip. Add all the files.

Close Data Modeler or SQL Developer and restart it. Select “Import”, “Data Dictionary” from “File” menu and press “Add” in the “Data Dictionary Import Wizard” to create a new connection.

For Data Modeler the Hive connection is a JDBC connection with “Other ThirdParty Driver”. Just select the JDBC tab and define the “JDBC URL” and “Driver Class”. When you download the drivers you will also get a PDF file that explains what to insert here.

For SQL Developer it is a new tab “Hive” in “New / Select Database Connection” screen.

After you have created the connection you can reverse engineer from a Hive table using the “Import”, “Data Dictionary” and your new connection.

Winner!

Yesterday I faced the writer’s block. To get over it I told myself I am not ALLOWED to write at all. It took me 60min before I broke the rule and started to write :-) I am easy to trick… LOL

Now the last chapter has been sent for tech editing! Hooray!

OK, there is still plenty of work with tech editors’ comments and copy editing but I declare myself a winner now! Short celebration and then back to writing.

Writer’s block

Here we go. As I have mentioned probably too many times I am writing a book and I love it. People told me that there is a thing called “writer’s block” that will hit you several times during the writing. I was thinking it will never hit me because I love writing so much. Once again I was wrong. It did hit me today. I am working on several chapters (one is still waiting for my finalization for tech editors and four chapters waiting for me to implement the comments from tech editors) and I just jump from one chapter to another and hope that a miracle happens and I write again. But no. Cannot get it going.

Bobby Curtis (@dbasolved) just adviced me to relax and I will follow his advice. For some reason I trust he knows what he is talking about ;-) and I will relax now and try not to write at all. Let’s see what happens…

If I know myself by 00.00 o’clock I am writing and cannot stop before 3 am:)

Reverse engineer and discover foreign keys

You can easily document your database with Data Modeler: just reverse engineer the database with File-> Import -> Data Dictionary. But what if the database has no foreign keys? What’s the point of documenting then? Just tables that has nothing to do with each other….

Well, Data Modeler can help with that too: you can use “Discover Foreign Keys” functionality to find the foreign keys that should be in the database and even generate the DDLs for them if needed…

There are two ways Data Modeler can guess the foreign keys for you: the column has the same name as a primary key column in parent table or using the naming templates. And combinations of those.

Select the relational model from the Browser. Right-click and select “Discover Foreign Keys”. I have two tables: CUSTOMER and ORDER.

Tables

I will ask Data Modeler to find me the foreign keys.

If I select “Referred Column” as the “FK Column name property” and press “Scan Again”, Data Modeler suggests that column CustNo might be a potential foreign key column.

ReferredColumn

If I agree on that I press OK and the foreign key has been created automatically into my relational model.

If I select “FK Column Template” as the “FK Column name property” and press “Scan Again”, Data Modeler suggests that column Customer_ID might be a potential foreign key column.

FKColumnTemplate

The reason for that is that I have defined in my Design Properties that a foreign key column will be named as PARENTTABLE_ID.

Template

If you want Customer_ID to be the foreign key just press OK.

You can also select either “Referred and Template” or “Template and Referred” as the “FK Column name property”. The first one tries to find first columns with fitting name and secondary columns that fit the template, the latter does the opposite. In my example if I select “Referred and Template” the result would be the same as with “Referred” and if I select “Template and Referred” it would be the same as with “FK Column Template”. But if you have both naming standards in the database the results might be very different.

When you have created the discovered foreign keys into the logical model remember to press “Engineer to Logical Model” to get the relationships to entities and to the logical model as well.

All discovered foreign keys have a Dynamic Property (createdByFKDiscoverer) attached to them and can be easily found using that. If you want to remove the discovered foreign keys, select “Remove Discovered Foreign Keys “ from “Edit” menu. The foreign keys are removed without notice. Note that the Dynamic Property is not engineered to the relationship in logical model. If you decide to remove the discovered foreign keys for some reason remember to press “Engineer to Logical Model” again so that the relationships will also be removed.

I am sure you already guessed that there are some restrictions:

– the parent table must have either a Primary Key or a Unique Key that will be used while comparing

– the columns compared must be of same datatype, so not only the naming is enough

I think this is a great functionality and I am sure you will save a lot of time and money with it. Have fun!

WIT again

Correction after a comment I got: this is really not about WIT but the topic is WIT because I was contacted by people under the topic WIT. As you see in the end this all applies to both women and men and has nothing to do with IT.

And I think what should happen first is that women start respecting and supporting each other. That is the best WIT.

I am sorry I got stuck to this topic but after my post about my thoughts on WIT a lot has happened. And it made me think again.

The female boss I mentioned in my previous post. She has probably been my biggest idol ever. She is smart, honest, mother of three sons, a grandmother and always ready to help anybody. She is now retired and I met her a while ago. She is enjoying her life: the grandchildren, hobbies, volunteer work etc. When she looks back to her career she is very happy except about one horrible thing that happened to her during the years. There was a female IT co-worker who tried to make her life a nightmare and almost succeeded. I did not know her that time but I can only imagine. So this wonderful lady did not say anything bad about male colleagues but only about one female colleague. I feel really bad. I know her job was not easy but I know she made my life always easy by fighting for my rights whenever needed (and not event telling me about it, I only realized it after she left the position).

I have been contacted by couple of people either telling that they do not have the strenght to fight back or people saying they are tired of fighting for other peoples rights. I find this horrible. Why do you need to fight for your rights?! If you are good (or excellent) in what you are doing why do you still need to fight to be able to do your work?!

If people are like this the wars will never be over. Why can we not be friends and respect each other? Why do we need to make other people look bad and think that this way we will look better? I do not think somebody is better if she/he treats other people badly, I think she/he is a bad person. And I do not want to spend my time with bad people.

WIT (Women In Technology)

This is a topic I have been thinking a lot lately. Mainly because several people have asked me questions related to it and I had to think to be able to answer.

Yesterday I was speaking in an event in Tampere (Oracle 12c upgrade) organized by Oracle Finland, Miracle Finland and Arrow ECS. After the event the organizers and speakers had lunch. There were 8 people on the table: 4 men and 4 women, all working on IT. I was thinking that in my surrounding the situation is extremely good. But why?

In Finland women are equal to men in many ways. So being on IT in Finland is easier that in some other countries. I am sure it is not this easy in every country.

Then I started to think who have been the most supportive people in my career. Some men definitely (including my own hubby) but also a couple of women (my boss from years back and several colleagues). And I came to the conclusion that support is definitely needed and you cannot get the best out of yourself without that. And without the support from family you can actually do nothing.

Then I started thinking what is stopping me from doing even more and why did I not do these things I am doing now before. Number one stopping me is I. I do not know if that is because I am a woman or because I am a Finn or because I am who I am but that is definitely number one. I do not think I have special skills or knowledge (I know I do but I always “forget” it): I always think everybody knows what I know. My family is always number one whatever I am doing. So if I need to choose between a career and a family I would ALWAYS take family. It sounds strange because I am working like crazy and do not have enough time for the family but if anything happens family always wins. I like people and I always expect the best of them. That of course is sometimes disappointing… I want to help people and sometimes people take advantage of that. But I try not to care about it, I still want to be positive and trust people and humankind. What else prevents me in my career? Other people of course. I only remember a couple of men trying to make me change the career when I was younger but I do not think I actually cared about them: I just made jokes about the things they said. But I do not remember any men trying to make my life on IT harder recent years, all men have been very supportive. I think it must be that they can see I am strong and no use bullingJ Unfortunately I do remember several women doing that, when I was younger and still. And the way women do it is very bad. Why do women do that to each other?! They should be supporting other women. I think the reason is envy. Women envy other women. Why? If somebody has something good it is not away from you! Or another reason is that women do not have enough self-confidence and to hide that they try to make other women look bad. Just that you do not think I am talking about youJ Some of the most supportive people in my life are women (and I am not only talking about my amazing Mother :-)). When women are supportive they are very supportive: like mother lions.

I think what we all can do is to support other people. Listen to them and try to help in every way we can. And every now and then say something nice. People know they have skills and they are special but they forget that easily. Remind them about it. When they trust themselves they can do amazing things. And maybe they do not say NO to something very important just because you have been supportive… And remember to be a friend, a loyal friend. There can never be too many true friends. If you help others one day they will help you.

Follow

Get every new post delivered to your Inbox.