Viewpoint - webova aplikace na sledovani a managovani Teradata databaze
PDE - Parallel Database Extension - aplikacni vrstva na OS (Suse linux) ktera provozuje databazi
AMP - Access Module Procesor - Proces ktery spolu s jinymi AMPy provadi SQL dotazy, nebo jejich casti. Nekolik (i tisic) AMPu spracovava paralelne 1 SQL dotaz
PE - Parsing Engine - prijima a optimalizuje SQL dotazy, potom dispatchyje vysledek AMPum
BYNET - BanYan NETwork - sitova vrstva (ktera pusobi i jako aplikacni na spojovani AMP vysledku) na proposeni PE s AMP
SELECT USER, DATABASE, CURRENT_TIME, CURRENT_DATE, SESSION, PROFILE, ROLE; … ukaze info o aktualnim uzivateli a session
HELP 'sql'; … reference prikazu
HELP 'sql grant'; … info k prikazu sql grant
HELP DATABASE student102; … ukaze databazi student102
HELP TABLE student102.employee; … ukaze tabulku student102.employee
SHOW TABLE student102.employee; … ukaze definici tabulky student102.employee
CREATER USER student102_a AS PERM 2e6 PASSWORD=heslo102;
CREATE DATABASE student102_a1 FROM student102_a AS PERM 1e6;
GIVE student102_a1 to student102_b;
DROP DATABASE student102_a1;
I support TQL (Teradata Query Language). Uses datime Teradata native driver, not like TD studio etc (odbc, jdbc)
.connect 1.2.3.4
retrieve employe.*
explain select * from employe
pdestate
/etc/init.d/tpa restart .. Trusted Parallel application - PDE
xdbw - supervisor window → help → get config → restart tpa … nebo pomoci viewpoint
tail -f25 /var/log/messages - kdyz TPA nenastartuje
HELP 'HELP';
CREATE DATABASE student102_a1 FROM student102_a AS PERM=1e6;
give student102_a1 to student102_b;
DROP DATABASE student102_a1;
REPLACE MACRO student102.MyDiskSpace
AS
(
SELECT
USER (CHAR(15))
,PROFILE (CHAR(15))
,SUM(currentperm) / 1000000 (DECIMAL(8,2)) AS "MB Usr//CurPerm"
,SUM(maxperm) / 1000000 (DECIMAL(8,2)) AS "MB Usr//Perm"
,"MB Usr//Perm" - "MB Usr//CurPerm" (DECIMAL(8,2)) AS "MB Perm//available"
,SUM(maxspool) / 1000000 (DECIMAL(8,2)) AS "MB Usr//Spool"
,SUM(maxprofilespool) / 1000000 (DECIMAL(8,2)) AS "MB Prfl//Spool"
,SUM(maxtemp) / 1000000 (DECIMAL(8,2)) AS "MB Usr//Temp"
,SUM(maxprofiletemp) / 1000000 (DECIMAL(8,2)) AS "MB Prfl//Temp"
FROM dbc.diskspacev
WHERE databasename = USER
;
)
;
EXEC student102.MyDiskSpace;
CREATE MACRO student112.MyTableSizes
AS
(
SELECT
databasename || '.' || tablename (CHAR(40)) AS "Table"
,SUM(currentperm) (INTEGER)
FROM dbc.tablesizev
WHERE databasename = USER
GROUP BY 1
;
)
;
EXEC student102.MyTableSizes;
------------ Excercise 3 --------------
CREATE PROFILE STUDENT102_P AS ACCOUNT = '$M0+FACT&S&D&H',
DEFAULT DATABASE = student102,
SPOOL = 50E6,
TEMPORARY = 50E6,
PASSWORD = (EXPIRE = 91, MINCHAR = 6, MAXLOGONATTEMPTS = 3, LOCKEDUSEREXPIRE = 5, REUSE = 365, DIGITS ='R', RESTRICTWORDS = 'Y', SPECCHAR ='P');
SELECT * FROM dbc.profileinfov;
SELECT * FROM dbc.accountinfo WHERE USERNAME='student102_p';
SELECT * FROM dbc.accountinfo WHERE userorprofile='profile';
SELECT * FROM dbc.accountinfo WHERE userorprofile='user' ORDER BY 1;
CREATE USER STUDENT102_C AS PERM=0, PASSWORD =abcd12, PROFILE = student102_p;
DROP PROFILE STUDENT102_P;
------------ Excercise 4 ----------
HELP TABLE empolyee;
SELECT DISTINCT TYPE(last_name), DEFAULT(salary_amount), FORMAT(salary_amount) FROM employee;
HELP INDEX employee;
SELECT * from DBC.DatabasesV;
SELECT * FROM DBC.DatabasesV WHERE DatabaseName='student102';
SELECT * FROM DBC.dbcinfoV;
SELECT * FROM dbc.childrenv WHERE child='student102';
SELECT * FROM DBC.UsersV;
SELECT * FROM DBC.UsersV WHERE USERNAME LIKE 'student102';
SELECT COUNT(ProtectionType) FROM DBC.DatabasesV WHERE ProtectionType='F';
SELECT count(*) FROM DBC.ColumnsV WHERE DefaultValue is not NULL;
SELECT COUNT(DISTINCT(TABLENAME)) FROM DBC.ColumnsV WHERE DefaultValue IS NOT NULL;
SELECT COUNT(DISTINCT(TABLENAME || '.' || DatabaseName)) FROM DBC.ColumnsV WHERE DefaultValue IS NOT NULL;
SELECT * FROM DBC.IndexConstraintsV;
TCP/1025 ... DB port
xdbw ... na serveru spusti prehled treminalu - 6. terminal je superuser, 5. je system out
cnsterm 1 << fere
select * from DBC.SysSecDefaults; ... defaultni bezpecnostni politika
select * from dbc.ProfileInfoVX; ... Ukaze aktualni profil info
SELECT PROFILE; ... ukaze profil
SELECT COUNT(*) FROM DBC.LogonoffV WHERE event LIKE 'BAD%' AND LOGDATE > CURRENT_DATE - 10; ... pocet spatnych prihlaseni za poslednich 10 dni
select count(*) from DBC.SessionInfoV; ... ukaze pocet aktualnich pripojeni
SELECT * FROM DBC.SessionInfoV WHERE USERNAME='sysdba'; ... ukaze pocet pripojeni uzivatele sysdba
SELECT * FROM DBC.DBQLRulesV WHERE USERNAME='student102'; ... ukaze pravidla z Query logu pro uziovatele student102
SELECT * FROM DBC.QryLogV WHERE USERNAME='student102'; ... Ukaze vsechny radky z query logu pro uzivatele
/*
** comment
*/
.errorout stdout;
.run file= logon_student102.bteq;
nebo
.logon 192.168.2.59/student101,teradata101;
.errorlevel 3807 severity 0;
DROP TABLE student101.accounts;
CREATE TABLE student101.accounts as ap.accounts WITH DATA;
DROP TABLE student101.customer;
CREATE TABLE student101.customer as ap.accounts WITH DATA;
DROP TABLE student101.trans;
CREATE TABLE student101.trans as ap.accounts WITH DATA;
SELECT count(*) FROM student101.accounts;
SELECT count(*) FROM student101.customer;
SELECT count(*) FROM student101.trans;
.logoff;
.quit;
LOGON 192.168.2.59/student101,teradata101;
ARCHIVE DATA TABLES (student101.accounts), (student101.trans), (student101.customer), RELEASE LOCK, FILE=myarc;
LOGOFF;
bteq < prepare.bteq > prepare.txt
arcmain < backup.arc > backup.arc
LOGON 192.168.2.59/student102/teradata102;
RESTORE DATA TABLES (), RELEASE LOCK, FILE=myarc;
LOGOFF;
LOGON 192.168.2.59/student102/teradata102;
ANALYZE DATA TABLES *, DISPLAY LONG, FILE=myarc;
LOGOFF;
LOGON 192.168.2.59/student102/teradata102;
RESTORE DATA TABLES (student102.customer_copy) ( FROM (student102.customer) ), RELEASE LOCK, FILE=myarc;
LOGOFF;
google : teradata Dieter Noeth - odkazy na internetu, kde radi Dieter Noeth, TD expert
Klaus Stock - skolitel