标签: etl

关于在数据集市中填充事实表的想法

我正在寻找填充数据集市中的事实表的想法.可以说我有以下几个方面

  1. 医师
  2. 患者
  3. 日期
  4. geo_location
  5. patient_demography
  6. 测试

我使用了两个ETL工具来填充维度表 - Pentaho和Oracle Warehouse Builder.日期,患者人口统计和地理位置不会从运营商店中提取数据.所有维度表都有自己的新代理键.

我现在想要在患者访问的详细信息中填写事实表.当患者在特定日期拜访医生时,他会下令进行测试.这是事实表中的信息.还有其他措施,我为了简单而省略.

我可以使用源系统中的事实表中的所有必需列创建单个连接.但是,我需要存储患者,医师,测试等维度表中的密钥.实现这一目标的最佳方法是什么?

ETL工具可以帮助解决这个问题吗?

谢谢克里希纳

database database-design etl data-warehouse

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

MERGE OUTPUT语句出现严重错误

我收到一个严重的错误 - 代码20,来自Merge声明,我不知道为什么.如果我删除OUTPUT $ action子句,并且按预期更新/插入目标表,MERGE运行正常.只要我将OUTPUT子句放入其中,或者将其作为简单的OUTPUT $操作或将其存储在表变量中并从中进行选择,就会导致错误级别为20.我使用两个CTE作为目标和源.不确定这是否会导致问题,但正如我所说,没有OUTPUT子句它可以正常工作.使用SQL Server 2008.为了便于阅读,我删除了大部分列.

USE [DM]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[MergeMDATEST]

@InsertAuditKey INT = 10
,@UpdateAuditKey INT = 1

AS
SET NOCOUNT ON;

DECLARE @RowCounts TABLE (mergeAction varchar(20));
--------------------------------------------
--- CTEs to add in Binary_Checksum Calcs ---
WITH SourceQuery AS
(
SELECT TOP 100
    [Company]
    ,[AccountNumber]
    ,BINARY_CHECKSUM([Company]) As [Checksum]
FROM #temptestMergeSource
)

,TargetTable AS
(
SELECT TOP 100
    [Company]
    ,BINARY_CHECKSUM([Company]) As [Checksum]
FROM #temptestMergeTarget
)

MERGE TargetTable AS Target …
Run Code Online (Sandbox Code Playgroud)

t-sql etl stored-procedures sql-server-2008

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

.NET DataTable是从Excel文件中修改日期字段

我现在正在编写很多Extract Transform Load代码用于工作.为了便于从SSIS中读取用户生成的Excel电子表格中的数据,我编写了一个从Excel文件中读取列标题布局的小库,并将数据转储到MS SQL数据库中的表中,该数据库具有与Excel文件相同的架构.它到目前为止工作得很好,但我有几个奇怪的打嗝.

(是的,我知道SSIS原生支持这样的东西.我选择的方法有技术原因,解释它们将超出本文的范围.)

问题是,对于某些输入文件,任何包含日期信息的列都会被破坏.例如,当我执行导入时,日期字符串12/09/2013会被破坏41617; Dec 9, 2013 9:19:58 AM成为41617.388866.我正在检查它是否试图将其12/09/2013视为数学方程式,但是(12/09)/2013 = 6.62361.此外,我已经检查了此电子表格中的单元格格式以及其他一些导入日期字段而没有错误的格式,并且它在任何地方都是相同的 - 自定义,mm/dd/yyyy.

这里最大的问题是,由于我编写的过程的性质,一切都取决于我在运行时不知道文件的结构.我可以改变的飞行数据,但我不知道如何向后工作从4161712/09/2013.

DateTime.TryParse也没用:

DateTime dt;
DateTime.TryParse("41617", out dt);
Console.WriteLine(dt.ToString());
Run Code Online (Sandbox Code Playgroud)

输出

1/1/0001 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)

以下是我遇到问题的电子表格的剥离,去标识副本的链接:从Google云端硬盘查看/下载

我使用OLE DB连接字符串来读取Excel(2007)文件中的数据:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FilePath + ";Extended Properties = \"Excel 12.0 XML; HDR=YES; IMEX=1\";"
Run Code Online (Sandbox Code Playgroud)

使用Interop类不是一种选择.它们没有设置在服务器上,作为承包商,我不太可能让IT部门进行设置.

然后,我正在使用一个OleDbCommand()SELECT *针对Excel工作表运行,并使用结果填充DataSet.

这让我很难过,我非常感谢任何帮助.

