标签: flat-file

如何说服编程团队放弃旧方法?

这更像是一个面向业务的编程问题,我似乎无法弄清楚如何解决.我与一个与BASIC合作超过20年的程序员团队合作.我被引进来帮助在.NET中编写相同的软件,只有更新和现代实践.问题是,我似乎无法让任何其他3个团队成员(所有BASIC程序员,尽管现在也有.NET)了解如何正确地执行关系数据库.这是他们不理解的事情:

我们基本上有一个跟踪客户标签信息的交易.我们需要能够跟踪当前交易和过去的交易.在旧系统中,使用平面文件数据库,其具有包含客户的基本当前交易的记录的一个表,以及包含客户的所有先前交易以及重要货币信息的另一个交易.为了防止冗余,他们会用历史记录事务覆盖当前事务 - (历史文件首先更新,然后更新当前事务.)这是完全不必要的,因为你只需要一个事务表,但我的主管或我的其他任何两个co工作者似乎无法理解这一点.我怎么能说服他们看到光线让我们赢了' 必须做大量的工作并最终击中数据表太多次?感谢您的投入!

basic relational flat-file

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

创建SSIS作业时,"所选数据源位于远程计算机上"错误

我正在我的工作站上开发SSIS作业,数据流任务在我的本地工作站上打开逗号分隔的平面文件,并将数据导入远程服务器上的SQL服务器数据库.

当我尝试在SQL目标对象中选择目标表时,它给出了以下错误:

所选数据源位于远程计算机上.批量插入操作可以在本地计算机上执行.

如何解决问题,以便我可以测试我的SSIS包.

import ssis sql-server-2005 flat-file dataflowtask

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

采样大数据文件

我目前在Data Warehouse程序员的位置工作,因此必须通过ETL过程放置大量的平面文件.当然在加载文件之前我必须知道它的内容,问题是大多数文件大于1 GB并且我无法使用亲爱的老朋友"notepad"打开它们.开玩笑.我通常使用VIM或Notepad ++,但打开文件仍需要一段时间.我可以使用VIM或其他编辑器对文件执行"部分"读取吗?

PS我知道我可以为文件的"数据样本"编写一个10行内容脚本,但是说服团队成员使用编辑器的功能而不是我编写的脚本会更简单.

感谢您提供的任何见解.

text-editor editor flat-file

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

SSIS中是否存在用于平面文件源的WHERE子句功能?

我对SSIS知之甚少,而且我已经尽可能多地用Google搜索了.我真的很感激我能得到的任何帮助.

我正在构建一个SSIS包,我只想从平面文件源中插入一组特定的数据.有没有办法使用WHERE子句只提取特定数据?

例如,如何将此查询转换为数据流任务?

INSERT INTO #TempTable (Column1, Column2)
SELECT Column1, Column2
FROM TEXTFILESOURCE
WHERE Column1 <> 'ABC'
Run Code Online (Sandbox Code Playgroud)

这可以通过数据流任务来实现吗?

sql ssis insert flat-file where-clause

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

如何使用MSpec有效地测试固定长度的平面文件解析器?

我有这个方法签名: List<ITMData> Parse(string[] lines)

ITMData 有35个房产.

你会如何有效地测试这样的解析器?

问题:

  • 我应该加载整个文件(我可以使用System.IO)吗?
  • 我应该将文件中的一行放入字符串常量吗?
  • 我应该测试一条或多条线
  • 我应该测试ITMData的每个属性还是应该测试整个对象?
  • 我的测试命名怎么样?

编辑

我将方法签名更改为 ITMData Parse(string line).

测试代码:

[Subject(typeof(ITMFileParser))]
public class When_parsing_from_index_59_to_79
{
    private const string Line = ".........";
    private static ITMFileParser _parser;
    private static ITMData _data;

    private Establish context = () => { _parser = new ITMFileParser(); };

    private Because of = () => { _data = _parser.Parse(Line); };

    private It should_get_fldName = () => _data.FldName.ShouldBeEqualIgnoringCase("HUMMELDUMM");
}
Run Code Online (Sandbox Code Playgroud)

编辑2

我仍然不确定我是否应该每班只测试一个属性.在我看来,这允许我提供更多的规范 …

c# parsing unit-testing flat-file mspec

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

LOCK如何将日志写入平面文件?

读取平面文件的并发性几乎是无限的(如果我错了,请纠正我); 但是写入的并发性如何?考虑在PHP中编写一个简单的访问日志(用于访问),以附加一行以.结尾的访问详细信息\n

fopen(); // in append mode
fwrite();
fclose();
Run Code Online (Sandbox Code Playgroud)

由于我们有并发访问者,系统(一个用户是wbserver/php用户)如何同时写入视图日志?

