2017-01-12 3 views
0

wikidata json dump에서 모든 지리적 항목 (Q56061)을로드 중입니다. 전체 덤프에는 Wikidata : Statistics 페이지에 따라 약 16M 항목이 들어 있습니다.wikidata 덤프로드 중

python3.4 + ijson + libyajl2를 사용하면 파일을 구문 분석하기 위해 약 93 시간의 CPU (AMD Phenom II X4 945 3GHz) 시간이 걸립니다. 온라인 순차 항목 쿼리를 사용하면 총 2.3M의 관심 항목이 약 134 시간이 걸립니다.

이 작업을 수행하는 더 좋은 방법이 있습니까? (예 : openstreetmap pdf 형식 및 삼투압 도구와 같은 것)

+0

내 실험에서 전체 덤프를 구문 분석하는 데는 2.5GHz CPU를 사용하는 데 불과 몇 시간 밖에 걸리지 않습니다. 나는 이렇게 인간의 모든 인스턴스를 추출했습니다 : 'curl https://dumps.wikimedia.org/wikidatawiki/entities/latest-all.json.gz | gzip -d | wikidata-filter --claim P31 : Q5 > 인간 .ndjson'. 나는 정확히 기억할 수는 없지만 5 시간도 채 걸리지 않았다. – maxlath

+0

위키 다타 필터 란 무엇인가? – qMax

+0

wikidata 필터가 단일 클레임 만 필터링 할 수있는 경우 영토 엔티티가 일반적으로 심층 클래스 계층 구조이므로 (wdt : P31/wdt : P279 *) – qMax

답변

0

로딩 코드 및 예상치가 잘못되었습니다.

ijson.backends.yajl2_cffi을 사용하면 전체 구문 분석 + 필터링 + 데이터베이스 저장에 약 15 시간이 소요됩니다.