标签: etl

SSIS - 转换为 DataTable 的对象变量变空

我正在尝试创建一个对象变量,该变量将保存来自Execute SQL Task 的集合。该集合将在整个 ETL 包的多个脚本任务中使用。

问题是,在Fill第一个Script Task 的第一个之后,对象变量变空。以下是我如何将变量用于数据表的代码:

try
            {
                DataTable dt = new DataTable();

                OleDbDataAdapter da = new OleDbDataAdapter();

                da.Fill(dt, Dts.Variables["reportMetrics"].Value);

                Dts.TaskResult = (int)ScriptResults.Success;
            }
            catch (Exception Ex)
            {
                MessageBox.Show(Ex.Message);
                Dts.TaskResult = (int)ScriptResults.Failure;
            }
Run Code Online (Sandbox Code Playgroud)

在整个ETL包中,Script Task组件都会有这段代码。由于变量在第一个之后变空Fill,因此我无法重用对象变量。

我猜测 Fill 方法与此有关。

谢谢!

c# ssis etl

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

管理数据仓库中的代理键

我想构建一个数据仓库,并且想使用代理键作为事实表的主键。但问题是,就我而言,事实表应该更新。

第一个问题是如何在源系统中找到自然键对应的自动生成的代理键?我看到一些答案提到查找表存储自然键和代理键之间的对应关系,但我不明白它们到底是如何实现的。该表应该存储在哪里:数据仓库本身还是其他地方?

还有第二个问题。源系统已包含事实的代理键,但它们具有 16 字节的 UUID 数据类型。并且事实的数量不太可能超过最大整数值(4 字节)。我应该使用源系统提供的 UUID 来简化 ETL,还是应该执行更复杂的 ETL 并实现自己的整数代理键以获得更好的性能?

database-design etl data-warehouse

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

如何使用 Boto3 从 Amazon S3 读取大型 JSON 文件

我正在尝试从 Amazon S3 读取 JSON 文件,其文件大小约为 2GB。当我使用该方法时.read(),它给了我MemoryError.

这个问题有什么解决办法吗?任何帮助都可以,非常感谢!

json etl amazon-s3 boto3

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

SSIS - SSIS 挂起时的最佳实践

昨晚我的 SSIS 挂了。我不太确定为什么。今天早上,我根据输出确定了哪个包挂起。我正在查看sp_who2,但看不到在运行作业的用户下运行的任何进程。
我想知道当我的 SSIS 挂起时我应该做什么。它当前仍在运行,但似乎没有运行任何东西。

sql-server logging ssis etl ssis-2012

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

在 Python 中从 JSON 构建表

我正在尝试使用 Python 将 JSON 文本转换为标准数据表,但是我对此几乎没有经验,当我在线搜索解决方案时,我发现我很难实现任何解决方案。

我试图使用ast.literal_eval但一直收到我无法解决的错误。

raise ValueError('畸形节点或字符串:' + repr(node))

JSON:

{
    "duration": 202.0,
    "session_info": {
        "activation_uuid": "ab90d941-df9d-42c5-af81-069eb4f71515",
        "launch_uuid": "11101c41-2d79-42cc-bf6d-37be46802fc8"
    },
    "timestamp": "2019-01-18T11:11:26.135Z",
    "source_page_view_reference": {
        "page_uuid": "1bede017-7b77-461d-82ef-a6bbcfdae4d7",
        "page_id": "/group/More",
        "page_name": "More",
        "view_uuid": "9580f3c5-1116-432a-83bc-9d0b5337f661",
        "page_type": "Native"
    },
    "analytics_sdk": {
        "component_id": "datasdk",
        "component_version": "1.0.52"
    },
    "treatment_id": "mockTreat",
    "client_event_id": "2b3cd878-6932-410b-b1ad-bc40ae888fdc",
    "campaign_id": "mockCamp"
}
Run Code Online (Sandbox Code Playgroud)

所需的表格格式(修剪值以适合显示目的):

Duration | session_info.activation_uuid | session_info.launch_uuid | timestamp  | etc
   202.0 |  ab90d941-df9d-42c5-af81-069 | 11101c41-2d79-42cc-bf6d- | 2019-01-18 | etc
Run Code Online (Sandbox Code Playgroud)

任何直接的帮助,或者只是学习这方面的良好资源,将不胜感激。我很难找到直接与我想要从一系列类似的 JSON 中创建表格的内容相关的项目。

python json etl

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

