JSON에서 PostgreSQL로 변환
JSON 파일을 놓으면 CREATE TABLE과 INSERT 문이 담긴 PostgreSQL 스크립트가 만들어져요. 열마다 타입을 정하고, 모든 수정 사항을 행과 열과 함께 나열해요.
4개 행 변환, 수정 2개, 거부 없음
| 행 | ||||||
|---|---|---|---|---|---|---|
| 2 | 000481 | Peña Muñoz | 2024-02-03T10:15:00Z | 1234.5 | true | |
| 3 | 000482 | José Ángel Ruiz | 2024-02-15T16:40:00Z | 99.9 | false | Entrega en la tarde |
| 4 | 000483 | Zoë Ortíz | 2024-02-29T09:05:00Z | 12 | true | |
| 5 | 000484 | Ñuño Castañeda | 2024-03-11T13:30:00Z | 980.75 | sí | Factura con "RFC" |
-- Written by IntoSQL for PostgreSQL.
SET client_encoding = 'UTF8';
BEGIN;
CREATE TABLE pedidos_2024 (
pedido text NOT NULL,
cliente text NOT NULL,
fecha timestamptz NOT NULL,
total numeric(6,2) NOT NULL,
pagado boolean NOT NULL,
notas text
);
INSERT INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES
('000481', 'Peña Muñoz', '2024-02-03 10:15:00+00:00', 1234.5, TRUE, NULL),
('000482', 'José Ángel Ruiz', '2024-02-15 16:40:00+00:00', 99.9, FALSE, 'Entrega en la tarde'),
('000483', 'Zoë Ortíz', '2024-02-29 09:05:00+00:00', 12, TRUE, NULL),
('000484', 'Ñuño Castañeda', '2024-03-11 13:30:00+00:00', 980.75, TRUE, 'Factura con "RFC"');
COMMIT;
수정 사항
- "pedido" 열의 앞자리 0을 유지했어요. 000481 값은 000481 그대로 텍스트로 저장돼요.
- "pagado" 열에 예/아니요 단어(sí)가 있어 불리언으로 저장했어요.
파일은 이 컴퓨터에서 변환되고 업로드되지 않아요.
다른 샘플:
JSON에서 PostgreSQL까지, 열 하나씩
IntoSQL이 위 샘플 파일 pedidos_2024.json을(를) PostgreSQL용으로 쓴 결과예요. 각 열이 파일에 담은 내용, 받는 형식, 첫 값이 스크립트에 들어가는 모습을 보여 줘요.
| 파일에서 | 첫 값 | 열 | PostgreSQL 형식 | 스크립트에서 |
|---|---|---|---|---|
| pedido | 000481 | pedido | text | '000481' |
| cliente | Peña Muñoz | cliente | text | 'Peña Muñoz' |
| fecha | 2024-02-03T10:15:00Z | fecha | timestamptz | '2024-02-03 10:15:00+00:00' |
| total | 1234.5 | total | numeric(6,2) | 1234.5 |
| pagado | true | pagado | boolean | TRUE |
| notas | - | notas | text | NULL |
스크립트를 PostgreSQL에 불러오기
다운로드한 파일은 일반 .sql 파일이에요. PostgreSQL 자체 도구로 실행하세요.
터미널에서
psql -v ON_ERROR_STOP=1 -d mydb -f pedidos_2024.postgresql.sqlON_ERROR_STOP을 쓰면 psql이 첫 오류에서 멈춰요. 스크립트는 하나의 트랜잭션으로 실행되므로, 불러오기에 실패해도 데이터베이스는 그대로예요.
데이터베이스 도구에서
pgAdmin이나 DBeaver에서는 쿼리 창에서 스크립트를 열고 실행하세요.
스크립트 없이Pro
IntoSQL Pro는 데스크톱 앱이나 명령줄에서 파일을 PostgreSQL에 바로 불러와요. 스크립트를 따로 만들 필요가 없어요.
intosql load pedidos_2024.json --into postgres://user@localhost/mydbJSON 파일과 PostgreSQL에 대해 알아 둘 점
IntoSQL이 JSON 파일에서 읽는 내용
- 파일은 객체 배열, data 같은 키 아래에 그 배열을 담은 객체, 또는 한 줄에 객체 하나(NDJSON) 형식일 수 있어요.
- 각 키는 열이 돼요. 값 안의 객체와 배열은 JSON 텍스트로 유지돼요.
- 숫자는 자릿수를 정확히 유지하고, ISO 8601 날짜는 날짜나 타임스탬프가 돼요.
PostgreSQL에 대해 알아 둘 점
- 소수는 numeric(p,s)로 자릿수를 정확히 유지하고, 시차가 있는 날짜는 timestamptz가 돼요.
- PostgreSQL 텍스트는 NUL 문자를 담을 수 없어서, 이 문자가 있는 값에서는 제거돼요.
- 스크립트는 하나의 트랜잭션으로 실행되므로, 불러오기가 실패해도 반쯤 들어간 데이터가 남지 않아요.
PostgreSQL에서 값의 종류별 저장 방식
| 값 | PostgreSQL |
|---|---|
| 예/아니요 | boolean |
| 정수 | integer |
| 큰 정수 | bigint |
| 소수 | numeric(p,s) |
| 부동소수점 | double precision |
| 날짜 | date |
| 시각 | time |
| 날짜와 시간 | timestamp |
| 날짜, 시간과 시차 | timestamptz |
| 텍스트 | text |
JSON에서 PostgreSQL(으)로 변환하기에 관한 질문
여기에 답이 없나요? 문의 페이지로 연락하시면 담당자가 답장해요. 문의 페이지
JSON 파일을 PostgreSQL용으로 어떻게 변환하나요?
이 페이지 위쪽의 변환기에 파일을 놓으세요. 헤더를 찾고 모든 값을 읽은 뒤, 적용한 수정 사항을 나열하며 PostgreSQL 스크립트를 써요. 스크립트를 다운로드해 psql에서 실행하세요.
JSON 파일은 어떤 형태여야 하나요?
객체 배열, data 같은 키 아래에 그 배열을 담은 객체, 또는 한 줄에 객체 하나(NDJSON)예요. 각 키가 열이 돼요.
PostgreSQL에서는 어떤 형식을 쓰나요?
예/아니요 값은 boolean, 정수는 integer, 소수는 numeric(p,s), 날짜는 date, 시각이 있는 날짜는 timestamp, 텍스트는 text 형식이 돼요. 크기는 각 열에서 가장 긴 값에 맞춰져요.
PostgreSQL에서 앞자리 0이 유지되나요?
네. 000481 같은 코드는 텍스트로 유지되므로 PostgreSQL에 text 형식으로 저장되고 스크립트에는 '000481'(으)로 쓰여요.
스크립트 없이 PostgreSQL에 데이터를 불러올 수 있나요?
네, IntoSQL Pro로 가능해요. 데스크톱 앱과 명령줄이 PostgreSQL에 연결해 먼저 테이블을 만들고 행을 바로 불러와요.
JSON 파일은 얼마나 커도 되나요?
한 줄에 객체 하나인 NDJSON은 들어오는 대로 읽어서 브라우저에서도 수 GB 파일을 처리해요. JSON 문서는 통째로 읽으므로 한도는 브라우저가 이 페이지에 주는 메모리예요. 데스크톱 앱과 명령줄은 크기에 상관없이 파일을 처리해요.