标签: teradata

在Teradata中检索列和其他元数据信息

我在SQL Server中有半打视图需要在Teradata中复制,但是我无法找到与SQL元数据表相当的TD.我想复制以下功能(我认为这是相当自我解释的):

select table_name, column_id ordinal_position, column_name,
   data_type, char_length char_max_length, 
   data_precision numeric_precision, data_scale numeric_scale
from user_tab_columns

select name as FUNCTION_NAME
from sys.objects
where type_desc='SQL_SCALAR_FUNCTION'

select TABLE_NAME as VIEW_NAME
from INFORMATION_SCHEMA.VIEWS
Run Code Online (Sandbox Code Playgroud)

我还想知道在线是否有任何可用的Teradata参考资料; 我遇到的一切似乎都是广告而不是实用信息.

sql teradata

8
推荐指数
1
解决办法
3万
查看次数

hadoop vs teradata有什么区别

我触及了Teradata.我从未接触过hadoop,但从昨天开始,我正在研究这个问题.通过对两者的描述,它们似乎是可以互换的,但在一些文章中写道它们用于不同的目的.但我发现的一切都是模糊的.我很迷惑.

有谁有经验吗?他们之间有什么严重的区别?

简单示例:我想构建ETL,它将转换数十亿行原始数据并将它们组织成DWH.然后对它们进行一些资源昂贵的分析.为何使用TD?为何选择Hadoop?或者为什么不呢?

database hadoop teradata business-intelligence

8
推荐指数
2
解决办法
3万
查看次数

TeraData SQL中"TOP"和"SAMPLE"之间的区别

TeraData SQL中"TOP"和"SAMPLE"有什么区别?它们是一样的吗?

sql teradata

7
推荐指数
1
解决办法
1万
查看次数

加入与EXISTS的表现

一般来说,使用JOIN选择行与EXISTS where子句之间是否存在性能差异?搜索各种问答网站表明联接更有效率,但我记得很久以前在Teradata中学习EXISTS更好.

我确实看到了其他SO答案,像这样这个,但我的问题是特定于Teradata.

例如,考虑这两个返回相同结果的查询:

select   svc.ltv_scr, count(*) as freq
from     MY_BASE_TABLE svc
join     MY_TARGET_TABLE x
on       x.srv_accs_id=svc.srv_accs_id
group by 1
order by 1
Run Code Online (Sandbox Code Playgroud)

-和-

select   svc.ltv_scr, count(*) as freq
from     MY_BASE_TABLE svc
where exists(
    select 1
    from   MY_TARGET_TABLE x
    where  x.srv_accs_id=svc.srv_accs_id)
group by 1
order by 1
Run Code Online (Sandbox Code Playgroud)

两个表上的主索引(唯一)是'srv_accs_id'.MY_BASE_TABLE相当大(2亿行),MY_TARGET_TABLE相对较小(200,000行).

EXPLAIN计划有一个显着的区别:第一个表示两个表"通过RowHash匹配扫描"连接,第二个表示"通过全行扫描".两者都说它是"全AMP加入步骤",总估计时间相同(0.32秒).

两个查询都执行相同的操作(我正在使用Teradata 13.10).

类似的实验找到一个比较LEFT OUTER非匹配具有相应的连接是NULL where子句的NOT EXISTS子查询也确实表现出的性能差异:

select   svc.ltv_scr, count(*) as freq
from     MY_BASE_TABLE svc
left outer join MY_TARGET_TABLE x
on       x.srv_accs_id=svc.srv_accs_id …
Run Code Online (Sandbox Code Playgroud)

sql teradata

7
推荐指数
1
解决办法
2万
查看次数

如何根据teradata SQL中的条件计算移动总和?

我有这样的数据,我想总结领域USAGE_FLAG,但复位时降至为0或移动到一个新的ID保持数据集的排序SU_IDWEEK:

SU_ID   WEEK    USAGE_FLAG
100        1    0
100        2    7
100        3    7
100        4    0
101        1    0
101        2    7
101        3    0
101        4    7
102        1    7
102        2    7
102        3    7
102        4    0
Run Code Online (Sandbox Code Playgroud)

