Cloud

O SpecGold OracleBusIntApps7 clr

 Gcloud

 

   Call us now 

  Manchester Office

  +44 (0) 8450 940 998

 

  

 

Welcome to the Beyond Blog

As you'd expect from the winners of the Specialized Partner of the Year: Business Analytics at the Oracle UKI Specialized Partner Awards 2014, Beyond work with leading edge BI Applications primarily within the UK Public Sector. We intend to share some of our ideas and discoveries via our blog and hopefully enrich the wider discussion surrounding Oracle Business Intelligence and driving improved insight for customers

  • Home
    Home This is where you can find all the blog posts throughout the site.
  • Categories
    Categories Displays a list of categories from this blog.
  • Tags
    Tags Displays a list of tags that have been used in the blog.
  • Bloggers
    Bloggers Search for your favorite blogger from this site.
  • Team Blogs
    Team Blogs Find your favorite team blogs here.
  • Login
    Login Login form

Oracle Synopsis was first announced at Openworld 2016; a mobile platform to allow data analysis on the go on a mobile device. Think of it a bit like Oracle Data Visualizer Desktop for your phone or tablet. Up until now though it's only been available for Android devices, however over the weekend the iOS version was released on the Apple Store.
So your first question might be Ok, so how much is it to licence?. Well - the answer to that would be £0; it's FREE! Yes Free! You don't need any back end OBIEE software or anything to run it either - it runs completely on your device. With that in mind I thought I should take a look.

The idea behind Synopsis is that you can take a spreadsheet from any existing App (email etc) and easily import that. So I took a spreadsheet of spend data from my local authority (.csv format), emailed it to myself and used the new option Import with Synopsis to load up the dataset.

Import with Synopsis

Synopsis then proceeds to import the data file. My file was about 7MB which is a reasonable size for a .csv, however it only took a minute or two to import.

Importing

Last modified on Continue reading
Tagged in: dv desktop OBIEE
in Business Intelligence 1631 0
0

Since Oracle 10g it has been possible to hide data from specific users or under a set of specified conditions. This can be entire rows using Virtual Private Database (VPD) policies or specific columns in a table. In this post I'm going to look at the latter and how that has been enhanced in Oracle 12c. First, let's take a pre-12c example. Suppose I have the following table of data.

Create Table emps As
  Select '12345' emp_no, 'Alice' emp_name, '01234 567890' tel_no From Dual Union All
  Select '67890' emp_no, 'Bob' emp_name, '07800 123456' tel_no From Dual Union All
  Select '09876' emp_no, 'Charlie' emp_name, '07989 989898' tel_no From Dual Union All
  Select '54321' emp_no, 'Dave' emp_name, '01987 654321' tel_no From Dual Union All
  Select '13579' emp_no, 'Erin' emp_name, '07909 101010' tel_no From Dual;

Now suppose we have a requirement to hide the telephone from all users as we deem that to be sensitive information. We could of course put whatever logic we wanted in our function, however let's just keep it simple for the purposes of demonstration.

Create or Replace Function check_auth(p_owner In Varchar2, p_name In Varchar2)
Return Varchar2
Is
Begin
  Return Null;
End;
/

Then we create a policy against our emps table as follows.

Begin
  Dbms_Rls.Add_Policy(
    object_schema=>'KEYMEJ',
    object_name=>'EMPS',
    policy_name=>'Emp_Auth',
    function_schema=>user,
    policy_function=>'check_auth',
    sec_relevant_cols=>'tel_no',
    sec_relevant_cols_opt=>Dbms_Rls.All_Rows
  );
End;
/

Now look what happens when I select from my table emps as user KEYMEJ.

EMP_N EMP_NAM TEL_NO
----- ------- ------
12345 Alice         
67890 Bob           
09876 Charlie       
54321 Dave          
13579 Erin      

I can also still insert data, I just can't read what I've inserted!

Insert Into emps(emp_no, emp_name, tel_no)
Values ('24680','Frank','07909 090909');

Select * From emps Where emp_no='24680';

1 row inserted.

EMP_N EMP_NAM TEL_NO
----- ------- ------
24680 Frank         

Now that is all well and good, however wouldn't it be useful for say a customer support representative to at least be able to verify the data? I.e. What if they could just see the last four characters of the phone number? Prior to 12c we would have done something like this:

Last modified on Continue reading
Tagged in: sql
in Technical 1569 0
0

I've been posting some bits recently on some of the new Oracle Database 12.2 features, particularly analytic views. However as 12.2 on-premise is not yet released you needed a paid Oracle Cloud account to be able to do anything.

Recently however, Oracle Live SQL has been updated to version 12.2.

Live SQL Version

This means with a free Oracle account you can begin using and learning some of the new cool 12.2 features.

Last modified on Continue reading
Tagged in: Analytic Views sql
in Technical 1342 0
0

Back onto analytical views, today I'm going to demo using calculated fact measures in analytic views as opposed to standard fact measures.
You may recall from my Introduction to Analytic Views post that we can create simple fact measures within the fact table itself as follows.

Create or Replace Analytic View emp_sales_av
Using emp_sales
Dimension By (
  date_dim
    Key date_wid References row_wid Hierarchies (calendar_hier Default),
  emp_dim
    Key emp_wid References row_wid Hierarchies (employee_hier Default)
)
Measures (
  amount Fact amount
); 

Useful, and with a bit of manipulation, subqueries etc. we can do quite a bit with that basic measure using plan SQL. There is however no need to go through all that effort. Analytic Views support Calculated Measures, and that makes them a whole lot more useful. Taking our model used previously we can quickly and easily extend it to include many more derived measures; and these functions extend out far further than the existing Analytic Functions available in database <lt; 12.2 (although you will note syntactical similarities). We can build measures based on the hierarchies with the AV, and even on levels within the hierarchy. So to add a simple measure of Sales Year to Date, it's as easy as:

amount_ytd As (Sum(amount) Over (Hierarchy calendar_hier Between Unbounded Preceding and Current Member Within Ancestor At Level cal_year))
Last modified on Continue reading
Tagged in: Analytic Views sql
in Technical 1419 0
0

It's always nice to see new database features, and I especially like to see features which implement concepts that are commonly coded at the application level. I've posted a number of blogs recently on the new Analytic Views functionality in 12.2, however today I'm going to look at a feature introduced a little earlier in 12c (12.1) - Temporal Validity.

It's probably best explained with an example, so let's take a look at some sample (simplified) date-tracked data such as employees in a Human Resources system.

Person_IdFull_NameDepartmentStatusEffective_From_DateEffective_To_Date
1 Alice Jones Finance Active Employee 01-Jan-2016 17-Aug-2016
1 Alice Smith Finance Active Employee 18-Aug-2016 31-Oct-2016
1 Alice Smith Human Resources Active Employee 01-Nov-2016 18-Nov-2016
1 Alice Smith Human Resources Inactive Employee 19-Nov-2016 31-Dec-4712

For anyone not familiar with what the above is representing, we see that up until 17-Aug-2016 we have an employee named Alice Jones working in the Finance department. From 18-Aug-2016 she has changed her name to Alice Smith, still working in the Finance department. Then from 01-Nov-2016 she begins working in Human Resources up until 18-Nov-2016 when she left the company. This representation of data allows us to query historic data and see what the status of an employee was at any given point in time. First let's create a sample data model to represent that.

Last modified on Continue reading
Tagged in: HRMS sql tips
in Technical 1613 0
0