Apres Oracle, Sybase et DB2, on continu notre exploration des SGBD les plus utilisés dans les SI des grosses entreprises, on s’intéressera aujourd’hui a TERADATA, qui est très connu dans le monde de la BI et du datawarehouse. Pour plus de théorie sur TERADATA et son histoire.
Teradata ne fournit pas de version d’évaluation comme c’est le cas pour Oracle, Sybase et DB2, vous devrez vous contentez d’une machine virtuelle (Linux Suse 64 bits) sur la quelle une version d’évaluation de Teradata est déjà preinstallée.
Commencer par récupérer la machine ici (Je vous conseille la machine virtuelle 4Go si vous n’avez pas 16Go de RAM :)) : TDE 14.00.00.01 for VMware (4 GB). Une fois télécharger dezipper la et installer VMWare Player.
Pour VMWare Player, l’install est simple :
tar -xvf VMware-Player-5.0.1-894247.x86_64.bundle.tar chmod + x VMware-Player-5.0.1-894247.x86_64.bundle sudo sh VMware-Player-5.0.1-894247.x86_64.bundle
Une fois que s’est fait :
Lancer les commandes suivantes :
ln -s /etc/init.d/vmware /etc/rc.d/init.d vmware-modconfig --console --install-all
Modifier la machine virtuelle si vous le souhaitez (Moi j’ai mis 2GO de RAM, et j’ai mis le réseau en mode bridge, comme ça je profite du DHCP de ma box ), puis lancer la. Le user root a pour mot de passe root. Comme vous allez le constater c’est machine Linux Suse Entreprise 10, 64 bits avec un kernel 2.6.16 :
TDExpress14.0_Sles10:/home # ll total 4 drwxr-xr-x 8 tdatuser tdatudf 4096 2011-08-22 23:03 tdatuser TDExpress14.0_Sles10:/home # cat /etc/issue Welcome to SUSE Linux Enterprise Server 10 SP3 (x86_64) - Kernel \r (\l). TDExpress14.0_Sles10:/home # uname -r 2.6.16.60-0.74.7.3086.1.PTF.657457.TDC.0-smp TDExpress14.0_Sles10:/home # df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 8.7G 6.8G 1.6G 82% / udev 1005M 128K 1004M 1% /dev /dev/sda3 8.7G 227M 8.0G 3% /data /dev/sda5 2.0G 332M 1.6G 18% /var /dev/sda7 36G 2.9G 31G 9% /var/opt/teradata TDExpress14.0_Sles10:/home # free -m total used free shared buffers cached Mem: 2008 1143 864 0 16 694 -/+ buffers/cache: 432 1575 Swap: 15688 0 15688 TDExpress14.0_Sles10:/home #
Pour configurer le dns, éditer /etc/resolv.conf et ajouter votre serveur DNS, moi ça ressemble a ça :
nameserver 192.168.1.1
Comme c’est une machine Suse, vous pouvez installer des packages en les récupérant ici (par exemple) et en cherchant le paquet qui vous intéresse. Une fois récupérer vous pouvez l’installer par la commande :
rpm -i package_name
L’administrateur de la base de données est le user dbc et son mot de passe est dbc.
Pour connaitre l’état de la base :
TDExpress14.0_Sles10:~ # pdestate -a PDE state is RUN/STARTED. DBS state is 5: Logons are enabled - The system is quiescent
Pour les interactions avec la base en mode commande y a l’utilitaire : bteq (Basic TEradata Query). Un premier login peut être fait avec le user : 127.0.0.1/dbc et le password btc (faut toujours taper .logon avant de taper le nom du user) :
TDExpress14.0_Sles10:~/Desktop # bteq Teradata BTEQ 14.00.00.02 for LINUX. Copyright 1984-2011, Teradata Corporation. ALL RIGHTS RESERVED. Enter your logon or BTEQ command: .logon 127.0.0.1/dbc .logon 127.0.0.1/dbc Password: *** Logon successfully completed. *** Teradata Database Release is 14.00.00.01 *** Teradata Database Version is 14.00.00.01 *** Transaction Semantics are BTET. *** Session Character Set Name is 'ASCII'. *** Total elapsed time was 1 second. BTEQ -- Enter your SQL request or BTEQ command:
Si vous essayez de vous authentifier avec le user dbc, vous aurez droit a ça :
.LOGON dbc .LOGON dbc Password: *** CLI error: MTDP: EM_NOHOST(224): name not in HOSTS file or names database. *** Return code from CLI is: 224 *** Error: Logon failed!
Pour ça il faut modifier le fichier /etc/hosts et autoriser les machines a partir des quelles vous voulez vous connecter, dans mon cas j’ajoute les lignes suivantes (changer les adresses IP par vos adresses, si vous n’êtes intéressé que par un accès local, laisser uniquement l’adresse du localhost) :
# Added for TERADATA 192.168.1.95 dbc dbccop1 192.168.1.97 dbc dbccop1 127.0.0.1 dbc dbccop1
A ce stade vous pouvez donc passer quelques requêtes :
- Lister les bases :
SELECT * FROM DBC.Databases; SELECT * FROM DBC.Databases; *** Query completed. 30 rows found. 16 columns returned. *** Total elapsed time was 1 second. DatabaseName CreatorName OwnerName ------------------------------ ------------------------------ ------------- viewpoint DBC DBC SQLJ DBC DBC PUBLIC DBC DBC financial DBC Samples twm_results DBC Samples tduser DBC DBC TDPUSER DBC DBC Crashdumps DBC DBC tpch DBC Samples console DBC DBC tdwm DBC DBC EXTUSER EXTUSER EXTUSER SYSLIB DBC DBC All DBC DBC twm_source DBC Samples DBC DBC DBC retail DBC Samples twm_md DBC Samples manufacturing DBC Samples SystemFe DBC DBC SYSUDTLIB DBC DBC Sys_Calendar DBC DBC dbcmngr DBC DBC Default DBC DBC Samples DBC DBC SysAdmin DBC DBC SYSSPATIAL DBC DBC TD_SYSFNLIB DBC DBC transportation DBC Samples TDStats DBC DBC
- Changer de base (use database sous Oracle) :
BTEQ -- Enter your SQL request or BTEQ command: database samples; database samples; *** New default database accepted. *** Total elapsed time was 1 second.
- Lister les tables d’une base :
select * from dbc.tables where databasename='financial'; *** Query completed. 10 rows found. 32 columns returned. *** Total elapsed time was 1 second. DatabaseName TableName Version ------------------------------ ------------------------------ ------------ financial trans 2 financial checking_tran 2 financial accts 2 financial savings_acct 2 financial customer 2 financial credit_tran 2 financial savings_tran 2 financial customer_name 2 financial credit_acct 2 financial checking_acct 2
- Une requête sur une table :
BTEQ -- Enter your SQL request or BTEQ command: database financial; database financial; *** New default database accepted. *** Total elapsed time was 1 second. BTEQ -- Enter your SQL request or BTEQ command: select count(*) from customer; select count(*) from customer; *** Query completed. One row found. One column returned. *** Total elapsed time was 1 second. Count(*) ----------- 1000
- Créer un user :
BTEQ -- Enter your SQL request or BTEQ command: CREATE USER testuser FROM DBC AS PASSWORD=testuser PERM = 100000000 SPOOL = 10000000; CREATE USER testuser FROM DBC AS PASSWORD=testuser PERM = 100000000 SPOOL = 10000000; *** User has been created. *** Total elapsed time was 1 second.
- Lui donner les droits :
BTEQ -- Enter your SQL request or BTEQ command: GRANT SELECT on financial TO testuser; GRANT SELECT on financial TO testuser; *** Grant accepted. *** Total elapsed time was 1 second.
Dans un prochain article, on va savoir comment on peut accéder a notre base a partir d’un client distant via plusieurs méthodes.