Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SSIS读取二进制文件_Ssis_Binary_Etl_Raw File - Fatal编程技术网

使用SSIS读取二进制文件

使用SSIS读取二进制文件,ssis,binary,etl,raw-file,Ssis,Binary,Etl,Raw File,我们有一个二进制文件(来自电信系统)。SSIS能读吗 从我所读到的原始文件源,它只能读取由原始文件目标创建的文件。正确吗?原始文件源 从: 原始文件源从文件中读取原始数据。因为数据的表示是源代码的本机表示,所以数据不需要翻译,也几乎不需要解析。这意味着原始文件源可以比平面文件和OLE DB源等其他源更快地读取数据 原始文件源用于检索以前由原始文件目标写入的原始数据。还可以将原始文件源指向仅包含列的空原始文件(仅元数据文件)。您可以使用原始文件目标生成仅元数据文件,而无需运行包 您可以通过以下链接

我们有一个二进制文件(来自电信系统)。SSIS能读吗

从我所读到的
原始文件源
,它只能读取由
原始文件目标
创建的文件。正确吗?

原始文件源 从:

原始文件源从文件中读取原始数据。因为数据的表示是源代码的本机表示,所以数据不需要翻译,也几乎不需要解析。这意味着原始文件源可以比平面文件和OLE DB源等其他源更快地读取数据

原始文件源用于检索以前由原始文件目标写入的原始数据。还可以将原始文件源指向仅包含列的空原始文件(仅元数据文件)。您可以使用原始文件目标生成仅元数据文件,而无需运行包

您可以通过以下链接检查原始文件的使用情况:

读取二进制数据 我认为在SSIS中,应该使用脚本组件作为源(在数据流任务中)来反序列化二进制文件,并实现自己的逻辑来生成输出列

您可以查看以下链接以获取更多信息:

脚本组件作为源

使用C#将二进制文件转换为字符串


是的,SSIS术语中的
原始文件
是一种专有的二进制格式,其主要目的是降低加载速度、可移植性和大小,这只能由SSIS引擎生成和使用


为了能够在SSIS中读取二进制文件,需要对其进行预处理。我的意思是,您需要获取关于从中提取数据的正确过程的文档。

此时的答案是,SSI无法读取与原始文件目的地生成的文件格式不同的二进制文件

您可以使用创建自定义SSIS组件类并将其注册以在SSIS中使用。
不适合胆小的人


另一种方法是编写程序,将二进制文件转换为SSI可以读取的文件,或将输出加载到数据库表中。SSI可以为您做的事情到此为止。

它是什么类型的文件?您可以使用脚本任务(C#)将其读入一个对象,然后确定它是什么类型的文件,并使用C#将数据读入datatable或其他对象以插入SQL,如果您正试图这样做,我想如果您阅读官方文档,您将得到答案,我们有关于二进制文件的完整文档。我们很清楚哪些字段是2字节整数,哪些是字节顺序(endianness),哪些是ASCII编码的文本,哪些字节表示位字段。看起来我们需要编写所有代码来生成要提供给SSIS的字段。@Hadi-我想这就是我说的。SSIS无法读取该文件。我们需要编写代码来生成SSIS可以理解的字段或文件。@噢,我误解了。祝你好运