我们是一家制造公司,我们聘请了几位数据科学家来寻找我们制造数据中的模式和相关性。我们希望向他们提供我们的报告数据库的副本(SQL 2014),但它必须在“清理过的”数据库中。形成。这意味着所有表名都转换为'表1','表2'等,每个表中的列名变为“列1'”,“列2”和“#39;列2'大约有100个表,有些表有30多列,有些表有2B +行。
我知道有一个很难的方法。这将是使用已清理的表名和列名手动创建每个表,然后使用类似SSIS的内容将行从一个表批量插入另一个表。由于需要手动SSIS列映射以及每个表的手动设置,这将是相当耗时且繁琐的。
我希望有人之前做过类似的事情,并且有更快,更有效的方式。
顺便说一下,'消毒'数据库没有索引或外键。此外,似乎有理由为什么我们想要这样做,但这是我们的制造总监和数据科学家所同意的,作为第一轮分析将涉及多轮。
答案 0 :(得分:3)
你基本上想要擦除数据和对象,对吗?这就是我要做的。
Backip / restore比SSIS和数据传输更快。
答案 1 :(得分:-2)
他们可以查看数据,但他们无法查看列名称?那有什么可能实现的呢?通过不泄露表名或列名,你有什么保护?数据科学家如何在没有上下文的情况下评估数据?没有FK,我看到的是名为colx的列上的一堆数字。期待完成什么?获得保密协议。考虑FK列customerID与materialID。模式具有广泛不同的含义和分析。我会将质量度量与materialID或shiftID相关联,但不与customerID相关联。
哦看看tableA.colB和tableX.colY之间存在关联。是的,客户是大学团队,他们使用铝蝙蝠。
最重要的是你剥离索引(在2B +行的表上),因此他们运行的分析将会很慢。这取得了什么成果?
至于所述问题,请进行备份恢复。使用系统表删除所有触发器,FK,索引和约束。不要忘记放弃触发器和约束 - 这可能会泄露一些商业秘密。然后重命名列,然后重命名表。