创建和使用基于 Teradata 的报表模型

您可以使用模型设计器、报表管理器或者 Microsoft Office SharePoint Server 2007 或 SharePoint Server 2010 生成基于运行版本 12.00 或版本 6.20 的 Teradata 数据库的报表模型。

在 SharePoint 集成模式中运行时。

注意注意

在可以连接 Teradata 数据源之前,系统管理员必须已在报表创作客户端上和报表服务器上安装了 .NET Data Provider for Teradata 的正确版本。有关详细信息,请参阅数据连接、数据源和连接字符串 (SSRS)

连接字符串

基于 Teradata 数据库生成报表模型时,连接字符串具有以下格式:

Database=<data base>;Data Source=<IP address>;userid=<user name>;password=<password>

重要说明重要提示

为 Teradata 模型生成数据源视图时,建议您指定一个架构。否则,将检索数据源上您有权访问的所有架构。

版本支持

若要基于 Teradata 数据库创建模型,必须针对您使用的 Teradata 数据库的版本,使用正确版本的 .NET Framework Data Provider for Teradata。该组件可以从 Teradata 获取。请与系统管理员一起验证,您的报表创作计算机和报表服务器上安装的版本是否正确。有关详细信息,请参阅 Reporting Services 支持的数据源 (SSRS)

功能限制

由于 Teradata 数据库基础行为的原因,从 Teradata 数据库生成模型与从其他类型的数据源生成模型有以下不同之处:

  • **主键。**数据源视图向导不会检测 Teradata 数据库的主键。生成报表模型时需要使用主键。在 Business Intelligence Development Studio 中的报表模型项目中,必须使用“数据源视图”菜单定义可用于生成模型的逻辑主键。有关详细信息,请参阅如何为基于 Teradata 的报表模型创建主键 (Reporting Services)

    如果需要手动定义逻辑键的表或对象过多,则可以在报表服务器上创建一个具有数据源视图的模型。在报表服务器上生成的模型会包含包括主键的数据源视图。在报表服务器上创建该模型后,可以将它下载到报表创作客户端,然后将它导入报表模型项目。将该模型添加为现有项后,该数据源视图将显示在“数据源视图”文件夹下。

  • **语义模型定义语言 (SMDL) 查询转换器。**SMDL 查询转换器与 Teradata 数据库一起使用时,行为会有一些不同之处。这些行为可包括功能和配置开关(需要用配置开关控制用于解决目标数据库中的 Bug 和设计限制的方法)方面的微小差异。

以下部分介绍这些差异。

数据类型

SMDL 仅支持以下 Teradata 数据类型。

SMDL 类型

Teradata 类型

String

CHAR、CHARACTER、CHAR VARYING、CHARACTER VARYING、CHARACTER LARGE OBJECT、CLOB、GRAPHIC、INTERVAL DAY、INTERVAL DAY TO HOUR、INTERVAL DAY TO MINUTE、INTERVAL DAY TO SECOND、INTERVAL HOUR、INTERVAL HOUR TO MINUTE、INTERVAL HOUR TO SECOND、INTERVAL MINUTE、INTERVAL MINUTE TO SECOND、INTERVAL MONTH、INTERVAL SECOND、INTERVAL YEAR、INTERVAL YEAR TO MONTH、LONG VARCHAR、LONG VARGRAPHIC、VARCHAR、VARGRAPHIC

Int16

SMALLINT

Int32

INT、INTEGER

Int64

BIGINT

Decimal

DEC、DECIMAL、NUMERIC

Double

DOUBLE PRECISION、FLOAT、REAL

Binary

BINARY LARGE OBJECT、BLOB、VARBYTE

Byte

BYTE

SByte

BYTEINT

日期

DATE

Time

TIME

DateTime

TIMESTAMP

对于 Teradata 数据源,SMDL 不支持上面未列出的任何数据类型,其中包括:

  • TIME WITH TIME ZONE

  • TIMESTAMP WITH TIME ZONE

  • 某些 USER DEFINED TYPE 数据类型 (UDT)

  • 不能用 CLR Decimal 数据类型表示精度超过 29 位数的 DECIMAL。例如,数据源中某个字段的精度可能为 38 位数。在运行时检索数据可能会导致数据访问接口中引发异常,具体取决于数据的精度和小数位数。有关详细信息,请参阅报表创作客户端和报表服务器上安装的相应版本的数据访问接口的 Teradata .NET Framework Data Provider 文档。

使用报表管理器或 SharePoint 产品自动生成报表模型时,将排除包含不受支持数据类型的列。此外,如果不受支持的数据类型属于主键的一部分,则将不生成整个实体。

使用模型设计器创建报表模型时,所有内容都将添加到该报表模型中。因此,在简化模型时,您必须手动筛选出上面列出的所有不受支持的数据类型。

函数

某些函数的行为可能取决于基础数据库。如果为 Left、Right 或 Substring 函数的长度参数指定的值小于零,则 SMQL 中未定义这种行为。

默认值

Teradata 使用以下默认值:

字符串文字来自 Unicode 字符集。

Date 数据类型支持年、日和月,还包括以小时、分钟和秒为单位的时间。

配置开关

由于基础数据源的原因,有很多配置开关可用于基于数据源和环境的特定情况来修改查询转换器的行为。RSReportServer.config 文件中定义了以下开关,该文件默认安装在 <系统驱动器>:\Program Files\Microsoft SQL Server\MRRS10.MSSQLSERVER\Reporting Services\ReportServer\ 文件夹中。

名称

类型

定义默认值

说明

EnableMath

OpCasting

Boolean

False

此开关可将数学运算结果转换为 Microsoft .NET Framework 十进制格式。

查询中的某些数学运算可能会得到小数值,并且其精度和小数位数组合无法表示为 .NET Framework 小数数据类型。虽然您可以将此类十进制表达式的结果显式转换为十进制格式,但您的用户可能并不知道在设计时必须进行此操作。如果需要频繁创建此类表达式,则可以将此开关设置为 True,从而自动执行所需转换。