.net c# oledb excel etl

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

13亿条记录ETL优化Oracle到SQL Server

我有一个关于优化在 Oracle 和 SQL Server 之间传输 10 亿到 13 亿条记录(未来容量高达 20 亿条或更多记录)的好方法的问题。

*编辑*我忘了提到——这个过程需要每周运行一次,在 1 个周末的时间范围内。

目前我计划使用 ETL 包。我现在正在寻找 Talend 或 SSIS。

这里是数据设置。数据驻留在Oracle上,需要先采集再打包再传输。

目前我的流程是这样的: 1.) 一个存储过程提取所有数据并将其重新打包到一个 oracle 表中。2.) ETL 将扫描此表并将其移动到 SQL Server DB。3.) Oracle 和 SQL Server 上的表是相同的。

我正在寻找有关优化流程的一些想法。将插入优化到 SQLserver 的好方法是什么?

1.) 我想只是简单地将表放在 SQL Server 上,然后将表创建为 select * from oracle_table

2.) 重新设计存储过程,使其在 ETL 中运行(使我不必插入 oracle),然后直接插入 SQL Server -- 在使用 Talend 进行低容量测试时(我不能说 SSIS ) 我遇到了一些性能问题 - 重组过程需要更长的时间来提取数据,然后直接在 Oracle 上调用它。这是正常的,还是我搞砸了优化?

3.) 有没有更好的方法来进行我不知道的海量数据传输?

任何建议都会很棒。我认为链接服务器在这里是一种选择,但没有设置,而且我以前从未设置过。

任何要点/提示都会很棒,因为我对这整个事情还很陌生。

sql-server oracle optimization ssis etl

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

如何将提取的十进制日期转换为oracle中的Datetime

我从EXCEL文件中提取日期,该文件是42885.4253360301excel格式的日期DD-MON-RR HH:MI:SS UTC.我想将十进制值转换为datetime使用oracle函数.如何进行?

oracle plsql etl data-conversion

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

将 Tableau 连接到 Looker 数据库

我使用 Looker 管理存储在 Amazon RedShift 数据库中的数据。虽然 Looker 具有仪表板功能,但我想使用 Tableau 来实现更好的可视化。有什么方法可以将 Tableau 连接到 Looker 数据库。
(PS:我不希望将 Tableau 直接连接到 RedShift/S3,因为这会将我的数据暴露给 Tableau 服务器)。谢谢你。

etl tableau-api parallel-data-warehouse looker

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

如何在胶粘作业中添加当前时间戳(额外的列),以便输出数据具有额外的列

How to I add a current timestamp (extra column) in the glue job so that the output data has an extra column. In this case:

Schema Source Table: Col1, Col2

After Glue job.

Schema of Destination: Col1, Col2, Update_Date(Current Timestamp)

etl amazon-web-services pyspark aws-glue

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

将数据从AWS Athena导入RDS实例

目前,我正在侦听来自AWS Kinesis的事件并将其写入S3。然后,我使用AWS Glue和Athena查询它们。

有没有办法将数据(可能经过某种转换)导入RDS实例?

etl amazon-s3 amazon-rds amazon-athena

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

如何从CSV文件中仅提取和路由指定的列并删除所有其他列

我想从CSV文件中提取一些字段及其值,然后删除/删除文件中的所有其他字段。请帮忙。我认为我们可以使用RoutText处理器。请告诉我如何编写仅对指定字段进行路由的正则表达式,并删除所有其他内容。谢谢

示例-从附带的快照中,我只想沿着机智命中值(每个记录/行)路由“名字,姓氏和兄弟姐妹”字段。删除其余的列,例如“州,年龄,住所编号,国家/地区,性别”。

请告诉我什么是正确的处理器,以及为了实现此目的而使用的配置属性。谢谢

逗号分隔的CSV文件快照

附加快照以供参考。

regex apache etl apache-nifi

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

Apache NiFi中的处理器属性和Flowfile属性之间的差异

我目前的理解是NiFi处理器属性特定于该处理器。因此,向处理器添加新属性将仅在该处理器中可见,而不会传递给以后的处理器块?

这就是为什么UpdateAttribute有必要添加在流文件中遍历数据流时保留在其中的元数据的原因:

更新属性NiFi处理器模块

那么,允许用户在处理器中添加自定义属性(超出该处理器执行所定义和要求的属性)的价值是什么?它类似于创建可以在其他属性中使用的变量吗?

处理器块属性

etl dataflow apache-nifi hortonworks-dataflow

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