标签: etl

从DATETIME中提取TIME - informix

我已经失去了几个小时寻找一排解决方案,并没有找到它.我有一些价值(2013/01/03 07:13:26.000),我想提取时间部分得到这个:07:13:26所以我可以将它存储在另一个数据库中作为ETL过程中的阶段层.

当我尝试时select my_datetime::datetime hour to second,我仍然可以获得完整的时间戳.

谢谢.

编辑:对不起,源列是datetime,不是时间戳.

sql informix timestamp etl

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

对SSIS中表中的每一行执行存储过程

我想MyProc为表中的每一行执行一个带有某些输入参数的存储过程MyTable.每行的列将作为输入值的作用MyProc.

我如何在SSIS中实现这一目标?高层管理人员告诉我使用SSIS,我在这件事上没有任何选择.

所以..我做了以下事情:

  1. 创建包
  2. 创建执行SQL任务
    • 在ExecuteSQLTask中创建查询
  3. 创建Foreach循环容器
    • 在Foreach循环容器中创建数据流任务.
    • 内部数据流任务我创建了OLE DB源
    • 将OLEDBSource连接到派生列
    • 在步骤3.3中启用DataViewer连接

看起来在步骤2.1中为所有行调用了步骤3.1中的DataFlowTask

我想要的是在步骤3.1中调用DataFlowTask来为步骤2.1中的每行记录调用AS OPPOSED TO所有记录.

一旦这个工作,那么我打算在ExecuteSQLTask里面ForEachLoopContainer.

在此输入图像描述

sql-server ssis etl

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

SSIS包如何在每次包运行时将日期/时间戳添加到文件名

我有一个SSIS程序包,它将csv文件输出到该程序包将每天运行的位置。此刻,我查看文件是否存在以及是否删除,然后再创建一个新文件,这样我就不会创建一个已经存在的文件时出现任何错误-我要做的是创建一个新的csv并在文件名的末尾添加一个日期/时间戳。我不确定如何实现这一目标。

sql-server csv datetime ssis etl

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

在没有 SQL Server 集成服务的情况下运行 SSIS 包

我们可以在没有集成服务的情况下运行 SSIS 包吗?如果是,那么步骤是什么?如果否,那么最低要求是什么。

问题陈述如下:

我正在使用 SQL Azure 数据库来存储数据。我还有 Azure VM,我需要从中安排 SSIS 包。在此 Azure VM 中,我们没有安装集成服务。我的方法是在 Windows 调度程序中使用批处理文件来调度 SSIS 包。

我已经浏览了关于此的各种主题和帖子,但没有得到正确的答案。

sql-server ssis etl sql-server-2016 ssis-2016

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

为什么我的数据没有写入 Excel 目标?SSIS

我创建了一个 SSIS 包,将多行导出到 Excel,通常少于 200 行(包括标题)。当我在 VS2015 调试中运行它时,一切都变成绿色。

在此输入图像描述

我什至像这个问题所说的那样等待。

在此输入图像描述

尽管如此,除了标头之外,没有任何内容到达文件。

我知道数据不多,但我正在尝试将其自动化,因为数据最终会增长,而且我不想一直手动运行它。

有任何想法吗?我正在使用 SQL Server 2012 并使用 VS2015 编写了这个 SSIS 包。

sql-server excel ssis etl sql-server-data-tools

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

如何创建一个SSIS包,它将运行位于特定文件夹中的T-SQL查询列表?

我正在使用SQL Server 2012,我需要创建一个SSIS包来运行T-SQL特定文件夹中的查询列表.

我的T-SQL查询列表以'01(查询名称).sql'开头,该文件夹包含25个查询的列表.我需要从查询'01 ...'到'25 ......开始运行这些查询的任务

这可以在SSIS包中创建吗?如果是,我应该使用哪个任务?

更新1

我尝试了@Hadi建议的第一种方法,脚本任务抛出以下异常

错误:调用目标抛出了异常

SSDT中我的任务的屏幕截图

在此输入图像描述

脚本任务VB代码

 <Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute()> _
<System.CLSCompliantAttribute(False)> _
Partial Public Class ScriptMain
 Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase

 Public Sub Main()

    Using sr As New IO.StreamReader(Dts.Variables("strFilename").Value.ToString)

        Dts.Variables("strQuery").Value = sr.ReadToEnd()
        sr.Close()

    End Using

    Dts.TaskResult = ScriptResults.Success
End Sub

End Class
Run Code Online (Sandbox Code Playgroud)

变量

在此输入图像描述

t-sql sql-server ssis etl ssis-2012

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

Airflow - 如何在 for 循环的迭代之间设置任务依赖关系?

