希望这很容易解释,但我在我的一个SSIS包中进行了查找转换.我用它来查找维度表中的emplouyee记录的id.但是我的问题是一些源数据在所有大写中都有员工姓名(例如:CHERRERA),并且使用的比较数据都是小写的(例如:cherrera).
对于不是100%情况类似的记录,查找失败(例如:cherrera vs cherrera工作正常 - cherrera vs CHERRERA失败).有没有办法在字符串/ varchar数据类型上进行查找转换忽略大小写?
我想问一下你在输入数据仓库和SSIS/SSAS时处理空数据或空数据的最佳实践.
我有几个事实和维度表在不同的行中包含空值.
具体细节:
1)处理空日期/时间值的最佳方法是什么?我应该在我的时间或日期维度中创建一个"默认"行,并在找到空值时将SSIS指向默认行吗?
2)处理维度数据中的空值/空值的最佳方法是什么.例如:我在"帐户"维度中有一些行,其帐户名称列中包含空(非NULL)值.我应该将列中的空值或空值转换为特定的默认值吗?
3)与上面的第1点类似 - 如果我最终得到一个在其中一个维度列中没有记录的Facttable行,我该怎么办?如果发生这种情况,我是否需要每个维度的默认维度记录?
4)关于如何在Sql server集成服务(SSIS)中处理这些操作的任何建议或提示?要使用的最佳数据流配置或最佳转换对象会很有帮助.
谢谢 :-)
我正在开发一个数据仓库项目,并且想知道如何(最好是在数据流中的派生列组件中)从SQL日期时间记录中删除日期.
一旦我将日期时间转换为一段时间,我将在时间维度表中查找相关时间记录的时间.
有人能给我一个简单的函数来在派生列转换中完成这个吗?
示例:将日期时间(例如"12/02/2008 11:32:21 AM")转换为"11:32:21 AM".
背景) 我已经完成了为我们的库存数据构建事实表的过程,理论上它将作为我们仓库的夜间快照.记录的是数量,重量,位置,状态等信息.数据非常精细,在许多情况下与单个实体无关(我们的源数据库将库存数据记录为具有三个主键:licenseplate aka pallet,产品和包装类型 - 因此它基本上有3个业务键,没有代理键.
我们的目标是能够100%准确地重建我们的仓库管理系统的数据,这在历史上的任何一天都是可见的.所以我可以查看8月4日在1234号位置生产的XYZ产品的托盘数量.
问题1) 现在,我已经构建了这个事实表,在结构上看起来像一个慢慢变化的维度,类型2.这是错的吗?我一直在阅读有关累积快照事实表的内容,我开始质疑我的设计.在这种情况下,最佳做法是什么?
问题2) 如果我的设计没问题,我如何配置Analysis服务,以便它识别FACT表中的DateStart和DateEnd列?我找到了一些有关如何为维度配置此信息的信息,但它似乎不适用于事实表.
供参考 - 我的事实表的结构(添加了关于列的说明):
CREATE TABLE [dbo].[FactInventory](
[id] [int] IDENTITY(1,1) NOT NULL, (fact table only surrogate key)
[DateStart] [datetime] NULL, (record begin date)
[DateEnd] [datetime] NULL, (record end date)
[CreateDate] [datetime] NULL, (create date of the inventory record in src db)
[CreateDateId] [int] NULL, (create date dimension key)
[CreateTimeId] [int] NULL, (create time dimension key)
[LicensePlateId] [int] NULL, (pallet id dimension key)
[SerialNumberId] [int] NULL, (serial number id …Run Code Online (Sandbox Code Playgroud) 我有一个维度表,每天都有一个记录.每条记录都有一个主键,因此示例数据将是:
Dimension Table --------------- --------------------------------- | ID | DateTime | --------------------------------- | 1083 | 04/10/2008 10:02:00 PM | ---------------------------------
我要做的是获取具有SQL日期时间值(例如04/10/2008 10:02:00 PM)的源数据列,并让SSIS从维度表中获取主键(1083在上面的示例中).我试图将其放入我的包中的数据流中,并避免使用登台表.
我想我的数据流中调用数据库函数有我的SSIS包发现timeid的datetime记录.我试图使用,DeriveColumn但似乎不允许使用T-SQL; 而只是内置于ANSI SQL中的函数.
在数据流中是否有另一种方法可以做到这一点?或者我是否需要使用登台表并使用SQLTask数据流外部来操纵我的数据?
在SSRS中使用数据集时是否有最佳实践?我应该为直接从表中提取的数据集编写查询,还是应该在源数据库中创建视图,然后通过数据集查询视图?
我理解在某些情况下视图会更好(集中视图以便在多个报表中使用)以及某些情况下表格查询会更好(如果您不允许访问在源数据库中创建视图或者如果您在一个报表中使用多个DB数据源).但是有任何性能影响吗?服务器是否仍然可以以与视图中的结果类似的方式缓存来自SSRS的数据集查询的结果?
任何见解将不胜感激:-)
我正在为当前使用SQL Server,SSIS和SSAS的数据仓库设计Fact和Dimension表.通过将维度和事实表之间的关系编程到SQL中,我能获得任何真正的好处吗?或者我最好只是在创建立方体时手动定义关系?
如果我对数据插入表中没有任何约束,那么加载和转换数据似乎更容易,因此忽略了关系.