标签: etl

MySQL - 行到列

我试图搜索帖子,但我只找到了SQL Server/Access的解决方案.我需要一个MySQL(5.X)的解决方案.

我有一个表(称为历史)有3列:hostid,itemname,itemvalue.
如果我执行select(select * from history),它将返回

   +--------+----------+-----------+
   | hostid | itemname | itemvalue |
   +--------+----------+-----------+
   |   1    |    A     |    10     |
   +--------+----------+-----------+
   |   1    |    B     |     3     |
   +--------+----------+-----------+
   |   2    |    A     |     9     |
   +--------+----------+-----------+
   |   2    |    c     |    40     |
   +--------+----------+-----------+
Run Code Online (Sandbox Code Playgroud)

如何查询数据库以返回类似的内容

   +--------+------+-----+-----+
   | hostid |   A  |  B  |  C  |
   +--------+------+-----+-----+
   |   1    |  10  |  3  |  0  |
   +--------+------+-----+-----+
   |   2    |   9  |  0  |  40 …
Run Code Online (Sandbox Code Playgroud)

mysql sql etl pivot-table crosstab

169
推荐指数
8
解决办法
22万
查看次数

将Excel电子表格列导入SQL Server数据库

我有一个Excel电子表格,我想将选择列导入我的SQL Server 2008数据库表.该向导没有提供该选项.

是否存在任何简单的代码选项?

sql-server import excel etl sql-server-2008

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

将csv文件的一些列复制到表中

我有一个包含10列的CSV文件.创建一个包含4列的PostgreSQL表后,我想将10列中的一些列复制到表中.

我的CSV表的列如下:

x1 x2 x3 x4 x5 x6 x7 x8 x9 x10
Run Code Online (Sandbox Code Playgroud)

我的PostgreSQL表的列应该是这样的:

x2 x5 x7 x10
Run Code Online (Sandbox Code Playgroud)

csv postgresql etl copy

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

适用于 Visual Studio 2022 的 SSIS 扩展

我已经下载并安装了 Visual Studio 2022。然后单击“修改”

添加SSDT

在这里你可以看到

现在,我想创建SSIS包,为此我已经启动了VS22,并且在“管理扩展”中当我尝试查找Microsoft SSIS时,我无法找到。

为此,我从市场下载了 SSIS:

但是当我尝试安装它时,它会抛出以下错误:

在此输入图像描述

sql-server ssis etl sql-server-data-tools visual-studio-2022

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

F#和"企业级"报告

根据您的实际经验,白皮书或其他受人尊敬的可参考研究,F#目前是企业/企业级报告的可行工具吗?

注意:在投票将此问题视为"不具有建设性"之前,请阅读底部的位.

背景
我目前在一家大公司工作,该公司大量使用许多不同的报告工具,包括(但不限于)SAS,Cognos,SSRS甚至是一小部分COBOL.每个工具都有其合适的位置,其中许多工具在功能设置等方面具有相同的功能.我们的大多数工具都能够相对轻松地输出到PDF,Excel和数据库,并且在这些情况下工作得非常好.

不幸的是,我的组织和许多人一样,使用Excel电子表格,喜欢它或者讨厌它,我们花了很多时间编写.NET控制台应用程序来从Excel电子表格中提取信息并将信息插入到Excel电子表格中.(我对争论这种方法的优点或不利感兴趣.它就是这样,我无法改变它.)

与上面列出的报告技术一样,当涉及到电子表格中的高级ETL时,它们就会失败.它们并非专为它而设计,虽然它们完全擅长将报表格式化为Excel电子表格,但它们并不擅长更新现有电子表格或以某种非常具体的方式提取数据(仅提取以红色突出显示的值,例如).因此,我们最终编写了大量的.NET控制台应用程序来完成这项工作.(再次 - 对辩论方法不感兴趣.它就是它.我知道 - 我也不喜欢它.)

