标签: data-conversion

如何将存储在XML文件中的数据转换为关系数据库(MySQL)?

我有一些XML文件包含研究项目的数据,我需要运行一些统计数据.数据量接近100GB.

结构不是那么复杂(可能映射到关系模型中的10个表),并且鉴于问题的性质,这些数据永远不会再次更新,我只需要在易于运行查询的地方提供它上.

我已经阅读过有关XML数据库的信息,以及在其上运行XPATH风格查询的可能性,但我从未使用它们,而且我对它不太满意.将数据放在关系数据库中将是我的首选.

所以,我正在寻找一种方法将存储在XML中的数据转换为关系数据库(想想一个类似于生成的大的.sql文件mysqldump,但其他任何东西都会这样做).最终目标是能够运行SQL查询来处理数据.

经过一些研究,我几乎确信我必须自己写.但我觉得这是一个常见的问题,因此应该有一个已经做到这一点的工具.

那么,您是否知道将XML数据转换为关系数据库的任何工具?

PS1:

我的想法是这样的(它可以以不同的方式工作,但只是为了确保你得到我的观点):

  1. 分析数据结构(基于XML本身,或在XSD上)
  2. 基于该结构构建关系数据库(表,键)
  3. 生成SQL语句以创建数据库
  4. 生成SQL语句以创建数据填充

PS2:

我在SO中看过一些 帖子,但我仍然无法找到解决方案.微软的" Xml批量加载 "工具似乎在这方面做了一些事情,但我没有MS SQL Server.

xml mysql sql data-conversion relational-database

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

C#将object []转换为byte [],但是如何将byte对象保存为byte?

我正在使用将不同值类型的数组转换为字节数组解决方案,以便我的对象进行字节数组转换.

但我有一个小问题,导致一个大问题.

在object []的mids中有"byte"类型的数据,我不知道如何保持"byte".我需要在之前和之后保持相同的字节长度.

我尝试将"byte"类型添加到字典中,如下所示:

