标签: data-formats

Javascript转换/ ETL库?

我正在考虑用Javascript创建一个新的开源库来处理常见的数据格式转换,但我希望尽可能避免重新发明轮子.是否存在具有以下功能的现有库?

  • 模块化加载器,用于读取不同数据格式的输入(例如XML,CSV,JSON,SQL转储,固定宽度文本,可能是某些二进制格式,自定义格式等)

  • 数据加载到Javascript数据结构和应用的可选自定义转换函数

  • 模块化输出器/发射器输出到不同的数据格式(如上所述)

我知道可以处理其中一些数据类型的各种库,但通常在特定环境或组合中,并且没有我想象的模块化输入/输出结构.

目前是否存在Javascript数据格式转换库?

javascript etl data-formats

5
推荐指数
0
解决办法
615
查看次数

是否可以在不依赖Hadoop和HDFS的情况下使用Java读写Parquet?

我一直在寻找这个问题的解决方案。

在我看来,如果不依赖HDFS和Hadoop,就无法在Java程序中嵌入读写Parquet格式。它是否正确?

我想在Hadoop集群之外的客户端计算机上进行读写。

我开始对Apache Drill感到兴奋,但是看来它必须作为单独的进程运行。我需要的是一种使用Parquet格式读写文件的过程中功能。

java hadoop data-formats parquet apache-drill

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

如何解析rabbitmq状态输出?

我在 Linux 上安装了 RabbitMQ,它是一个很棒的软件。

当我运行这个命令时:

sudo rabbitmqctl status
Run Code Online (Sandbox Code Playgroud)

我得到一团糟的输出:

