小编sal*_*l17的帖子

提高使用 jq 处理大文件时的性能

用例

我需要以内存高效的方式(即,无需将整个 JSON blob 读入内存)~5G将 JSON 数据的大文件 ( )拆分为带有换行符分隔的 JSON 的较小文件。每个源文件中的 JSON 数据是一个对象数组。

不幸的是,源数据不是 换行符分隔的 JSON,在某些情况下,文件中根本没有换行符。这意味着我不能简单地使用该split命令通过换行符将大文件拆分为较小的块。以下是源数据如何存储在每个文件中的示例:

带有换行符的源文件示例。

[{"id": 1, "name": "foo"}
,{"id": 2, "name": "bar"}
,{"id": 3, "name": "baz"}
...
,{"id": 9, "name": "qux"}]
Run Code Online (Sandbox Code Playgroud)

没有换行符的源文件示例。

[{"id": 1, "name": "foo"}, {"id": 2, "name": "bar"}, ...{"id": 9, "name": "qux"}]
Run Code Online (Sandbox Code Playgroud)

以下是单个输出文件所需格式的示例:

{"id": 1, "name": "foo"}
{"id": 2, "name": "bar"}
{"id": 3, "name": "baz"}
Run Code Online (Sandbox Code Playgroud)

当前解决方案

我能够通过使用jqsplit如本SO Post 中所述来实现所需的结果。由于jq流式解析器, …

json split sed jq

17
推荐指数
1
解决办法
2064
查看次数

使用docker-compose在Docker容器中锁定package.json文件

我正在使用Docker for Mac和Docker Compose来开发Node.js应用程序,我遇到了一个错误,因为package.json文件被锁定了.在正在npm install --save <package>运行的容器中运行后的特定错误是:

npm WARN saveError EBUSY: resource busy or locked, rename
'/Example/package.json.1647356251' -> '/Example/package.json'
Run Code Online (Sandbox Code Playgroud)

简化的包结构是:

? docker/
    Dockerfile
  docker-compose.yaml
  package.json
Run Code Online (Sandbox Code Playgroud)

Dockerfile包含:

FROM node:9.5
ENV SOURCE_CODE /Example
COPY package.json $SOURCE_CODE/package.json
RUN npm --prefix $SOURCE_CODE install $SOURCE_CODE
WORKDIR $SOURCE_CODE
Run Code Online (Sandbox Code Playgroud)

泊坞窗,compose.yaml文件包含:

version: "3"

services:
  node:
    build:
      context: ./
      dockerfile: ./docker/Dockerfile
    volumes:
      - ./node_modules/:/Example/node_modules/
      - ./package.json:/Example/package.json
Run Code Online (Sandbox Code Playgroud)

的package.json文件包含:

{
  "name": "example",
  "version": "1.0.0",
  "description": "example",
  "license": "UNLICENSED"
}
Run Code Online (Sandbox Code Playgroud)

运行docker-compose …

node.js docker dockerfile package.json docker-compose

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

在SQL Workbench批处理模式下使用WbExport和WbInclude命令

我正在Windows机器上运行,尝试通过在批处理模式下运行SQL Workbench来导出查询结果.阅读SQL Workbench文档后,听起来WbExport是从查询中导出结果的最佳命令.

另一个要求是我想要运行的查询是在外部.sql文件中.同样,根据SQL文档,在批处理模式下,我可以使用WbInclude命令或-script参数从外部.sql文件运行查询.但是,我无法使用WbExport正常工作.我已经尝试使用sqlwbconsole64.exe和sqlworkbench.jar在批处理模式下运行SQL Workbench.请参阅以下四个示例:

java -jar sqlworkbench.jar -profile='connection-profile' -command='WbExport -file=test_export.txt -type=text -delimiter=\t; WbInclude test.sql;'

java -jar sqlworkbench.jar -profile='connection-profile' -command='WbExport -file=test_export.txt -type=text -delimiter=\t' -script='test.sql'

sqlwbconsole64 -profile='connection-profile' -command='WbExport -file=test_export.txt -type=text -delimiter=\t; WBInclude test.sql;'

sqlwbconsole64 -profile='connection-profile' -command='WbExport -file=test_export.txt -type=text -delimiter=\t' -script='test.sql'
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助!

sql sql-workbench-j

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