大数据 | Teradata | SQL
文章平均质量分 53
gjwang1983
这个作者很懒,什么都没留下…
展开
-
a bteq shell wrapper
# bteqshellwrapper.ksh USAGE_pet_bteq(){cat #USAGE: bteqshellwrapper.ksh SQLFILE#PARAMETER: # 1. SQLFILE - the sql file name to be executed by bteq, without path.EOI}if [ $# -ne 1 ]then原创 2009-07-20 15:09:00 · 1017 阅读 · 1 评论 -
Teradata 常用查询
查询数据库空间大小原创 2010-10-27 22:09:00 · 4639 阅读 · 1 评论 -
DW Performance Notes
第一章1.1 性能度量查询的响应时间查询提交到返回第一行数据的时间查询提交到最后一行数据的时间我的理解:响应时间是一个直观的用户体验。本质上是查询所消耗的CPU 时间,IO开销,PE效率(并行系统)1.2 生产效率响应时间快对用户的生产效率有很大的帮助。更加及时知道业务的变化。翻译 2011-07-19 14:58:32 · 801 阅读 · 0 评论 -
DW Design
1. 数据类型 如果某PK是很多表的FK,也就是说该表是很多表的父表,那么在设计这种顶层的表的时候,一般要考虑到将来的变更可能带来的问题,所以一般在设计这种表的时候要尽量放宽标准,比如列长要宽、约束要小等等 2. ETL process flow 应当按照数据源(source host)进行归类,而不应该按照DW的主题表进行归类。 EX LD TR应当放在一个大的container下面(按照 source host) 3. Surrogate Key Surrogate K原创 2011-05-19 10:21:00 · 661 阅读 · 0 评论 -
PET and Prod
今天发生件有意思的事情我的客户adri在做财务报表的时候跳出来很不高兴的说:“冠军,上周三你说这个数据已经没有问题了,现在这个周一怎么问题还是出现,我感到有点不爽”。其实我也感到有点不爽,上周三我是校验过数据的,都是没有问题才发邮件告诉他现在没问题了。况且,我发信告诉他数据应该好了,他也应当作出适当的测试验证,可是他没有,这就导致最后出财务报表的时候大家都不爽。我不是想规避责任,在仔细校验了程序后也发现了另外一个bug,虽然和他说的那个问题没有多少关系。我这里想说的是,任何生产系统上运行的正规报表必须运行在原创 2011-05-17 20:56:00 · 634 阅读 · 0 评论 -
慎重对待复杂View
复杂的View也就是复杂的SQL Select query.在设计复杂query的时候,需要针对不同的应用案例进行性能分析,不然很有可能你设计出来的View是跑不出来查询的。这一点要切记。复杂View的设计:1. 需求2. 用例3. 设计4. 查询计划,调试5. 修改6. 确定最佳查询方法。原创 2009-07-02 16:55:00 · 520 阅读 · 0 评论 -
NULL Comparision
NULL = NULL NULL 都返回false 但还是要注意下用相关子查询exist和not exist,外表和内表做连接的column是否为NULL。如果含有NULL,则要特别处理。原创 2010-04-21 15:56:00 · 435 阅读 · 0 评论 -
CHECK DQ Issue in Slowly Changing Dimension
SEL begin_date, COUNT(1)FROM (SEL user_id, begin_date, end_date, MAX(begin_date) OVER (PARTITION BY user_id ORDER BY begin_date, end_date ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING) AS nex原创 2010-01-28 09:30:00 · 430 阅读 · 0 评论 -
Data Reconcilidation
<br />What is Data Reconciliation?<br />Data Reconciliation is a technique allowing to adjust the measured dataand to give estimates to unmeasured variables where possible, in such away that this set of measured as well as estimated data satisf转载 2010-06-07 11:01:00 · 688 阅读 · 0 评论 -
如何解決 SUM(A) + (SUM B) != SUM (A+B)
SUM(A)+SUM(B) = SUM(A+B).• Define all NUMERIC columns as NOT NULL DEFAULT 0.• Use the ZEROIFNULL function nested within the aggregate function to convert any nullsto zeros for the computation, for exampleSUM(ZEROIFNULL(x) + ZEROIFNULL(y))原创 2010-10-29 17:20:00 · 2109 阅读 · 0 评论 -
Data Warehousing
一、ODS的必要性原创 2010-08-10 22:33:00 · 709 阅读 · 0 评论 -
statistic & Demographics
A statistic is a single computed value that represents an entire sample or population of data. For example, the mean of a distribution is a measure of its central tendency calculated by summing the da翻译 2009-08-11 12:25:00 · 600 阅读 · 0 评论 -
data reconciliation/verification TBC
<br />1. 通过(group by字段组合)来查看这些组合(字段映射如group by A, B, C可能蕴含A=f(B,C))的逻辑关系是否正确,同时计算每个组合的count.<br />eg.<br /> <br /><br />SELECTb.USER_STAMP_NAME, a.SLR_SGMNT, COUNT(*)cnt<br />FROMMP_SLR_SGMNT_HSTa<br />JOINMP_SLR_STAMP_HSTb<br />ONa.MONTH_BEG原创 2011-03-11 13:38:00 · 483 阅读 · 0 评论 -
Useful Query
<br />SELECT a.tablename, a.currentSize, b.CreatorNameFROM (SELECT databasename, tablename, SUM(currentperm)/1024/1024/1024 AS currentSize FROM dbc.tablesize WHERE databasename = 'p_clsfd_t' GROUP BY 1, 2) a, dbc.tables bWHERE a.tablename = b.tablena原创 2010-06-01 13:23:00 · 571 阅读 · 0 评论 -
大数据量下的数据操作
在数据仓库中,数据量是很大的。一张表的大小可能有1TB。那么对整张表进行更新或插入的时候,很有可能数据库无法支持那么大的数据量的操作。所以,想要一次性一条INSERT INTO搞定这个全表操作很有可能会得到出错的信息。 那么,对于这么样的情况我们该怎么做呢?解决方案其实也是很简单的——分而治之。 把1TB的数据表划分成10个子数据段,然后对着10个子数据段分别进行插入操作。但是要注原创 2009-06-15 20:51:00 · 708 阅读 · 0 评论 -
Exclusive Join 又是NULL
<br />SetA<br /> a <br />-----<br /> 1<br /> 3<br /> 5<br />NULL<br /> <br /> <br />SetB<br /> a <br />-----<br /> 1<br /> 2<br /> 3<br /> 4<br /> 5<br /> <br /> <br />SELECT * FROM clsfd_working.setb WHERE a NOT IN (SEL a FROM clsfd_working.s原创 2010-07-09 17:58:00 · 451 阅读 · 0 评论 -
Teradata中四舍五入规则
Teradata中四舍五入规则与标准规则的差异 收藏<br />问题:Teradata中四舍五入规则和标准规则有差异?如下例:<br />select cast('1212.705' as decimal(18,2))<br />--1212.70<br /> <br />select cast('1212.715' as decimal(18,2))<br />--1212.72<br />解答:Teradata中四舍五入的规则由DBSCONTROL下的转载 2010-09-29 15:21:00 · 3089 阅读 · 1 评论 -
Aggregate Function Data Type
SUM() AVG() Return Type Real/Float. So it is unprecise number. 另外, teradata会自动先把NULL删除后再对剩下的数据集合进行AVG(a), MAX(a), MIN(a), SUM(a), COUNT(a)。 如下例:DROP TABLE guanwang_test_avg;CREATE TABLE g原创 2009-11-30 09:34:00 · 561 阅读 · 0 评论 -
A BTEQ IMPORT SAMPLE
#recommerd for small dataset.MAXERROR 1.LOGON $TDP/$USER, $PWD.SET ERRORLEVEL 3807 SEVERITY 0;DROP TABLE TESTDB.TESTLOADINGTABLE;.SET ERRORLEVEL 3807 SEVERITY 8;CREATE MULTISET TABLE TESTDB.T原创 2009-07-20 15:17:00 · 1284 阅读 · 1 评论 -
A SHELL SCRIPT calling the bteqshellwrapper.ksh
#!/usr/bin/ksh -eu. $HOME/bin/var.setupexport FROM_DT_TMP_FILE=$HOME/FROM_EXTRACT_DT.tmpexport FROM_EXTRACT_DT=2000/01/01loopFlag=1while [ "${loopFlag}" -eq 1 ]do #empty the bteq exported file原创 2009-07-21 21:04:00 · 761 阅读 · 0 评论 -
ACCESS LOCK WITH JOIN
在连接操作中,如果用LOCKING ROW FOR ACCESS,那么会把两个表都变成ACCESS锁。如下所示,LOCKING ROW FOR ACCESSSELECT *FROM TABLE_1 a, TABLE_2 b那么TABLE_1和TABLE_2都是ROW HASH LEVEL ACCESS LOCK。 但是,一个比较晦涩的情况是:SHOW VIEW test原创 2009-07-21 20:39:00 · 1044 阅读 · 1 评论 -
Say Yes to No Primary Index (No PI) Tables
原文地址:http://developer.teradata.com/database/articles/say-yes-to-no-primary-index-no-pi-tables Say Yes to No Primary Index (No PI) Tables The purpose of the new Teradata 13.0 feature that allow转载 2009-08-11 21:06:00 · 1390 阅读 · 0 评论 -
查询数据库空间大小
Query table space: SELECT SUM(currentperm)/1024/1024/1024 AS GB FROM dbc.tablesize WHERE tablename = table1 AND databasename = db1Query database size: SELECT SUM(currentperm)/1024原创 2009-06-08 20:38:00 · 1444 阅读 · 0 评论 -
字符串格式的日期转换为日期类型
SELECT CAST(13/10/1974 AS DATE FORMATDD-MM-YYYY);SELECT CAST(CAST(14/July/1974 AS DATE FORMATDD/MMMM/YYYY) AS DATE FORMATDD-MM-YYYY);SELECT CAST(CAST(14 Jul 1974 AS DATE FORMATDDBMMMB原创 2009-06-10 16:22:00 · 1641 阅读 · 0 评论 -
加班问题的SQL(Teradata)解法
题目:公司规定一周内加班总和最多只能12个小时,多余的要去掉,去掉的规则是:某天加班超过1H的才能去,而且是依次大致平均的去除,(最小单位是1小时) 举例: 日期 工号 加班小时 周一 A001 6 周二 A001 2 周三 A001 1 周四 A001 5 周五 A001 7 ---------------- 共计加班:21H,超出9H 算法:从周一开始依次删减,每天减1H(如原创 2009-06-18 20:04:00 · 1354 阅读 · 0 评论 -
1NF - 范式化和反范式化
先反范式化:-- look at the test dataSELECT * FROM TESTDB.TEST_MERGE ORDER BY pk, val; *** Query completed. 10 rows found. 2 columns returned. *** Total elapsed time was 1 second. pk val-----原创 2009-07-03 16:01:00 · 1741 阅读 · 1 评论 -
COUNT
+---------+---------+---------+---------+---------+---------+---------+----CREATE TABLE test_count(a INTEGER,b VARCHAR(10)); *** Table has been created. *** Total elapsed time was 1 second.+-----原创 2009-07-10 14:53:00 · 454 阅读 · 0 评论 -
SQL Design Pattern - TBC
1. Alias 作为接口.尽量使用别名,一旦某一个数据源表变化了,可以改底层源表,而无需修改使用别名的接口。Alias有列的和表的。 都需要。一旦列和表名字更换了,别名不会让后续代码修改。举例:CREATE TMP TABLE VT_A AS(SEL mycol_a AS a, mycol_b AS bFROM tableX); SEL C原创 2009-09-14 11:54:00 · 834 阅读 · 0 评论 -
Skew
LOCK Dbc .TableSize FOR ACCESSSELECT TableName AS Name ,T AS "Type",SUM (CurrentPerm ) AS CurrentPerm,SUM (PeakPerm ) AS PeakPerm ,(100 - (AVG (CurrentPerm )/MAX (CurrentPerm )*100 )) AS原创 2009-10-26 11:19:00 · 684 阅读 · 0 评论 -
HASH JOIN
pre condition: INNER JOIN原创 2009-11-03 17:18:00 · 456 阅读 · 0 评论 -
FastLoad Explained - TBC
FASTLOAD原创 2009-11-06 13:36:00 · 600 阅读 · 0 评论 -
Query whether you have the access to a specific database
Role based access control SELECT b .AccessRight , a .RoleName , a .Grantee , a .GranteeKind , b .DatabaseName , b原创 2009-11-06 13:36:00 · 534 阅读 · 0 评论 -
FLOAD, FEXP, MLOAD SAMPLES
Fast Export Script:.logtable DXWX_P57_DLWORK_DB01.logtable_EMP;.logon tdp8/ADMIN_DXWX_P57,apple;.begin export sessions 2;.export outfile D:/IDQ/Outputs/emp FORMAT TEXT;select *f原创 2009-11-19 16:04:00 · 2316 阅读 · 0 评论 -
tables in database
<br />ORACLE:<br /><br />selecttable_name from all_tables where owner='USER'<br /> <br />MYSQL:<br />show tables in 'databasename';<br /> <br /><br />原创 2011-03-14 14:35:00 · 645 阅读 · 0 评论