A Collection of assorted Teradata Tools
Project description
tdtools
tdtools is a collection of POSIX style command-line tools that provide an alternate way to access system information (metadata) from Teradata. Of course, most of the information can be accessed by writing SQL quries against Teradata's Dictionary tables and views (DBC.%
).
NOTES:
- I originally developed these tools for my personal use. I am making these open-source in the hope that someone else might find them useful. These tools do not come with any expressed or implied warranty.
- These tools are not endorsed by Teradata Inc.
Requirements
Latest version of Python3 series is recommended. However, at least one previous version of Python will be supported.
tdtools depends on tdtypes (for Teradata metadata information) and yappt (for formatting output). These packages and their dependencies will be downloaded and installed automatically if you use the standard python installer pip
to install tdtools.
Installation
Use Python's pip
utility to install tdtools
.
$ pip install -U tdtools
Or
C:\>python -m pip install -U tdtools
Tools
All tools are command-line utilities that are generated automatically and installed (if installed using pip).
Following is a brief description of each tool. Use --help
command-line option to show detailed description of all supported options.
Command | Purpose |
---|---|
dbtree |
Print Teradata database hierarchy. |
vwtree |
Print Teradata View hierarchy. |
tbtree |
Print Teradata Tree hierarchy (reverse View hierarchy) |
updviewrefs |
Maintain View hierarchy as static data in a table (needed for tbtree ) |
tptload |
Generate (and optionally run) TPT load script. |
helpstats |
Print current statistics for any Teradata objects. |
tdrights |
Print Teradata permissions on objects or to users or roles |
All show* utilities generate DDLs for different types of Teradata objects.
Command | Objects |
---|---|
showdb |
Database or user |
showgrant |
Grants to user/role |
showprof |
Profile |
showrole |
Role |
showstats |
Statistics definition |
showtvm |
Wrapper for Teradata SHOW <object> command |
showzone |
Zone |
All ls* utilities print Teradata object information from DBC tables. Currently supported commands are:
Command | Objects |
---|---|
lstb |
Tables |
lsvw |
Views |
lsmc |
Macros |
lspr |
Stored Procedures |
lsfn |
Functions |
lsji |
Join Indexes |
lsdb |
Databases |
lsus |
Users |
lspf |
Profiles |
lsrl |
Roles |
lsrm |
Role Members |
Customization
You can optionally supply tdconn_site.py
module to allow adding custom command-line option(s) to be added to all tools and then make use of these command-line options to customize how a Teradata connection is obtained. This feature builds on customization offered by tdtypes module (see tdtypes documentation for details).
This customization involves coding a custom tdconn_site.py
module which supplies at least two functions.
dbconn_args(parser)
which should accept ArgumentParser object and add any custom command-line options to theparser
object.dbconnect(args)
which overrides the default function with the same name that is provided by tdtypes package, but must accept an argument which will be the result ofArgumentParser.parse_args()
.
Known Issues
- There was a defect in certain earlier releases of Teradata Database that caused views based on NOPI tables to be not detected correctly. A patch is available from Teradata that fixes this defect.
Support
Report bugs using issue tracker. I'll try to provide a fix as soon as I can. If you already have a fix, send me a pull request.
Contributions
Feel free to fork this repository and enhance it in a way you see fit. If you feel your changes will benefit more people, send me a pull request.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.