Data Warehouse Script Generator Doel



Vergelijkbare documenten
Na bestudering van dit hoofdstuk, moet je tot het volgende in staat zijn:

Databases - Inleiding

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

En hoe gaan ze dit allemaal terugvinden?

DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: Groep TDI 1

Beheer van databanken

Handleiding Formulieren in TYPO3 Versie 1.2, 18 juli 2008

Les 15 : updaten van gegevens in de database (deel2).

Koppeling met een database

Sparse columns in SQL server 2008

Elfde-Liniestraat Hasselt Schooljaar TINFO POKER GAME Oracle Scripts

Query SQL Boekje. Fredrik Hamer

Een website maken met databasetoegang.

Open SQL Server Management Studio en log in als Administator. Je ziet dan wat je in figuur 2.1 ziet.

Informatie & Databases

Gebruikers Handleiding

SQL SERVER Werking van Database Snapshots

Technische nota AbiFire Rapporten maken via ODBC

Handleiding Reinder.NET.Tasks.SQL versie 2

7. Het selecteren van gegevens

Formulieren maken met Dreamweaver CS 4

[TOETS SQL INLEIDING]

6. Het maken van een database

Selenium IDE Webdriver. Introductie

Technische nota AbiFire5 Rapporten maken via ODBC

Project Woningcorporaties Open Source Initiatief Gebruikers handleiding: Verkoop

Kies File>New>Blank Page>PHP. Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site

Handleiding Facultaire website Expression Engine

2 Specificatie In deze tabel staat voor welk crebotraject de leereenheid is gemaakt Crebotraject code: 95311

Gebruikers handleiding. Lizard Configuration Manager ToolTip. Installatie. Instellen. Initieel instellen

Automatisering voor Financiële Dienstverleners. Werken met Queries en Merge Documenten. For more information visit our website at

Macro s. 4.2 Een macro maken

Naam project Lost And Found Animals Lokaal gehost Percentage van het totaal geleverde werk 1 Cindy Jansen 50% 2 Eline Steyvers 50%

IBIS-TRAD Handleiding installatie IBIS-TRAD databases (MS-SQL)

AutoArchive. Via File -> Archive kun je voortwee2 manieren archiveren kiezen.

Release Notes. Afdrukdatum: 2011/12/20

Les 11 : Basis SQL (deel2).

Vragen hoofdstuk 1: Resultaat

Deel 2: Endnote bibliografische software gebruiken als databasemanager en editor

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

Thinking of development

Formulieren maken met Dreamweaver CS 4/CS 5

DataFlex 19.0 SQL Server

SQL & Relationele datamodellen in interactieve media

ODS: Open Directory service. Wat is ODS?

Zelftest DB2 for z/os basiscursus

Les 2 Eenvoudige queries

Excel Controller. Handleiding Excel Controller Wizard

Inhoudsopgave. versie 0.8

Secure Application Roles

SQL / Systeemanalyse

Inhoudsopgave. Theorie Praktijk Gegevens uit Database halen DML commando s... 14

Maximo Tips and Tricks

MA!N Rapportages en Analyses

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

Zo kan je linken maken tussen je verschillende groepen van gegevens.

SQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC

Handleiding - Aanmaken van SQL server gebruiker

INLEIDING... 1 AFSPRAKEN... 2 INHOUDSOPGAVE...

Installeer Apache2: Landstede februari 2009 versie 3 1 Bertil Hoentjen

Handleiding: Whitelabel Customersite