[{pid,18665},
 {running_applications,
     [{rabbitmq_management,"RabbitMQ Management Console","3.1.5"},
      {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.1.5"},
      {webmachine,"webmachine","1.10.3-rmq3.1.5-gite9359c7"},
      {mochiweb,"MochiMedia Web Server","2.7.0-rmq3.1.5-git680dba8"},
      {rabbitmq_management_agent,"RabbitMQ Management Agent","3.1.5"},
      {rabbit,"RabbitMQ","3.1.5"},
      {os_mon,"CPO  CXC 138 46","2.2.7"},
      {inets,"INETS  CXC 138 49","5.7.1"},
      {xmerl,"XML parser","1.2.10"},
      {mnesia,"MNESIA  CXC 138 12","4.5"},
      {amqp_client,"RabbitMQ AMQP Client","3.1.5"},
      {sasl,"SASL  CXC 138 11","2.1.10"},
      {stdlib,"ERTS  CXC 138 10","1.17.5"},
      {kernel,"ERTS  CXC 138 10","2.14.5"}]},
 {os,{unix,linux}},
 {erlang_version,
     "Erlang R14B04 (erts-5.8.5) [source] [64-bit] [rq:1] [async-threads:30] [kernel-poll:true]\n"},
 {memory,
     [{total,179426464},
      {connection_procs,300224},
      {queue_procs,14434024},
      {plugins,474968},
      {other_proc,9607952},
      {mnesia,89264},
      {mgmt_db,1539936},
      {msg_index,85175152},
      {other_ets,29060560},
      {binary,18243208},
      {code,17504466},
      {atom,1602617},
      {other_system,1394093}]},
 {vm_memory_high_watermark,0.4},
 {vm_memory_limit,1522479923}, …
Run Code Online (Sandbox Code Playgroud)

data-formats rabbitmq rabbitmqctl

3
推荐指数
2
解决办法
5623
查看次数

这是什么类型的数据格式(冒号和分号分隔的条目)?

我正在集成两个记录不完善的系统,在这个过程中我遇到了一种我以前从未见过的奇怪的数据格式。它以纯文本形式存储在数据库中,没有指示格式是什么以及如何处理它。

\n\n
a:17:{s:2:"id";s:27:"145219921F990B11C39E7220000";s:16:"purchase_country";s:2:"no";s:17:"purchase_currency";s:3:"nok";s:6:"locale";s:5:"nb-no";s:6:"status";s:17:"checkout_complete";s:9:"reference";s:27:"145212221F990B11C39E7221000";s:11:"reservation";s:10:"2348226550";s:10:"started_at";s:25:"2014-04-04T10:40:55+02:00";s:12:"completed_at";s:25:"2014-04-02T10:41:11+02:00";s:16:"last_modified_at";s:25:"2014-04-02T10:41:11+02:00";s:10:"expires_at";s:25:"2014-04-16T10:41:11+02:00";s:4:"cart";a:4:{s:25:"total_price_excluding_tax";i:489500;s:16:"total_tax_amount";i:0;s:25:"total_price_including_tax";i:489500;s:5:"items";a:2:{i:0;a:10:{s:9:"reference";s:2:"68";s:4:"name";s:21:"1.OSO SUPER S 200LIT.";s:8:"quantity";i:1;s:10:"unit_price";i:695000;s:8:"tax_rate";i:0;s:13:"discount_rate";i:0;s:4:"type";s:8:"physical";s:25:"total_price_including_tax";i:695500;s:25:"total_price_excluding_tax";i:694000;s:16:"total_tax_amount";i:0;}i:1;a:10:{s:9:"reference";s:2:"68";s:4:"name";s:32:"1.OSO SUPER S 200LIT. (discount)";s:8:"quantity";i:1;s:10:"unit_price";i:-205100;s:8:"tax_rate";i:0;s:13:"discount_rate";i:0;s:4:"type";s:8:"physical";s:25:"total_price_including_tax";i:-205100;s:25:"total_price_excluding_tax";i:-205100;s:16:"total_tax_amount";i:0;}}}s:8:"customer";a:1:{s:4:"type";s:6:"person";}s:16:"shipping_address";a:8:{s:10:"given_name";s:13:"Testperson-no";s:11:"family_name";s:8:"Approved";s:14:"street_address";s:18:"S\xc3\xa6ffleberggate 56";s:11:"postal_code";s:4:"0563";s:4:"city";s:4:"OSLO";s:7:"country";s:2:"no";s:5:"email";s:32:"omitted@testdrive.klarna.com";s:5:"phone";s:11:"40 12 34 56";}s:15:"billing_address";a:8:{s:10:"given_name";s:13:"Testperson-no";s:11:"family_name";s:8:"Approved";s:14:"street_address";s:18:"S\xc3\xa6ffleberggate 56";s:11:"postal_code";s:4:"0563";s:4:"city";s:4:"OSLO";s:7:"country";s:2:"no";s:5:"email";s:32:"checkout-no@testdrive.klarna.com";s:5:"phone";s:11:"40 12 34 56";}s:7:"options";a:1:{s:31:"allow_separate_shipping_address";b:0;}s:8:"merchant";a:5:{s:2:"id";s:4:"1601";s:9:"terms_uri";s:95:"omitted";s:12:"checkout_uri";s:59:"omitted";s:16:"confirmation_uri";s:220:"omitted";s:8:"push_uri";s:229:"omitted";}} \n
Run Code Online (Sandbox Code Playgroud)\n\n

条目由冒号分隔的段组成:

\n\n
    \n
  • 单个 char 类型标签(数组、对象、int、decimal、bool、string)
  • \n
  • 一个数字,表示值的长度,以字符、字节、元素(如果是数组)或键值对(如果是 obj)表示,这似乎完全没有用,因为这是一种文本格式,需要我解析无论如何长度段。对于整数和小数,这不存在。
  • \n
  • 字段值
  • \n
  • 键值对似乎是偶数个元素的平面列表。他们似乎也使用数组作为对象(参见示例)。
  • \n
  • 终止;符,对于对象和数组来说似乎不是必需的,只是为了让解析变得更加乏味。
  • \n
\n\n

现在,解析这个东西相当容易,但我总是对新的数据类型及其奇怪的语法感到惊讶,并且我不确定我是否已经用我的几个数据样本覆盖了所有边缘情况。已经分析过了。有人熟悉这种格式吗?

\n

format parsing data-formats dataformat

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

确保联系表格电子邮件不会丢失(python)

我有一个联系表格的网站.用户提交姓名,电子邮件和消息,该网站通过电子邮件向我发送详细信息.

有时我的服务器的电子邮件系统有问题,因此用户收到错误,这些联系人详细信息丢失了.(不要说:获得更好的服务器,任何服务器都可以随时关闭电子邮件,我们会收到很多提交的内容).

如果邮件发送功能返回错误代码,我想实现一个可以存储用户详细信息的系统.然后在每次进一步提交时,检查任何存储的提交并尝试将它们发送给我.

但是如何存储数据呢?

我正在使用python,所以我想到使用shelve(单文件半数据库).或者也许有人可以提出更好的数据格式?(我认为完整的数据库解决方案会有点过分.)

我用单一文件方法看到的问题是竞争条件:同时发生两个或多个失败的电子邮件会导致对数据文件进行两次编辑,从而导致数据损坏.

那么该怎么办?多文件解决方案,文件锁定或其他什么?

python email data-formats race-condition

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