Crackstation의 15 억 단어 목록 (15gig) 을 데이터베이스 테이블 에 삽입하려고 합니다. 지금까지 커맨드 라인을 통해 SQLite와 Postgres를 모두 운이 없었습니다.
둘 다 데이터에 파일 전체에 흩어져있는 일부 이진 데이터 값이 포함되어있는 것 같습니다. 데이터는 단순한 UTF-8 문자 가 아닌 것 같습니다 .
UltraEdit는이를 UTF-8로 감지합니다.
그러나 linux file 명령은 다음과 같이 말합니다.
$ file crackstation.txt -I
crackstation.txt: application/octet-stream; charset=binary
이 데이터를 Postgres 또는 SQLite로 가져 와서 분석 / 조회 할 수 있습니까?
삽입이 작동하도록 데이터를 먼저 정리 / 변환 할 수있는 방법이 있습니까? 아니면 데이터베이스로 가져 오기를 수행 할 수있는 다른 방법이 있습니까?
내가 시도한 것은 다음과 같습니다.
SQLite :
sqlite> .mode csv
sqlite> .separator "\n"
sqlite> .import crackstation.txt passwords
이에 대한 응답은 수백만 개의 unescaped " character
메시지이며 테이블에 하나의 행만 삽입됩니다 (빈 문자열 값일뿐).
Postgres :
psql> COPY passwords FROM 'crackstation.txt' WITH (FORMAT TEXT, NULL '', ENCODING 'UTF-8');
이에 대한 응답 ERROR: invalid byte sequence for encoding "UTF8": 0xf6 blah blah
은 찾은 줄 번호입니다. txt 파일은 15gig이므로 UltraEdit에서만 열 수 있었고 심지어 그 줄에 들어가서 삭제하고 psql 명령을 다시 실행하고 헹구고 반복하는 것이 고통 스럽습니다 ... 그래서 왜 지금 질문하고 있어요.