Wat leuk dat je wilt werken met Glogster ( Maar wat is het?

PHP en een MySQL database.

17. Scalaire functies

Bibliotheek in ProcessMaker

HANDLEIDING KLANKKLEURLIJSTEN MAKEN OP BLOON.NL

In dit document wordt uitleg gegeven over de inrichting van formulieren binnen Trajectplanner voor

Specificaties Front End voor de ONBETWIST Database

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat:

Installatie van sqlserver

Basis handleiding CMS

Landelijk Indicatie Protocol (LIP)

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64

ISO Query By Example

Van CaseTalk naar een database in SQLite studio

Databases en SQL Foundation (DBSQLF.NL)

Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel:

Handleiding voor het installeren van VBA scripts in Outlook

Datamodelleren en databases 2011

Website van het openbaar ministerie Korte gebruikershandleiding voor Content Managers

Technisch Ontwerp W e b s i t e W O S I

Copernica Koppeling Umbraco

4orange Connect. 4orange, Hogehilweg CD Amsterdam Zuidoost

-1- credit: een credit geeft recht op het maken van één contract. Door betaling met ideal kunnen credits worden aangeschaft.

Xampp Web Development omgeving opzetten onder Windows.

opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren

Met onderstaand stappenplan kunt u in korte tijd kennismaken met IC er en uw eerste nieuwsbrief versturen.

Na bestudering van dit hoofdstuk moet je tot het onderstaande in staat zijn:

Katholieke Hogeschool Kempen

SQL & Datamodelleren

2 Specificatie In deze tabel staat voor welk crebotraject de leereenheid is gemaakt Crebotraject code: 95311

B3Partners. Handleiding services, bronnen, lagen en stijlen Geoserver. Bijgewerkt: B3Partners BV Zonnebaan 12c 3542 EC Utrecht

SQL SERVER 2008 WERKING VAN DE SQL COMMAND LINE TOOL

eservice Gebruikershandleiding eservice Gebruikershandleiding v1.0 Pagina 1

Werkinstructie. Technisch Beheer. uitvoeren MAP scan. voor. Datum: 15 oktober Versie: 1.0

Rapportage voor Unit4 Multivers. Eindhoven, 22 juni 2017

Quick Guide VivianCMS

INSTALLATIE Certificering: alle 4 de opgaven.

Mijn eerste ADO.NET applicatie

Transcriptie:

Data Warehouse Script Generator Doel Op basis van een aantal standaard sql scripts ( create table, create view ) een nieuwe sql script genereren welke alle objecten ( tables & views ) kan aanmaken in een data warehouse.

Dataschema

Uitleg bij het dataschema Een organisatie heeft meerdere companies. In de source database zijn de tabellen gekwalificeerd met een table owner welke de company voorstelt. Bvb. Een organisatie DEVIMO Consult heeft 46 companies onder zich. In de productie database zijn een aantal tabellen gemeenschappelijk voor alle companies, maar zijn heel wat tabellen gescheiden per company. Er is bvb een tabel land welke alle landen bevat, dit is gemeenschappelijk voor alle bedrijven. In SF is deze tabel te benaderen via comm.pays ( table owner is hier comm ) De tabel klanten, echter, is per bedrijf te benaderen en krijgt dus een owner naargelang het bedrijf. Er bestaan dus in de productie database 46 tabellen met klantgegevens. Bvb foko.cli, fowe.cli, devc.cli,. In de data warehouse echter, willen we deze tabellen samenvoegen tot één tabel dbo.dw_customer welke een view is op de productie db en welke alle klanten bevat van alle companies. De view moet dus zodanig gebouwd zijn dat er een Union ontstaat van alle tabellen cli : Create view dbo.dw_customer ( id_customer, id_company, customer_name ) As Select id_cli, foko, name from foko.cli Union all Select id_cli, fowe, name from fowe.cli Union all Select id_cli, devc, name from devc.cli

Voor elk object ( een view of een table) zal de dwh-ontwerper een basisscript maken op één fictieve company SOC_ De basisscript zal tags bevatten welke dan tijdens het genereren van de globale script vervangen dienen te worden door de echte company owner en ook tags welke aangeven dat er een UNION dient te gebeuren op alle companies welke we in de dwh willen stoppen. Deze basisscript zal de ontwerper opslaan op schijf. Via de web applicatie moet dus kunnen : - De organisatie toevoegen wijzigen - verwijderen - De companies per organisatie toevoegen wijzigen verwijderen - De standaard objecten, met hun filename, toevoegen wijzigen verwijderen - Een of meer dwh s toevoegen wijzigen verwijderen - Per dwh : o De companies selecteren welke we in de dwh willen opnemen o De objecten selecteren welke we in de dwh willen opnemen voor de verschillende companies - De uiteindelijke script genereren in een file : in eerste release zullen we de script dan manueel uitvoeren via SQL Management studio ( of php admin query ). We zullen dus niet connecteren aan de doel-database om de script automatisch uit te voeren - De uiteindelijke script moet kunnen her-uitgevoerd worden, dwz dat de view of de table eerst zal moeten gedropt worden.

Home Page

( alternatief homepage : )

Organisations Overzicht met - Organisation.name - Organisation.script_source_path Toevoegen, bekijken, bewerken : Formulier met - Organisation.name - Organisation.script_source_path : een verkenner zou handig zijn om de directory aan te wijzen Verwijderen : Na bevestiging door de gebruiker : delete cascade ( organisation, companies, dwh, dwh_object, dwh_company )

Companies Overzicht met : - Organisation.name - company.name - company.table_owner Toevoegen, bekijken, bewerken : Formulier met - drop down lijst voor selectie van de Organisation.name - company.name - company.table_owner Verwijderen : Na bevestiging door de gebruiker : delete cascade ( company, dwh_company )

Objects Overzicht met : - object.name - object.script_path - object.script_filename Toevoegen, bekijken, bewerken : Formulier met - object.name - object.script_path - object.script_filename - het zou handig zijn om hier een verkenner te kunnen gebruiker om de file op te halen Verwijderen : Na bevestiging door de gebruiker : delete cascade ( object, dwh_object )

DWH Overzicht met : - Organisation.name - Dwh.name - Dwh.target_db_name

Toevoegen, bekijken, bewerken : Formulier met - Drop down lijst om de organisation_name te kiezen - Dwh.name - Dwh.target_db_name - Dwh.target_db_server - Dwh.Target_server_type ( 1 = MS SQL Server, 2 = SyBase, 3 = MySQL ) - Dwh.login - Dwh.password - Dwh.script_destination_path - Dwh.script_detination_filename - Dwh.default_source_db_name - Dwh.default_source_db_server Vervolgens een box met een 2 e formulier om de companies aan te duiden welke in de dwh moeten opgenomen worden dit gaat in de table dwh_company ( cfr accordeon boxes die je kan in/uitklappen ) - Hier worden alle companies van de organisation getoond, met een checkbox of ze al dan niet in de dwh moeten opgenomen worden. De gebruiker kan vervolgens aan of uitvinken Vervolgens een box met een 3 e formulier om de objecten aan te duiden welke in de dwh moeten opgenomen worden dit gaat in de table dwh_object ( cfr accordeon boxes die je kan in/uitklappen ) - Hier worden alle objecten getoond, met een checkbox of ze al dan niet in de dwh moeten opgenomen worden. De gebruiker kan vervolgens aan of uitvinken - Per object wordt ook de source db en source server opgegeven : deze 2 velden zijn default ingevuld met de waarden uit dwh.default_source_db_name en dwh.default_source_db_server Knop Opslaan Knop Opslaan en script genereren zie verder Verwijderen : Na bevestiging door de gebruiker : delete cascade ( dwh, dwh_object, dwh_company )

Genereren van de script Een source script voor één object ziet er als volgt uit : -- Object: View [dbo].[dw_customer] use %target_db% go SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO drop view dbo.dw_customer go create view dbo.dw_customer ( id_customer, customer_name, id_country, customer_city, customer, id_company, customer_litigation_class, follow_up_profile, gl_account, payment_condition, credit_status, credit_limit, name_index1, name_index2 ) as -- %START_UNION% select cli.id_cli, rtrim(rela.rel_nom1)+' '+ isnull ( rela.prenom, '' ), rela.id_pays, rtrim(post.id_pays) + rtrim(post.id_postal) + ' ' + post.lib_commune, rtrim(rela.rel_nom1)+' '+ isnull ( rela.prenom, '' ) + ' - ' + isnull ( rtrim(post.id_pays) + rtrim(post.id_postal) + ' ' + post.lib_commune, '' ) + ' (' + rtrim(cli.id_cli) + ')', 'soc_', isnull(clas_cli.id_clas, 'NC' ), cli.id_t_suivi, str_cptpara.id_cgen, id_cpmt_credit, choix_lib.libelle, limite_credit, substring ( rela.rel_nom1, 1, 1 ), substring ( rela.rel_nom1, 1, 2 ) from [%source_server%].[%source_db%].soc_.cli cli rela.id_var = post.id_variante left outer join [%source_server%].[%source_db%].comm.rela rela on cli.id_rela = rela.id_rela left outer join [%source_server%].[%source_db%].comm.post post on rela.id_pays = post.id_pays and rela.id_post = post.id_postal and left outer join [%source_server%].[%source_db%].soc_.clas_cli clas_cli on clas_cli.id_tclas = 'CONT' and cli.id_cli = clas_cli.id_cli left outer join [%source_server%].[%source_db%].soc_.str_cptpara str_cptpara on cli.id_str_cptpara = str_cptpara.id_str_cptpara left outer join [%source_server%].[%source_db%].comm.choix_lib choix_lib on choix_lib.id_choix = 'T_SOLVAB' and choix_lib.id_lang = (SELECT rela.id_lang FROM [%source_server%].[%source_db%].syst.soc AS soc INNER JOIN [%source_server%].[%source_db%].comm.rela AS rela ON soc.id_rela = rela.id_rela WHERE (soc.id_rela = 'soc_')) and cli.t_solvabilite = choix_lib.valeur -- %END_UNION% GO

Nadat de volgende vervangingen gebeurd zijn : vervang soc_ door target company owner vervang %target_db% door target_db_name vervang %source_db% door source_db_name vervang %source_server% door source_db_server herhaal de statements tussen %START_UNION% and %END_UNION% voor elke company met een UNION ALL, uitgezonderd voor de eerste company create view as select from where union all select from where union all select from where Ziet de script er als volgt uit : In dit voorbeeld : enkel één company met als owner devc

-- Object: View [dbo].[dw_customer] use cds2000_v2_devimo go SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO drop view dbo.dw_customer go create view dbo.dw_customer ( id_customer, customer_name, id_country, customer_city, customer, id_company, customer_litigation_class, follow_up_profile, gl_account, payment_condition, credit_status, credit_limit, name_index1, name_index2 ) as -- %START_UNION% select cli.id_cli, rtrim(rela.rel_nom1)+' '+ isnull ( rela.prenom, '' ), rela.id_pays, rtrim(post.id_pays) + rtrim(post.id_postal) + ' ' + post.lib_commune, rtrim(rela.rel_nom1)+' '+ isnull ( rela.prenom, '' ) + ' - ' + isnull ( rtrim(post.id_pays) + rtrim(post.id_postal) + ' ' + post.lib_commune, '' ) + ' (' + rtrim(cli.id_cli) + ')', 'devc', isnull(clas_cli.id_clas, 'NC' ), cli.id_t_suivi, str_cptpara.id_cgen, id_cpmt_credit, choix_lib.libelle, limite_credit, substring ( rela.rel_nom1, 1, 1 ), substring ( rela.rel_nom1, 1, 2 ) from [win7-franky\sqlexpress].[cds2000_v2_devimo].devc.cli cli left outer join [win7-franky\sqlexpress].[cds2000_v2_devimo].comm.rela rela on cli.id_rela = rela.id_rela left outer join [win7-franky\sqlexpress].[cds2000_v2_devimo].comm.post post on rela.id_pays = post.id_pays and rela.id_post = post.id_postal and rela.id_var = post.id_variante left outer join [win7- franky\sqlexpress].[cds2000_v2_devimo].devc.clas_cli clas_cli on clas_cli.id_tclas = 'CONT' and cli.id_cli = clas_cli.id_cli left outer join [win7- franky\sqlexpress].[cds2000_v2_devimo].devc.str_cptpara str_cptpara on cli.id_str_cptpara = str_cptpara.id_str_cptpara left outer join [win7- franky\sqlexpress].[cds2000_v2_devimo].comm.choix_lib choix_lib on choix_lib.id_choix = 'T_SOLVAB' and choix_lib.id_lang = (SELECT rela.id_lang FROM [win7-franky\sqlexpress].[cds2000_v2_devimo].syst.soc AS soc WHERE INNER JOIN [win7-franky\sqlexpress].[cds2000_v2_devimo].comm.rela AS rela ON soc.id_rela = rela.id_rela (soc.id_rela = 'devc')) and cli.t_solvabilite = choix_lib.valeur -- %END_UNION% GO