我正在使用 Airflow 在 for 循环中运行一组任务。循环的目的是遍历数据库表名列表并执行以下操作:

for table_name in list_of_tables:
    if table exists in database (BranchPythonOperator)
        do nothing (DummyOperator)
    else:
        create table (JdbcOperator)
    insert records into table (JdbcOperator, Trigger on One Success)
Run Code Online (Sandbox Code Playgroud)

在 Web UI 上,这看起来像:

for循环中的任务

目前,Airflow 是从上到下然后从左到右执行此图中的任务,例如:tbl_exists_fake_table_one--> tbl_exists_fake_table_two-->tbl_create_fake_table_one等。

但是,insert声明 forfake_table_two取决于fake_table_one正在更新,Airflow 当前未捕获该依赖项。(从技术上讲,这种依赖关系是由 的顺序捕获的list_of_table_names,但我相信在更复杂的情况下这会容易出错)

我希望与fake_table_one运行相关的所有任务,然后是与fake_table_two. 如何在 Airflow 中完成此操作?

完整代码如下:

for tbl_name in list_of_table_names:

    # Check if table exists by querying information tables
    def has_table(tbl_name=tbl_name):
        p …
Run Code Online (Sandbox Code Playgroud)

python etl airflow

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

Spark增量加载会覆盖旧记录

我需要通过使用Spark(PySpark)对表进行增量加载

这是示例:

第一天

id | value
-----------
1  | abc
2  | def
Run Code Online (Sandbox Code Playgroud)

第二天

id | value
-----------
2  | cde
3  | xyz
Run Code Online (Sandbox Code Playgroud)

预期结果

id | value
-----------
1  | abc
2  | cde
3  | xyz
Run Code Online (Sandbox Code Playgroud)

这可以在关系数据库中轻松完成,
想知道是否可以在Spark或其他转换工具(例如Presto)中完成?

etl presto apache-spark pyspark

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

如何修复“[OData Source [56]] 错误:无法从运行时连接管理器获取托管连接。” SSIS 中的错误?

我在运行从 SharePoint 列表中提取数据的 SSIS 时遇到问题。SSIS 包运行良好,直到 2 周前,突然包失败并出现以下错误:

[OData Source [56]] 错误:无法从运行时连接管理器获取受管连接。[SSIS.Pipeline] 错误:OData 源验证失败并返回错误代码 0xC020801F。[SSIS.Pipeline] 错误:一个或多个组件验证失败。错误:任务验证期间出现错误

尝试:

  1. 将包属性中的 64 位调试选项更改为 false
  2. http:// 代替 https://

我希望 SSIS 包能够从 SharePoint 列表中提取数据而不会出现任何问题,但最近面临上述错误消息,该消息已经运行了一年多。

服务器详细信息:Windows Server 2012 R2。

应用详情:Visual Studio 2010,.NET 框架 - 4.5


更新@ 2019-02-17

我们没有使用 Windows 身份验证,即使以管理员身份运行 SSDT,SSIS Passage 也会失败。我们能够在 ODATA 源中预览 Sharepoint 列表数据,但是包在触发时出现上述错误消息而失败

connection ssis etl sharepoint-list odata

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

无效语法:使用初始排序键创建表排序键自动

我正在尝试target-redshift用于将数据推送到aws-redshift

https://pypi.org/project/target-redshift/

airflow用来监控 etl 状态

这是错误日志,我不知道它是什么意思。几乎不存在 target-redshift 的在线文档。有什么办法可以解决这个错误吗?

[2021-03-07 15:04:11,841] {bash_operator.py:126} INFO - ERROR Exception writing records
[2021-03-07 15:04:11,841] {bash_operator.py:126} INFO - Traceback (most recent call last):
[2021-03-07 15:04:11,841] {bash_operator.py:126} INFO -   File "/usr/local/airflow/.virtualenvs/target-redshift/lib/python3.7/site-packages/target_postgres/postgres.py", line 300, in write_batch
[2021-03-07 15:04:11,841] {bash_operator.py:126} INFO -     {'version': target_table_version})
[2021-03-07 15:04:11,841] {bash_operator.py:126} INFO -   File "/usr/local/airflow/.virtualenvs/target-redshift/lib/python3.7/site-packages/target_postgres/sql_base.py", line 840, in write_batch_helper
[2021-03-07 15:04:11,841] {bash_operator.py:126} INFO -     metadata)
[2021-03-07 15:04:11,841] {bash_operator.py:126} INFO -   File "/usr/local/airflow/.virtualenvs/target-redshift/lib/python3.7/site-packages/target_postgres/postgres.py", line 588, in write_table_batch
[2021-03-07 15:04:11,841] …
Run Code Online (Sandbox Code Playgroud)

etl python-3.x amazon-redshift airflow

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