我正在尝试编辑一个 ETL 包(SSIS),该包查询 SQL 表并为每个 StationID 输出 csv 文件,但我无法理解下面的查询定义中如何使用问号。我明白 ?被用作参数,但我不明白它在下面的日期函数中是如何使用的:
SELECT TimeSeriesIdentifier, StationID, ParameterID FROM dbo.EtlView WHERE
LastModified > DATEADD(hour, ?*-1, GETDATE())
AND StationID LIKE
CASE WHEN ? = 0 THEN
StationID
ELSE
?
END
Run Code Online (Sandbox Code Playgroud) 我正在使用 SSIS 2019,并且能够使用 ADO.Net 连接管理器执行 SQL 命令。我想在数据流任务内的脚本组件中使用 OLEDB 连接管理器,但收到以下错误:
System.InvalidCastException:无法将类型“System.__ComObject”的 COM 对象强制转换为类类型“System.Data.SqlClient.SqlConnection”。表示 COM 组件的类型实例不能转换为不表示 COM 组件的类型;但是,只要底层 COM 组件支持对接口 IID 的 QueryInterface 调用,它们就可以转换为接口。
有人可以告诉我我们是否可以在数据流的 SSIS 脚本组件中使用 OLEDB 连接吗?
这是连接字符串的代码
public override void PreExecute()
{
string conn = this.Connections.Connection.ConnectionString;
}
Run Code Online (Sandbox Code Playgroud)
我在脚本 C# 代码中没有收到构建错误。但在脚本组件中出现错误。
{{
config (
pre_hook = before_begin("{{audit_tbl_insert(1,'stg_news_sentiment_analysis_incr') }}"),
post_hook = after_commit("{{audit_tbl_update(1,'stg_news_sentiment_analysis_incr','dbt_development','news_sentiment_analysis') }}")
)
}}
select rd.news_id ,rd.title, rd.description, ns.sentiment from live_crawler_output_rss.rss_data rd
left join
live_crawler_output_rss.news_sentiment ns
on rd.news_id = ns.data_id limit 10000;
Run Code Online (Sandbox Code Playgroud)
这是我在 DBT 中的模型,它配置了前置和后置挂钩,它们引用宏来插入和更新审计表。
我的宏
{ % macro audit_tbl_insert (model_id_no, model_name_txt) % }
{% set run_id_value = var('run_id') %}
insert into {{audit_schema_name}}.{{audit_table_name}} (run_id, model_id, model_name, status, start_time, last_updated_at)
values
({{run_id_value}}::bigint,{{model_id_no}}::bigint,{{model_name_txt}},'STARTED',current_timestamp,current_timestamp)
{% endmacro %}
Run Code Online (Sandbox Code Playgroud)
这是我第一次使用这个宏,我看到以下错误。
Compilation Error in model stg_news_sentiment_analysis_incr
(models/staging/stg_news_sentiment_analysis_incr.sql)
'audit_tbl_insert' is undefined in macro run_hooks (macros/materializations/hooks.sql)
called by macro …Run Code Online (Sandbox Code Playgroud) 我有几个文件,每个我需要导入SQL Server 2005的CSV数据大约5k.
这对于DTS来说过去很简单.我之前试过使用SSIS,它似乎是努力的10倍,我最终放弃了.
将csv数据导入sql server最简单的方法是什么?理想情况下,工具或方法也会创建表,因为其中有大约150个字段,这将简化操作.
有时使用此数据,可能需要手动修改1或2行,因为它们未正确导入.
我正在插入像' $5.99'(或尝试插入)的值到money字段中.它不喜欢美元符号
我实际上是从csv文件进行批量插入.csv文件中的一列中money有一个美元符号
你可以帮我弄清楚怎么做这个批量插入$标志到一个money字段?
Msg 4864, Level 16, State 1, Line 1
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 1, column 2 (pricepaid).
Run Code Online (Sandbox Code Playgroud)
我怎么摆脱这个标志?
我在同一数据流任务中有5个独立的数据流,每个数据流都有源和目的地.如何使它们顺序运行.它们似乎并行运行.我可以在不同的数据流任务中完成它.但是我怎样才能在单个数据流任务中完成它
我正在使用BIML生成一个协调包,它将执行多个SSIS包(一些是并行的,一些是线性的).(我正在使用VS2012和SSIS项目部署模型)
使用下面的代码,我可以生成两个虚拟执行包任务:
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<Packages>
<Package ConstraintMode="Linear" AutoCreateConfigurationsType="None" ProtectionLevel="DontSaveSensitive" Name="Coordination">
<Parameters>
<Parameter Name="param1" DataType="Int64" IsRequired="true" IsSensitive="false">1</Parameter>
</Parameters>
<Tasks>
<Container Name="SEQ container" ConstraintMode="Parallel">
<Tasks>
<ExecutePackage Name="Run Package1">
<ExternalProjectPackage Package="Package1.dtsx" />
</ExecutePackage>
<ExecutePackage Name="Run Package2">
<ExternalProjectPackage Package="Package2.dtsx" />
</ExecutePackage>
</Tasks>
</Container>
</Tasks>
</Package>
</Packages>
</Biml>
Run Code Online (Sandbox Code Playgroud)
BIDS Helper生成协调包,没有任何错误.
完成协调包的下一步是使用package参数来控制已执行的包.我没有看到任何传递参数"param1"的方法.
有没有办法在BIML中传递参数?(在执行SQL任务中,我看到此选项,但不在此处)
更新:有一个新版本的BIDSHelper,对项目参数有正确的支持......-> http://bidshelper.codeplex.com/releases/view/112755
我有一个场景,我只在我有大于2的行数时才处理我的工作.我在我的工作中使用了MySqlInput和tMap以及tLog组件.
最近,我有一个项目需要通过将SSIS包和excel VBA宏组合成一个来自动化流程.以下是步骤:
我有一个SSIS包将所有视图结果导出到从sql server到excel的多个单独文件.所有文件都保存在同一位置.
我有一个excel VBA宏执行清理删除每个导出的Excel文件中的所有空表.
我还有一个excel VBA宏执行合并任务,将所有excel文件合并到主excel文件中.此主Excel文件包含所有结果集,并且相应地保存在不同选项卡上的每个结果集.
由于我手动运行第2步和第3步,所以我的问题是如何将步骤2和步骤3与步骤1连接起来将它们组合为一个自动化过程.
请告诉我有关实现这一目标的可能性!非常感谢.
我是ETL世界的新手,我正在尝试安排从另一家公司发送给我们的数据文件,以便它可以ETLed到数据仓库.我将通过SQL Server 2014上的Integration Services开发ETL.基本上,我有五种类型的记录:帐户记录(与个人帐户相关的元记录),购买记录等.
为方便起见,帐户记录只提供有关帐户持有人的信息(姓名,帐户ID,性别等),购买记录显示购买历史及其金额等
我的问题是:向我们发送记录的公司问我:你想如何安排记录?
例如:
Person X
Account Records....
Purchase Records...
...
Person Y
Account Records....
Purchase Records...
Run Code Online (Sandbox Code Playgroud) etl ×10
sql-server ×6
ssis ×6
sql ×2
biml ×1
csv ×1
dbt ×1
excel ×1
if-statement ×1
import ×1
python ×1
script-task ×1
ssms ×1
talend ×1
vba ×1