在我看来,.NET是一个非常棒的框架,足够灵活,可以处理几乎所有的编程任务,因此我们理论上可以处理.NET中的所有报告.但是 - 尝试处理.NET中的所有报告需要太长时间.我们必须自己编写所有的样板材料.我喜欢利用我们已有的实际报告工具的强大功能,简单性和健壮性.

因此,我们最终为单个任务编写两个应用程序 - 例如,SAS作业从多个数据源加载数据,执行转换并将结果存储在永久或临时位置,以及第二个.NET作业结果并将它们加载到电子表格中.(我知道.)


在过去的几年里,我一直看到并听到很多关于F#的观点,我自己也有点涉足过它.我在大学里学过OCAML,我喜欢函数式编程.如果需要,我很乐意在单一平台(如果不是单一语言)上为特定报告进行所有编程.现在的问题,虽然是F#语言和.NET框架是否完全准备好提供企业级报告-和我说的是报告必须运行准确高效.微软当然很难卖掉它,但我想知道在其他报告技术方面有经验的人是否真的在生产环境中尝试过.它如何与其他报告技术进行比较,是否可以轻松集成到企业环境中?你是如何解决安全问题的?做得对,F#需要什么样的内存配置文件(我们说的是数百万条记录)?它是否很好地处理表格数据?它有效吗?维护有多容易(特别是如果代码增长)?什么样的第三方附加组件,插件等需要什么才能使某些东西工作(或者它可以开箱即用)?与其他报告系统相比,需要多少工作(编程时间等)(类似结果)?

如果您没有F#的经验,或者您只使用F#,那么我对您的意见并不特别感兴趣 - 我想听听那些实际弥合差距的人,并且可以从经验,机会和使用F#作为大数据的报告引擎(数百万条记录,输出为各种格式)的缺陷.

我已经看到一些问题已经涵盖了一些基础:

但他们已经有几年了.以后的几个版本,是F#的任务吗?或者我是一只狗吠叫错误的树?

编辑

为了清楚起见,我对F#新的信息丰富的编程特别感兴趣.在F#3.0之前,它只是一项有趣的技术,但F#最近增加了使用数据库类型提供程序及其查询表达式的功能,使其看起来像是其他报表创作技术的可行替代方案.微软当然暗示它是.

一个可接受的答案将包含实施F#内置的企业级报告引擎的第一手账户(或对案例研究的参考),以及与任何绩效收益或损失等的其他报告技术的比较.它不会必须过于详细 - 足以说服普通(有能力的)经理F#将是批量/批量数据处理的适当/不适当的技术.它完成了吗?谁干的?结果是什么?实施有多复杂(相对于类似技术)?它表现良好吗?


我为什么要问一个主观问题?
像大多数优秀的stackoverflow成员一样,我经常投票来关闭主观问题.根据常见问题解答,应该避免主观问题,但不要完全禁止.常见问题解答链接到我试图遵循的六个主要问题指南.请在投票结束此问题之前阅读这些指南.

.net f# reporting etl

35
推荐指数
3
解决办法
2824
查看次数

如何在Airflow中设置DAG之间的依赖关系?

我正在使用Airflow来安排批处理作业.我有一个每晚运行的DAG(A)和每月运行一次的另一个DAG(B).B取决于A已成功完成.但是B需要很长时间才能运行,因此我希望将其保存在单独的DAG中以便更好地进行SLA报告.

如何在同一天成功运行DAG A,使DAG B运行?

python etl airflow

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

如何在MySQL中将结果表转换为JSON数组

我想在MySQL中将结果表转换为JSON数组,最好只使用普通的MySQL命令.例如查询

SELECT name, phone FROM person;

| name | phone |
| Jack | 12345 |
| John | 23455 |
Run Code Online (Sandbox Code Playgroud)

预期的JSON输出将是

[
  {
    "name": "Jack",
    "phone": 12345
  },
  {
    "name": "John",
    "phone": 23455
  }
]
Run Code Online (Sandbox Code Playgroud)

有没有办法在普通的MySQL中做到这一点?

