Εδώ θα προσπαθήσω να αναλύσω κάποια βασικά βήματα...μίας επιτυχήμενης λύσης.
1.Το προϊόν χωρίζεται σε 2 κατηγορίες.Enterprise έκδοση και Standar edition.
Εκτός από τα λιγότερα services που παρέχει η Oracle ,το πιο σημαντικό είναι η βάση που έχει στη διάθεση του να διαχειριστεί ο Developer.H standar έκδοση , (η βάση) δεν υποστηρίζει partitions,materialized views.Δύο πραγματα πάρα πολύ σημαντικά για τη δημιουργία ενός σωστού και γρήγορου star σχήματος.Επίσης στην απλή έκδοση δίνεται από την Oracle ιδιαίτερα μικρός αποθηκευτικός χώρος, ο οποίος κρίνεται ανεπαρκής λόγω κυρίως των aggregate πινάκων -αναγκαία λύση για θέματα performance-
2.Πρέπει να γίνει σωστή ανάλυση των ascii αρχείων που φορτώνονται στη βάση και γενικά του όλου έργου.
Πρέπει να απαντηθούν τα εξής ερωτήματα,
Κάθε πότε γίνεται η ανανέωση , Τι είδους δεδομένα έχει (για ποιες χρονικές περιόδους αναφέρονται) , πόσο χρόνο έχουμε στη διάθεσή μας ,Πως θα διαμορφώσουμε το σχήμα , πόσους aggregates πίνακες θα φτιαχτούν , Πόσοι indexes θα δημιουργηθούν, Να κρατάμε ιστορικότητα των δεδομένων ...και άλλα...
3.Να φτιαχτεί σωστά το μοντέλο στο Administrator κομμάτι.Σωστά δικαίωματα χρηστών, σωστό logging , ικανές λογικές διαστάσεις και σωστά data sourses .
4.To πιο δύσκολο,γιατί εμπλέκονται πολλά άτομα(πελάτης - χρήστες που θα το χρησιμοποιούν)είναι το κομμάτι το reports.Πρέπει να συμφωνηθούν μέχρι την τελευταία λεπτομέρεια γιατί είναι η ανατροφοδότητση γία όλα τα προηγούμενα βήματα.
Είναι και άλλα πολλά...αλλά έγινε μία μικρή εισαγωγή.
Oracle Business Intelligence Enterprise Edition, OBIEE, Oracle BI, OBI EE, BI, best practices, examples .
Παρασκευή 26 Ιουνίου 2009
Τετάρτη 17 Ιουνίου 2009
Ενεργοίηση του Scheduler
Εκτέλεση των script, ωστε να ενεργοποιήσω και τον scheduler
---->
C:\oracle\bise1\bi\server\Schema-----=SAJOBS.Oracle.sql
και
C:\oracle\bise1\bi\server\Schema------=SAJOBS.AddIndices.Oracle.sql
Μετά πάμε στον scheduler και προσθέτουμε user/password της βάσης...και είμαστε οκ...
Αν υπάρχει και smtp server τον τροποποιούμε κατάλληλα...
Αν έχουμε exchange server,βάζουμε τα credentials που θα μας δώσει ο υπεύθυνος...
Αλλιώς αν έχουμε εταιρικό domain βάση otenet,κτλκλκ...απάντηση σε pm....
---->
C:\oracle\bise1\bi\server\Schema-----=SAJOBS.Oracle.sql
και
C:\oracle\bise1\bi\server\Schema------=SAJOBS.AddIndices.Oracle.sql
Μετά πάμε στον scheduler και προσθέτουμε user/password της βάσης...και είμαστε οκ...
Αν υπάρχει και smtp server τον τροποποιούμε κατάλληλα...
Αν έχουμε exchange server,βάζουμε τα credentials που θα μας δώσει ο υπεύθυνος...
Αλλιώς αν έχουμε εταιρικό domain βάση otenet,κτλκλκ...απάντηση σε pm....
Δημιουργία windows service για τον oc4j
Καλό είναι να κατεβάσουμε κάποιο τελευταιο JDK της Sun.
Κατεβάζουμε από το link http://forge.objectweb.org/project/showfiles.php?group_id=137 και το αποθηκεύουμε στο σκληρό δίσκο .
Από τη κονσόλα πληκτρολογούμε το εξής :
javaservice -install "Oracle BI EE OC4J" "C:\Sun\SDK\jdk\jre\bin\client\jvm.dll" - XX:MaxPermSize=128m "-Djava.class.path=C:\OracleBI\oc4j_bi\j2ee\home\oc4j.jar" -start oracle.oc4j.loader.boot.BootStrap -description "Oracle BI EE OC4J Service"
, όπου το path "C:\Sun\SDK\jdk\jre\bin\client\jvm.dll" είναι το ανάλογο στο σύστημα μας και ομοίως για το path : C:\OracleBI\oc4j_bi\j2ee\home\oc4j.jar
Και αν πάμε στα services των windows θα δούμε πως δημιουργήθηκε.
Κατεβάζουμε από το link http://forge.objectweb.org/project/showfiles.php?group_id=137 και το αποθηκεύουμε στο σκληρό δίσκο .
Από τη κονσόλα πληκτρολογούμε το εξής :
javaservice -install "Oracle BI EE OC4J" "C:\Sun\SDK\jdk\jre\bin\client\jvm.dll" - XX:MaxPermSize=128m "-Djava.class.path=C:\OracleBI\oc4j_bi\j2ee\home\oc4j.jar" -start oracle.oc4j.loader.boot.BootStrap -description "Oracle BI EE OC4J Service"
, όπου το path "C:\Sun\SDK\jdk\jre\bin\client\jvm.dll" είναι το ανάλογο στο σύστημα μας και ομοίως για το path : C:\OracleBI\oc4j_bi\j2ee\home\oc4j.jar
Και αν πάμε στα services των windows θα δούμε πως δημιουργήθηκε.
Pivot Functions
Ιδιαίτερη προσοχή πρέπει να δοθεί στο είδος του browser που χρησιμοποιούμε όταν θελήσουμε να δουλέψουμε με τα διάφορα functions που παρέχει το pivot table.
O firefox δεν τις υποστηρίζει σε αντίθεση με τον Internet Eplorer.
O firefox δεν τις υποστηρίζει σε αντίθεση με τον Internet Eplorer.
Google Map σε Oracle Bi Suite...
Υπάρχει ένας εύκολος και γρήγορος τρόπος για να βλέπει "οπτικά" ο πελάτης τα καταστήματά του - γραφεία σε χάρτη . Χρειαζόμαστε :
1.Κλειδί για το google map ,το οποιο είναι δωρεάν και το παίρνουμε από τοhttp://code.google.com/apis/maps/signup.html , το μόνο που χρειάζεται είναι το όνομα του server που τρέχει το Bi. Οταν γράψετε το όνομα του server προτιμήστε να δώσετε το "αρχικό" όνομα και όχι την ip ή την πορτα που τρέχει ή ".....¨9704/analytics../".
Τώρα είτε θα βάλουμε "καρφωτά" κάποιες διευθύνσεις είτε (κάλυτερα...) θα τις πάρουμε από τον dimension πίνακα -Καταστήματα- .Εγω προτιμώ το δεύτερο τρόπο.
2.Πάμε στο answers και ειδικότερα στο narrative view .
3.Βάζουμε τον παρακάτω κώδικα......
PREFIX
<script src="http://maps.google.com/maps?file=api&v=2&oe=utf8&key=***my key for my server***"
type="text/javascript">
</script>
<script type="text/javascript">
var map = null;
var geocoder = null;
var marker = null;
function initialize() {
if (GBrowserIsCompatible()) {
// Create the map
map = new GMap2(document.getElementById("map_canvas"));
// Set the center without markers; 13 is the zoom level
map.setCenter(new GLatLng(37.4419, -122.1419), 11);
// Add the compass and zoom control
map.addControl(new GLargeMapControl());
// Add the Map type control
map.addControl(new GMapTypeControl());
// Get a new geocoder (needed to convert adresses to coordinates
geocoder = new GClientGeocoder();
// Get the ICON for the marker
icon0 = new GIcon();
icon0.image = "http://www.google.com/mapfiles/marker.png";
icon0.shadow = "http://www.google.com/mapfiles/shadow50.png";
icon0.iconSize = new GSize(20, 34);
icon0.shadowSize = new GSize(37, 34);
icon0.iconAnchor = new GPoint(9, 34);
icon0.infoWindowAnchor = new GPoint(9, 2);
icon0.infoShadowAnchor = new GPoint(18, 25);
// Get the Adresses
GetMapAdress ()
}
}
function showAddress(address,comment) {
// Coverts adresses to coordinates and set the marker on the chart
if (geocoder)
{
geocoder.getLatLng
(
address,
function(point)
{
if (!point)
{
alert(address + " not found");
}
else
{
map.setCenter(point, 13);
var marker = createMarker(point,icon0,'>center>>a href= "'+comment+'" target="_blank">Informations>/a>>/center>');
map.addOverlay(marker);
}
}
);
}
}
function createMarker(point, icon, popuphtml)
{
var popuphtml = ">div id=\"popup\">" + popuphtml + ">\/div>";
var marker = new GMarker(point, icon);
GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(popuphtml);});
return marker;
}
function newwindow()
{
window.open('comment','jav','width=400,height=300,resizable=yes');
}
function GetMapAdress ()
{
NARRATIVE
showAddress('@2', '@3');
POSTFIX
}
</script>
<body onload="initialize();return false" onunload="GUnload()">
<div id="map_canvas" style="width: 600px; height: 400px">>/div>
</body>
</html>
/////////////////////////////////////////////////////////////////////////
Ουσιαστικά παίρνουμε απο "showAddress('@2', '@3');" δυναμικά την διέυθυνση απο την 2 κολώνα και το link που θέλουμε να αντιστοιχίσουμε από την 3 .
Ανάλογα ποιον πίνακα έχετε φέρει και το σε ποιες κολώνες βρίσκονται οι πληροφορίες που θέλετε , τροποποιείτε την εντολή .
4.Πάντα σε κάτι καλό , υπάρχει και κάτι κακό.Στο firefox παίζει μία χαρά ενώ στο Explorer...μόνο στο preview(από το Answer).Ουτε στο metalink3 , forum της Oracle έχει δοθεί
κάποια λογική εξήγηση.
1.Κλειδί για το google map ,το οποιο είναι δωρεάν και το παίρνουμε από τοhttp://code.google.com/apis/maps/signup.html , το μόνο που χρειάζεται είναι το όνομα του server που τρέχει το Bi. Οταν γράψετε το όνομα του server προτιμήστε να δώσετε το "αρχικό" όνομα και όχι την ip ή την πορτα που τρέχει ή ".....¨9704/analytics../".
Τώρα είτε θα βάλουμε "καρφωτά" κάποιες διευθύνσεις είτε (κάλυτερα...) θα τις πάρουμε από τον dimension πίνακα -Καταστήματα- .Εγω προτιμώ το δεύτερο τρόπο.
2.Πάμε στο answers και ειδικότερα στο narrative view .
3.Βάζουμε τον παρακάτω κώδικα......
PREFIX
type="text/javascript">
</script>
<script type="text/javascript">
var map = null;
var geocoder = null;
var marker = null;
function initialize() {
if (GBrowserIsCompatible()) {
// Create the map
map = new GMap2(document.getElementById("map_canvas"));
// Set the center without markers; 13 is the zoom level
map.setCenter(new GLatLng(37.4419, -122.1419), 11);
// Add the compass and zoom control
map.addControl(new GLargeMapControl());
// Add the Map type control
map.addControl(new GMapTypeControl());
// Get a new geocoder (needed to convert adresses to coordinates
geocoder = new GClientGeocoder();
// Get the ICON for the marker
icon0 = new GIcon();
icon0.image = "http://www.google.com/mapfiles/marker.png";
icon0.shadow = "http://www.google.com/mapfiles/shadow50.png";
icon0.iconSize = new GSize(20, 34);
icon0.shadowSize = new GSize(37, 34);
icon0.iconAnchor = new GPoint(9, 34);
icon0.infoWindowAnchor = new GPoint(9, 2);
icon0.infoShadowAnchor = new GPoint(18, 25);
// Get the Adresses
GetMapAdress ()
}
}
function showAddress(address,comment) {
// Coverts adresses to coordinates and set the marker on the chart
if (geocoder)
{
geocoder.getLatLng
(
address,
function(point)
{
if (!point)
{
alert(address + " not found");
}
else
{
map.setCenter(point, 13);
var marker = createMarker(point,icon0,'>center>>a href= "'+comment+'" target="_blank">Informations>/a>>/center>');
map.addOverlay(marker);
}
}
);
}
}
function createMarker(point, icon, popuphtml)
{
var popuphtml = ">div id=\"popup\">" + popuphtml + ">\/div>";
var marker = new GMarker(point, icon);
GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(popuphtml);});
return marker;
}
function newwindow()
{
window.open('comment','jav','width=400,height=300,resizable=yes');
}
function GetMapAdress ()
{
NARRATIVE
showAddress('@2', '@3');
POSTFIX
</script>
<body onload="initialize();return false" onunload="GUnload()">
<div id="map_canvas" style="width: 600px; height: 400px">>/div>
</body>
</html>
/////////////////////////////////////////////////////////////////////////
Ουσιαστικά παίρνουμε απο "showAddress('@2', '@3');" δυναμικά την διέυθυνση απο την 2 κολώνα και το link που θέλουμε να αντιστοιχίσουμε από την 3 .
Ανάλογα ποιον πίνακα έχετε φέρει και το σε ποιες κολώνες βρίσκονται οι πληροφορίες που θέλετε , τροποποιείτε την εντολή .
4.Πάντα σε κάτι καλό , υπάρχει και κάτι κακό.Στο firefox παίζει μία χαρά ενώ στο Explorer...μόνο στο preview(από το Answer).Ουτε στο metalink3 , forum της Oracle έχει δοθεί
κάποια λογική εξήγηση.
Τετάρτη 3 Ιουνίου 2009
Χρήσιμα Links....Πολύτιμη βοήθεια!!!
http://obiee101.blogspot.com/
http://oraclebizint.wordpress.com/
http://siebel-essentials.blogspot.com/
http://obieeblog.wordpress.com/
http://bidwcz.blogspot.com/
http://obieediag.blogspot.com/
http://tkyte.blogspot.com/
http://hekatonkheires.blogspot.com/
http://108obiee.blogspot.com/
http://oraclebizint.wordpress.com/
http://siebel-essentials.blogspot.com/
http://obieeblog.wordpress.com/
http://bidwcz.blogspot.com/
http://obieediag.blogspot.com/
http://tkyte.blogspot.com/
http://hekatonkheires.blogspot.com/
http://108obiee.blogspot.com/
GreekOracleBI
Μια νέα προσπάθεια,για BI εργαλεία της Oracle και όχι μόνο....
Εγγραφή σε:
Αναρτήσεις (Atom)