我的困惑是:函数file_put_contents()(这是上述三个函数的包装)有一个lock(LOCK_EX)选项吗?使用这种锁定选项是否有益?这将如何影响日志写作?

更新:我的问题是关于LOCK最初如何工作/影响将日志写入文件.我不比较file_put_contentsfwrite; 甚至我的问题也不仅限于此PHP.问题是在写入过程中锁定文件.

php concurrency fopen flat-file fwrite

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

SQL数据库VS. 多个平面文件(数千个小CSV)

我们正在设计对当前系统(C++\CLI和C#)的更新.该系统将从~10K设备(在不久的将来)收集少量(~1Mb)数据量.目前,它们用于将设备数据保存在CSV(表格)中,并将所有这些数据存储在宽文件夹结构中.

仅插入数据(创建/附加到文件,创建文件夹)从不更新/删除.通过将许多CSV读取到外部程序(如Matlab)来完成数据处理.主要用于统计分析.

可以选择开始将此数据保存到MS-SQL数据库.处理时间(将CSV读取到外部程序)可能需要几分钟.

  • 我们该如何选择使用哪种方法?
  • 其中一种方法比另一种方法占用更多的存储空间吗?
  • 粗略地说,何时从数据库中读取原始数据变得比读取CSV更快?(10个文件,100个文件?...)

我很感激你的答案,欢迎利弊.

感谢您的时间.

c# database sql-server c++-cli flat-file

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

如何防止SSIS截断平面文件中最后一个数据行的最后一个字段?

我有一个解压缩并加载文本文件的SSIS包.它从调试器以及上传到生产环境的各种服务器上运行良好.

我现在的问题是:正在加载一个文件,一切都很好,但突然之间,在最后一个数据行(根据错误消息),最后一个字段被截断.我假设我们收到的文件可能搞砸了,打开它,一切都很好....

它是一个|分隔文件,没有文本限定符,也没有{CR}{LF}行分隔符.由于具有截断错误的字段是行中的最后一个字段(在本例中是整个文件的最后一个字段),因此其分隔符{CR}{LF}|.

该文件看起来质朴,我甚至将它加载到Excel中没有任何问题,也没有抱怨.我已经通过VS 2008中的deugger运行包的本地机器运行了这个文件,它运行得很好.有没有人对这样的行为有任何问题?我无法在它崩溃的环境中测试它,因为它是我们的生产环境,而且这些都是高峰时段....所以任何建议都非常感激.

错误信息:

Description: Data conversion failed. The data conversion for column "ACD_Flag" returned status value 4 and status text "Text was truncated or one or more characters had no match in the target code page.". End Error Error: 2013-02-01 01:32:06.32 Code: 0xC020902A Source: Load ACD file into Table HDS Flat File 1 [9] Description: The "output column "ACD_Flag" (1040)" failed because truncation occurred, and the truncation row disposition …

sql-server ssis flat-file sql-server-2008-r2

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

Clojure:存储和编译大型派生数据结构

我有一个大型数据结构,一棵树,占用大约2GB的内存.它包括叶子中的clojure集合,以及作为分支的refs.通过读取和解析大型平面文件并将行插入树中来构建树.然而,这需要大约30秒.有没有办法我可以构建一次树,将它发送到clj文件,然后将树编译到我的独立jar中,这样我就可以在树中查找值而无需重新读取大文本文件?我认为这将减少30秒的树构建,但这也将帮助我部署我的独立jar,而不需要文本文件来进行.

我的第一次摇摆失败了:

(def x (ref {:zebra (ref #{1 2 3 4})}))
#<Ref@6781a7dc: {:zebra #<Ref@709c4f85: #{1 2 3 4}>}>

(def y #<Ref@6781a7dc: {:zebra #<Ref@709c4f85: #{1 2 3 4}>}>)
RuntimeException Unreadable form  clojure.lang.Util.runtimeException (Util.java:219)
Run Code Online (Sandbox Code Playgroud)

tree serialization compilation clojure flat-file

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

特别适用于 javascript 的平面文件数据库系统

是否有任何与 JavaScript 配合良好的平面文件数据库系统,例如 JSON 格式或类似格式的数据库系统。我听说过mongodbcouchdb等,但似乎它的整个设置必须安装在计算机上。

当然,我不能使用sqlite,因为我认为我无法通过 javascript 操作它,而且我不想为我的小应用程序使用任何服务器端语言。

我也在谷歌上搜索过。基本上我只是在寻找平面文件数据库系统,我可以将其放入javascript应用程序的文件夹(即便携式数据库和应用程序)中,并且能够在任何地方使用它,例如在其他计算机上,而无需安装任何依赖项?那里存在这样的便携式平面文件数据库吗?

javascript database couchdb flat-file mongodb

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