编辑:

有一些答案如何使用例如MySQL和PHP,但我找不到纯MySQL解决方案.

mysql json etl data-conversion

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

使用Interop从excel获取Last非空列和行索引

我试图使用Interop Library从excel文件中删除所有额外的空白行和列.

我按照这个问题使用Interop从Excel文件中删除空行和列的最快方法,我发现它很有帮助.

但我有excel文件包含一小组数据,但有很多空行和列(从最后一个非空行(或列)到工作表的末尾)

我尝试在Rows和Columns上循环,但是循环需要几个小时.

我试图得到最后一个非空的行和列索引,所以我可以删除一行中的整个空范围

XlWks.Range("...").EntireRow.Delete(xlShiftUp)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

注意:我正在尝试获取包含数据的最后一行以删除所有额外的空格(在此行或列之后)

有什么建议?

c# vb.net excel ssis etl

29
推荐指数
4
解决办法
4501
查看次数

单元测试大块代码(映射,翻译等)

我们对大部分业务逻辑进行单元测试,但仍然坚持如何最好地测试我们的一些大型服务任务和导入/导出例程.例如,考虑将工资单数据从一个系统导出到第三方系统.要以公司需要的格式导出数据,我们需要达到~40个表,这会产生一个创建测试数据和模拟依赖关系的噩梦.

例如,请考虑以下(~3500行导出代码的子集):

public void ExportPaychecks()
{
   var pays = _pays.GetPaysForCurrentDate();
   foreach (PayObject pay in pays)
   {
      WriteHeaderRow(pay);
      if (pay.IsFirstCheck)
      {
         WriteDetailRowType1(pay);
      }
   }
}

private void WriteHeaderRow(PayObject pay)
{
   //do lots more stuff
}

private void WriteDetailRowType1(PayObject pay)
{
   //do lots more stuff
}
Run Code Online (Sandbox Code Playgroud)

我们在这个特定的导出类中只有一个公共方法 - ExportPaychecks().这真的是唯一一个对调用这个类的人有意义的行为......其他一切都是私有的(约80个私有函数).我们可以将它们公开用于测试,但是我们需要模拟它们来单独测试每个(即你不能在没有模拟WriteHeaderRow函数的情况下在真空中测试ExportPaychecks.这也是一个巨大的痛苦.

由于这是单个导出,对于单个供应商而言,将逻辑移入域中是没有意义的.逻辑在此特定类之外没有域重要性.作为测试,我们构建了接近100%代码覆盖率的单元测试......但是这需要将大量的测试数据输入到存根/模拟对象中,加上超过7000行代码,因为存根/模拟我们的许多依赖项.

作为HRIS软件的制造商,我们拥有数百种进出口产品.其他公司真的对这种类型的东西进行单元测试吗?如果是这样,是否有任何捷径可以减少痛苦?我很想说"没有单元测试导入/导出例程",只是稍后实现集成测试.

更新 - 感谢所有答案.我喜欢看到的一件事就是一个例子,因为我还没有看到有人可以将像大文件导出这样的东西变成一个易于测试的代码块,而不会把代码弄得一团糟.

c# unit-testing etl

28
推荐指数
4
解决办法
2945
查看次数

DAG(有向无环图)动态作业调度程序

我需要管理ETL任务的大型工作流程,其执行取决于时间,数据可用性或外部事件.在执行工作流程期间,某些作业可能会失败,并且系统应该能够重新启动失败的工作流程分支,而无需等待整个工作流程完成执行.

python中有没有可以处理这个的框架?

我看到几个核心功能:

  • DAG建筑
  • 执行节点(运行shell cmd,等待,记录等)
  • 能够在执行期间在父DAG中重建子图
  • 能够在父图运行时手动执行节点或子图
  • 在等待外部事件时挂起图执行
  • 列出作业队列和作业详细信息

Oozie这样的东西,但更通用的目的和python.

python etl scheduling directed-acyclic-graphs oozie

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