所以我想创建这个表:

SU_ID   WEEK    USAGE_FLAG    SUM
100        1    0             0
100        2    7             7
100        3    7             14
100        4    0             0
101        1    0             0
101        2    7             7
101        3    0             0
101 …
Run Code Online (Sandbox Code Playgroud)

sql sum teradata

7
推荐指数
1
解决办法
1万
查看次数

将数据从oracle移动到HDFS,处理并从HDFS移动到Teradata

我的要求是

  1. 将数据从Oracle移动到HDFS
  2. 处理HDFS上的数据
  3. 将处理后的数据移至Teradata.

还需要每15分钟进行一次整个处理.源数据的量可以接近50GB,并且处理的数据也可以是相同的.

在网上搜索了很多,我发现了

  1. ORAOOP将数据从Oracle移动到HDFS(使用shell脚本编写代码并安排它以所需的时间间隔运行).
  2. 通过Custom MapReduce或Hive或PIG进行大规模处理.
  3. SQOOP - 用于将数据从HDFS移动到Teradata的Teradata Connector(再次使用带有代码的shell脚本然后安排它).

这是一个正确的选择,这是否适用于所需的时间段(请注意,这不是每日批次左右)?

我发现的其他选项如下

  1. STORM(用于实时数据处理).但我无法找到开箱即用的oracle Spout或Teradata螺栓.
  2. 任何开源ETL工具,如Talend或Pentaho.

请分享您对这些选项的想法以及任何其他可能性.

oracle hadoop teradata apache-storm

7
推荐指数
1
解决办法
1万
查看次数

Teradata Volatile Table语句不创建任何行

我想在Teradata中创建表.因此我使用这种语法:

    CREATE VOLATILE TABLE a AS
    (
        Select * FROM ...
    ) WITH DATA PRIMARY INDEX ( ACCOUNT_ID )
;
Run Code Online (Sandbox Code Playgroud)

内部SELECT语句产生4行.但是,当我运行整个查询时,结果数据集没有任何行.奇怪,我知道 - 这就是我写作的原因.请帮忙.谢谢.

teradata

7
推荐指数
1
解决办法
4万
查看次数

子查询问题 - 所有表达式必须具有显式名称

不知道这里发生了什么以及为什么这不起作用.我收到以下错误:

"派生表中的所有表达式都必须具有明确的名称" - 使用teradata.

    select clm.c_clm
    ,clm.c_loc
    from 
    (select *
    from pearl_p.TLTC900_CLM clm) as cl
    left join
    (select 
    max(av.d_usr_udt_lst)
    from pearl_p.TLTC913_AVY av
    group by 1) as avy
    on cl.i_sys_clm = avy.i_sys_clm
Run Code Online (Sandbox Code Playgroud)

sql teradata

7
推荐指数
1
解决办法
3万
查看次数

查看vs volatile表?

Teradata中的视图和易失性表之间有什么区别?据我所知,在会话结束时删除了一个volatile表.此外,只有我才能看到易失性表而不是视图.还有其他重大差异吗?

teradata

7
推荐指数
2
解决办法
1万
查看次数

创建一个在Teradata中具有"with recursive"语句的递归视图

我想CREATE RECURSIVE VIEW从以下可重现的示例中在Teradata中创建一个递归视图(即):

CREATE VOLATILE TABLE vt1
(
    foo VARCHAR(10)
    , counter INTEGER
    , bar INTEGER
)
ON COMMIT PRESERVE ROWS;

INSERT INTO vt1 VALUES ('a', 1, '1');
INSERT INTO vt1 VALUES ('a', 2, '2');
INSERT INTO vt1 VALUES ('a', 3, '2');
INSERT INTO vt1 VALUES ('a', 4, '4');
INSERT INTO vt1 VALUES ('a', 5, '1');
INSERT INTO vt1 VALUES ('b', 1, '3');
INSERT INTO vt1 VALUES ('b', 2, '1');
INSERT INTO vt1 VALUES ('b', 3, '1');
INSERT …
Run Code Online (Sandbox Code Playgroud)

sql recursion view recursive-query teradata

7
推荐指数
1
解决办法
2127
查看次数