private static readonlyDictionary<Type, Func<object, byte[]>> Converters =
    new Dictionary<Type, Func<object, byte[]>>()
{
    { typeof(byte), o => BitConverter.GetBytes((byte) o) },
    { typeof(int), o => BitConverter.GetBytes((int) o) },
    { typeof(UInt16), o => BitConverter.GetBytes((UInt16) o) },
    ...
};
public static void ToBytes(object[] data, byte[] buffer)
{
    int offset = 0;

    foreach (object obj in data)
    {
        if (obj == null)
        {
            // Or do whatever you want
            throw new ArgumentException("Unable to convert null values"); …
Run Code Online (Sandbox Code Playgroud)

c# data-conversion

7
推荐指数
1
解决办法
800
查看次数

SSIS导入和保存数据时将字符串转换为guid

我试图将一个unicode字符串从Excel文件转换为uniqueidentifier.网上已有答案看起来非常简单:

我见过这篇文章:SSIS包中的数据转换问题 - 文本到GUID

和这篇文章:http://social.msdn.microsoft.com/Forums/sqlserver/en-US/6ce5b4d2-913a-40f1-9797-105783181f5e/ssis-variable-that-should-contain-uniqueidentifier

但是在将数据导入SQL Server 2012时,这在Visual Studio 2012中的SSIS 2012中不起作用,运行时会出现典型的转换错误.

在Excel文件中,Guid(作为字符串)以这种格式存储:

00bce79b-6c7b-427F-9711-17c19475f6e4

没有花括号或引号.

excel ssis data-conversion sql-server-2012

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

如何将三元表达式转换为二叉树结构?

我遇到了这个具有三元表达式的问题(a?b:c)并且需要将三元表达式转换为二叉树结构.

     a?b:c 

       a
      / \
     b   c

  a?b?c:d:e

     a
    / \
   b   e
  / \
 c   d
Run Code Online (Sandbox Code Playgroud)

我使用二进制树的方法使用数组实现: -

父母居住在 - 我左边的孩子 - 2i右孩子 - 2i + 1

开始解析三元表达式,第一个字符将形成根节点,因此它将位于数组中的位置1.如果下一个字符是'?' 那么后面的人物将是它的孩子所以留下孩子(在这种情况下b将在2号位置).如果下一个字符是":",那么我们找到了正确的孩子(在第一种情况下为c),所以我们将其添加到位置3.

在第二种情况下,我们面临"?" 在b之后,无论后面是什么,它将是它的孩子,并将分别添加到2j和2j + 1,其中j是数组中b的位置.现在我们面对":"我们检查当前孩子的父母是否有两个孩子然后我们回溯并检查前一个节点,直到我们找到一个错过了正确孩子的节点.

有没有其他方法可以做到这一点?希望我已经表达得足够清楚.

binary-tree ternary-operator data-conversion

7
推荐指数
1
解决办法
5698
查看次数

如何在Javascript中将UTC/GMT日期时间转换为CST?(不是本地的,CST总是)

我有一个挑战,即后端数据始终以UTC时间存储.我们的前端数据始终在CST中显示.我无法访问这个"黑匣子".

我想在我们的数据仓库中反映这一点.它位于欧洲(CET).所以"本地"转换不起作用.

我想知道将UTC时间准确转换的最简单,最直接的方法(我可以将它以纪元毫秒或日期格式'2015-01-01 00:00:00')转换为中央标准时间.(根据夏令时落后5或6小时).

我看到很多关于转换到"本地"时间的线索......再次我不想要这个,我也不想简单地减去6个小时,这将是半年的错误.

有人有主意吗?这似乎是一个非常普遍的问题,但我一直在寻找,但一无所获.

javascript timezone datetime data-conversion timezone-offset

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

为时间戳记录创建适当的avro架构

我想知道适当的avro架构对于这种格式的一些json到avro转换是什么:

{"entryDate": "2018-01-26T12:00:40.930"}
Run Code Online (Sandbox Code Playgroud)

我的架构:

{
    "type" : "record",
    "name" : "schema",
    "fields" : [{
        "name" : "entryDate",
        "type" : ["null", {
            "type" : "long",
            "logicalType" : "timestamp-micros"
        }],
        "default" : null
    }]
}
Run Code Online (Sandbox Code Playgroud)

我一直在

`'Cannot convert field entryDate: Cannot resolve union: 
"2018-01-26T12:00:40.930" 
not in 
["null",{"type":"long","logicalType":"timestamp-millis"}]'`
Run Code Online (Sandbox Code Playgroud)

json data-conversion avro apache-nifi

7
推荐指数
1
解决办法
6957
查看次数

用 PHP 接收 UDP 包数据报

我正在使用 php 为 GPS 跟踪系统构建侦听服务器。GPS 通过 UDP 数据包发送数据,我可以通过运行以下脚本来显示数据。然而,实际数据以符号形式出现,所以我猜我错过了转换

    //Reduce errors
    error_reporting(~E_WARNING);

    //Create a UDP socket
    if(!($sock = socket_create(AF_INET, SOCK_DGRAM, 0)))
    {
        $errorcode = socket_last_error();
        $errormsg = socket_strerror($errorcode);

        die("Couldn't create socket: [$errorcode] $errormsg \n");
    }

    echo "Socket created \n";

    // Bind the source address
    if( !socket_bind($sock, "192.168.1.29" , 1731) )
    {
        $errorcode = socket_last_error();
        $errormsg = socket_strerror($errorcode);

        die("Could not bind socket : [$errorcode] $errormsg \n");
    }

    echo "Socket bind OK \n";

    //Do some communication, this loop can handle multiple clients
    while(1) …
Run Code Online (Sandbox Code Playgroud)

php udp data-conversion packet

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

“转换失败,因为数据值溢出指定类型”错误仅适用于同一张表的一列

我正在尝试将数据从数据库访问文件导入 SQL 服务器。为此,我通过 SQL Server 导入/导出向导创建了 SSIS 包。当我通过执行包实用程序执行包时,所有表都已通过验证,并选中“不执行验证”选项。但是,在执行过程中,我收到了以下错误块(使用图片,因为 blockquote 使用了大量空间):

错误

经过调查,我准确地找到了导致问题的表和列。但是,这是我几天来一直试图解决的问题,而且我对可能的选择感到厌烦。

麻烦表列的结构

从错误列表中可以看出,问题发生在 RHF Repairs 表的 Date Returned 列中。在 Access 中,有问题的列是日期/时间类型。在实际表格中,所有输入都采用“mmddyy”的形式,单击时会变成“mm/dd/yyyy”格式:

2004 年 3 月 8 日的输入

在 SSIS 包中,它创建了 OLEDB 源/目标关系,如下所示:

SSIS 中的关系

在这种关系中,输出列和外部列中的数据类型都是 DT_DATE(我仍然认为这是我问题的关键原因)。最让我烦恼的是 Date Returned 旁边的列与我上面描述的完全相同,并且没有任何错误应用于它或任何其他相同类型的列,Date Returned 实际上是唯一的害群之马群。

我试过什么

我已经尝试了以下线程中的每个选项,错误仍然相同。

我尝试了数据转换选项,试图将此列转换为日期戳甚至 unicode 字符串。它没有用。

数据转换

我尝试使用高级源代码编辑器为日期戳/unicode 字符串指定数据类型。我尝试仅在输出列中指定它,在外部和输出列中都尝试过,结果相同。

翻阅访问表中的数据也没有给我任何东西。所有这些都使用相同的 6 字符格式。

在这一点上,我真的用尽了我能想到的所有选项。您能否指出我可以尝试解决的其他问题的正确方向,因为它在过去两天让我发疯。

PS:最后,我将单独浏览每一行,同时不会因为有 4000 多个行条目而气馁......

更新:

我通过翻阅数据解决了这个问题。在 4000 多行中有 3 个错误条目......由于问题的解决方式不太可能帮助其他人,请关闭该问题。

sql-server ssis date data-conversion sql-server-2012

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

在 Python 中将嵌套的 JSON 转换为 CSV 文件

我知道这个问题已经被问过很多次了。我尝试了几种解决方案,但无法解决我的问题。

我有一个大的嵌套 JSON 文件 (1.4GB),我想把它弄平,然后将其转换为 CSV 文件。

JSON 结构是这样的:

{
  "company_number": "12345678",
  "data": {
    "address": {
      "address_line_1": "Address 1",
      "locality": "Henley-On-Thames",
      "postal_code": "RG9 1DP",
      "premises": "161",
      "region": "Oxfordshire"
    },
    "country_of_residence": "England",
    "date_of_birth": {
      "month": 2,
      "year": 1977
    },
    "etag": "26281dhge33b22df2359sd6afsff2cb8cf62bb4a7f00",
    "kind": "individual-person-with-significant-control",
    "links": {
      "self": "/company/12345678/persons-with-significant-control/individual/bIhuKnFctSnjrDjUG8n3NgOrl"
    },
    "name": "John M Smith",
    "name_elements": {
      "forename": "John",
      "middle_name": "M",
      "surname": "Smith",
      "title": "Mrs"
    },
    "nationality": "Vietnamese",
    "natures_of_control": [
      "ownership-of-shares-50-to-75-percent"
    ],
    "notified_on": "2016-04-06"
  }
}
Run Code Online (Sandbox Code Playgroud)

我知道这很容易用pandas模块完成,但我不熟悉它。

已编辑

所需的输出应该是这样的:

company_number, address_line_1, locality, …
Run Code Online (Sandbox Code Playgroud)

python csv json data-conversion

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

使用数据转换器将 3D 体积显示为图像

我想写一个数据转换器工具。我需要分析文件中的比特流以显示 3D 体积的 2D 横截面。

我试图查看的数据集可以在这里找到:https : //figshare.com/articles/SSOCT_test_dataset_for_OCTproZ/12356705

文件名为:burned_wood_with_tape_1664x512x256_12bit.raw (832 MB)

非常感谢一些指导。如果我能得到一些软件来使用数据转换将数据集显示为图像,我愿意奖励。

由于我对这个概念完全陌生,因此我没有可以显示此问题的代码。但是,这里有一些我尝试使用来自 SO 其他问题的灵感的东西:

import rawpy
import imageio

path = "Datasets/burned_wood_with_tape_1664x512x256_12bit.raw"
for item in path:
    item_path = path + item
    raw = rawpy.imread(item_path)
    rgb = raw.postprocess()
    rawpy.imshow(rgb)
Run Code Online (Sandbox Code Playgroud)

c c++ python data-conversion

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