将 Google Analytics 数据提取到 S3 或 Redshift

我正在寻找将 Google Analytics 数据(以及历史数据)摄取到 Redshift 的选项。欢迎任何有关工具、API 的建议。我在网上搜索并发现 Stitch 作为 ETL 工具之一,如果您有的话,请帮助我更好地了解此选项和其他选项。

etl google-analytics amazon-redshift google-analytics-firebase data-ingestion

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

如何在 AWS Glue 中按日期时间对数据进行分区?

目前的设置:

  • 带有 json 文件的 S3 位置。所有文件存储在同一位置(无日/月/年结构)。

  • Glue Crawler 读取目录表中的数据

  • Glue ETL 作业将数据转换并存储到 s3 中的镶木地板表中
  • Glue Crawler 从 s3 parquet 表中读取并存储到 Athena 查询的新表中

我想要实现的是按天 (1) 分区的镶木地板表和 1 天的镶木地板表在同一个文件 (2) 中。目前,每个 json 文件都有一个镶木地板表。

我该怎么办?

值得一提的是,数据中有一个 datetime 列,但它是一个 unix 纪元时间戳。我可能需要将其转换为“年/月/日”格式,否则我假设它会再次为每个文件创建一个分区。

非常感谢你的帮助!!

etl amazon-web-services aws-glue aws-glue-data-catalog

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

使用多个间隔选择 Pandas 中的行(pd.Interval 范围对象)

我需要使用 pd.Interval 跨多个 bin 范围选择记录。

df = pd.DataFrame({'my_col': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]})
df['my_col_bin'] = pd.cut(x=df['my_col'], bins=[0, 3, 6, 9, 12], right=False, include_lowest=True)
Run Code Online (Sandbox Code Playgroud)
    my_col  my_col_bin
0   1   [0, 3)
1   2   [0, 3)
2   3   [3, 6)
3   4   [3, 6)
4   5   [3, 6)
5   6   [6, 9)
6   7   [6, 9)
7   8   [6, 9)
8   9   [9, 12)
9   10  [9, 12)
10  11  [9, 12)
Run Code Online (Sandbox Code Playgroud)

例如,我想选择范围 [3, 12) 内的所有记录。我想使用单个 pd.Interval …

python etl pandas

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

在股票市场数据中添加缺失的日期行以保持 pandas 数据帧的连续性

所以我有大约 13 年的股市每日低点高点收盘数据。问题是市场有时会在其间休市,因此周一至周五有时可能不会连续出现。往下看

日期 打开 高的 低的 关闭 调整收盘价
0 2007年9月17日 周一 6898 6977.2 6843 6897.1 6897.100098
1 2007年9月18日 周二 6921.15 7078.95 6883.6 7059.65 7059.649902
2 2007年9月19日 周三 7111 7419.35 7111 7401.85 7401.850098
3 2007年9月20日 周四 7404.95 7462.9 7343.6 7390.15 7390.149902
4 2007年9月21日 星期五 7378.3 7506.35 7367.15 7464.5 7464.5
5 2007年9月25日 周二 7658.5 7694.25 7490.2 7629.15 7629.149902
7 2007年9月26日 周三 7647.1 7829.85 7591.8 7755.9 7755.899902
8 2007年9月28日 星期五 7838.25 8082.85 7836.05 8042.2 8042.200195
9 2007年10月1日 周一 8008.55 8085.15 7913.3 …

python etl numpy dataframe pandas

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

Google BigQuery 查询超出资源限制

我正在为我的公司建立一个原始数据仓库,并且我已经成功地将联系人、公司、交易和关联数据从我们的 CRM 提取到 bigquery 中,但是当我将这些数据连接到一个主表中以通过我们的 BI 平台进行分析时,我不断收到错误:

Query exceeded resource limits. This query used 22602 CPU seconds but would charge only 40M Analysis bytes. This exceeds the ratio supported by the on-demand pricing model. Please consider moving this workload to the flat-rate reservation pricing model, which does not have this limit. 22602 CPU seconds were used, and this query must use less than 10200 CPU seconds.

因此,我正在寻求优化我的查询。我已经删除了所有GROUP BY命令ORDER BY,并尝试使用WHERE命令进行额外的过滤,但这对我来说似乎不合逻辑,因为它会增加处理需求。

我当前的查询是:

SELECT 
    coy.company_id,
    cont.contact_id,
    deals.deal_id, …
Run Code Online (Sandbox Code Playgroud)

sql etl query-optimization google-bigquery

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