데이터 작업: jq vs Miller 응답: JSON 파일을 SQLite 데이터베이스로 변환하는 방법
9161 단어 productivity
나의 첫 번째 시도는 사실상 간단한 노드였다.js 스크립트, 이 스크립트는.파일을 읽고 vanilla JS 매핑/감소/요약 JSON을 사용합니다.세션 간에 필요에 따라 노드 REPL과 to
.save
와 .load
를 시작하는 것이 상당히 쉽기 때문에 이것은 좋은 출발점이다.그러나 나는 JSON 파일의 단일 루틴 해석과 관련된 기다림을 좋아하지 않는다.가장 유연한 선택이지만 가장 수동적인 느낌이다.나는 JSON의 상용 도구를 처리하는데,
스토란 / jq
명령줄 JSON 프로세서
jq
jq는 경량급이고 유연한 명령행 JSON 프로세서입니다.
Unix:
창:
만약 당신이 jq를 사용하는 것을 배우고 싶다면,
https://stedolan.github.io/jq . 이것
문서는 저장소의 문서/폴더에서 생성됩니다.
너도 인터넷에서 해 볼 수 있다jqplay.org.
만약 당신이 jq를 침입하고 싶다면 안심하십시오. 그러나 그것의 내부 구조에 주의해야 합니다
현재 좋은 기록이 없다.안전모 하나랑 하나랑.
삽.또한 위키: https://github.com/stedolan/jq/wiki
요리책, 고급 화제의 토론, 내부 구조,
공사를 발표하는 등등.
원본 tarball과 구축된 실행 가능한 버전은
홈 페이지 및github 게시 페이지https://github.com/stedolan/jq/releases
최신git에서 직접 구축하려면 flex가 필요합니다
bison(3.0 또는 업데이트 버전),libtool,make,automake,autoconf가 설치되었습니다.
regexp 지원을 받으려면 Oniguruma를 설치하거나 복제해야 합니다.
View on GitHub
C 언어로 작성된 작업실로 유용한 동사가 많아 한 줄의 프로그램으로 JSON을 해석하고 정리할 수 있다.
이런 상황에서 jq의 속도는 매우 빠르지만 여전히 단선정이다.
반대로 나는 비교적 새로운 도구로 방향을 바꾸었다
존 클
/
밀러
Miller는 awk,sed,cut,join,sort와 유사하며 이름 인덱스 데이터, 예를 들어 CSV,TSV와 표 JSON에 사용된다.
밀러가 뭐예요?
Miller는 awk,sed,cut,join,sort와 유사하며 CSV,TSV,JSON,JSON 줄과 위치 인덱스 등 데이터 형식에 사용된다.
밀러는 나를 위해 무엇을 할 수 있습니까?
Miller를 사용하면 위치를 계산하지 않고 이름 필드를 사용할 수 있습니다.
CSV, TSV, JSON, JSON 행 및
위치별 색인.그리고 실행 중 새 필드를 추가할 수 있습니다
기존 필드, 삭제 필드, 정렬, 집합 함수
예쁜 프린트 등등.
Miller는 awk,sed,cut,join,sort와 유사하며 CSV,TSV,JSON,JSON 줄과 위치 인덱스 등 데이터 형식에 사용된다.
밀러는 나를 위해 무엇을 할 수 있습니까?
Miller를 사용하면 위치를 계산하지 않고 이름 필드를 사용할 수 있습니다.
CSV, TSV, JSON, JSON 행 및
위치별 색인.그리고 실행 중 새 필드를 추가할 수 있습니다
기존 필드, 삭제 필드, 정렬, 집합 함수
예쁜 프린트 등등.
Miller는 키 값 쌍의 데이터를 처리합니다.
Unix 도구는 정수 인덱스 필드를 조작합니다.
후자는 수조이고 밀러의 자연 데이터 구조는
삽입 순서 해시 맵.
Miller는 다양한 데이터 형식 처리
익숙한 CSV, TSV 및 JSON/JSON 행을 포함하되 이에 국한되지 않음
(Miller는 위치 색인 데이터도 처리할 수 있습니다!)
View on GitHub
이것은 jq의 용도와 비슷하다.내가 밀러를 시도했을 때, 나는 그것의 계수 속도가 매우 빠르다는 것을 알아차렸다.나는 Miller 문서를 읽었고 https://miller.readthedocs.io/en/latest/cpu/에서 Miller는 보통 다중 라인이라는 것을 발견했다. 이것은 Go와 채널 사용에서 이루어졌기 때문이다.이것은 Miller가 어떤 임무에서 jq보다 우위를 가지게 할 수 있고 이런 임무에서 합병성이 작용할 수 있다.
특히 CSV, JSON 또는 다른 형식의 데이터를 처리할 수 있기 때문에 밀러를 깊이 연구할 계획이다.그 밖에 더욱 복잡한 데이터 조작 흐름에 대해 말하자면, 이후에 단독 고루틴 링크를 발표하는 것은 큰 승리인 것 같다.
내가 사용하고자 하는 또 다른 도구는 sqlite입니다. json 확장자는readfile 확장자와 결합됩니다.이것은 내가 발견한 이 문제/답안의 계발을 받은 것이다
대답: JSON 파일을 SQLite 데이터베이스로 변환하는 방법
20년 6월 27일
16
SQLite의 JSON1
extension 및 readfile
CLI 도구의 sqlite3
extension를 CSV 또는 타사 도구 없이 사용할 수 있습니다.
입력 파일이 양호한 형식의 JSON 파일인 경우, 예를 들어 배열의 예로 들 수 있습니다.
[
{"uri":"/","user_agent":"example1"},
…
Open Full Answer
최종적으로 제 JSON 파일에서 sql을 실행하는 빠른 방법이 되었습니다.다음과 같이 sqlite3 REPL에서 sql 문을 실행합니다.
INSERT INTO my_table SELECT
json_extract(value, '$.user_agent')
FROM json_each(readfile('my_data.json'));
나는 줄마다 내가 흥미를 느끼는 JSON 키를 기반으로 SQL 테이블을 만들 수 있다.그러나, 이것은 나의 데이터에 적합하지 않다. 왜냐하면 많은 줄에 공공 키가 부족하기 때문에, 나는 줄이 드물기를 원하지 않는다.그 밖에 나는 SQL로 자신의 동사를 작성해야 한다. Miller는 기존의 동사를 많이 제공했다.그러나 sqlite3이 답을 제공하는 속도가 상당히 빠르기 때문에 이것은 조회 최적화의 결과일 수 있다.
해보고 싶어요.
duckdb
/
duckdb
DuckDB는 프로세스 내 SQL OLAP 데이터베이스 관리 시스템입니다.
DuckDB
DuckDB는 고성능 분석 데이터베이스 시스템이다.그것의 설계 목적은 신속하고 믿음직하며 사용하기 쉽다는 것이다.DuckDB는 기본 SQL보다 훨씬 많은 SQL 사투리를 지원합니다.DuckDB는 임의의 하위 조회, 창 함수, 정렬 규칙, 복잡한 유형 (그룹, 구조) 등을 지원합니다.DuckDB 대상에 대한 자세한 내용은 the Why DuckDB page on our website를 참조하십시오.
장치
DuckDB를 설치하고 사용하려면 our website를 참조하여 설치 및 사용 지침을 참조하십시오.
데이터 가져오기
CSV 파일 및 플라워 파일의 경우 데이터 가져오기는 FROM 자문의 파일을 참조하는 것처럼 간단합니다.
내 파일을 선택합니다.csv'
내 파일을 선택합니다.꽃무늬 마루 맞추기;
자세한 내용은 Data Import 섹션을 참조하십시오.
SQL 참조
website에는 DuckDB에서 사용할 수 있는 함수와 SQL 구조에 대한 참조가 포함되어 있습니다.
발전시키다
DuckDB는 개발의 경우CMake...
View on GitHub
같은 이유로, 나는 sqlite3을 시도했지만, 결국 시도하지 않았다. 왜냐하면 나는 json 확장이 있기 때문이다. 이것은 먼저 json을 csv로 변환한 다음에duckdb를 가져오는 것보다 쉽다.
Reference
이 문제에 관하여(데이터 작업: jq vs Miller 응답: JSON 파일을 SQLite 데이터베이스로 변환하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/barakplasma/data-manipulation-jq-vs-miller-4g89
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
[
{"uri":"/","user_agent":"example1"},
INSERT INTO my_table SELECT
json_extract(value, '$.user_agent')
FROM json_each(readfile('my_data.json'));
Reference
이 문제에 관하여(데이터 작업: jq vs Miller 응답: JSON 파일을 SQLite 데이터베이스로 변환하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/barakplasma/data-manipulation-jq-vs-miller-4g89텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)