2013-05-16 3 views
3

필자는 고객에게 제공해야하는 공개 데이터 세트를 보유하고 있습니다 (데이터는 비공개이며 클라이언트마다 다릅니다). 모든 클라이언트는 서로 다른 구조를 가지며 서로 다른 유형의 데이터가 필요합니다. 저는 50 명이 넘는 고객이 있으며 다른 언어 (프랑스어, 스페인어, 영어, 이탈리아어, 독일어)로 된 서로 다른 정보가 필요했습니다.maxmind와 같은 바이너리 파일을 생성하십시오.

그들 중 일부는 독특한 기록 당 10 개 필드, 일부는 그들 중 일부는 그들의 주요 (내 생각에 CentOS)로 리눅스를 사용하고 다른 하나는 윈도우 서버 (로컬 서버와 웹 서버)를 사용 2.

를 얻을 수를,이 수 파일은 로컬 응용 프로그램 (win32, php 등)에 사용됩니다.

나는 내가 그것을 이진 파일 생각하고 정보를 검색 할 수있는 지표를 제공 (maxmind 같은 것을 만들 수 있습니다 발견 일반적인 솔루션을 파고 후.

나는 클라이언트의 일부 이후 API를 만들 수 없습니다 (종류의 학교 실험실 같은) 특정 시간에서 인터넷에 액세스 할 수있는 개인 네트워크에 컴퓨터를 사용합니다.

을 이제 maxmind 같은 데이터 파일을 생성하는 방법이 있나요?

감사

+0

당신이 정교한 수 문제에 조금? 어떤 이유로 원시 데이터 세트를 제공 할 수 없습니까?어떻게 배포해야합니까? – Anthony

+0

나는 그들이 액세스 할 수있는 임의의 데이터베이스 인터페이스를 찾고 있다면 그 중 많은 것들이 있음을 언급해야한다. MaxMind 스타일 데이터베이스를위한 열린 구현이있는 것으로 보입니다. https://github.com/maxmind/ – Anthony

+0

@Anthony 클라이언트 당 시스템을 만들고 싶지 않습니다. 클라이언트가 사용할 수있는 이진 파일을 만들고 싶습니다. 그것. 따라서 C#, OBJ-C, Java, PHP, Phython, Perl 및 ASP.net에서 프로그래밍 할 필요가 없습니다. 클라이언트가이 부분을 수행합니다. 내가 제공 한 링크가 있지만 이진 데이터베이스를 만들지 않습니다. –

답변

1

귀하의 질문은 다음과 같습니다 maxmind 같은 데이터 파일을 만들 수있는 방법이

가?

답은 예, 그렇습니다. 익숙한 Maxmind API를 리버스 엔지니어링 할 준비가 된 경우입니다. 나를 위해 그것은 C# sample 일 것입니다. 코드가 예상하는 형식에서 형식 및 해독 방법을 읽는 방법을 살펴볼 수 있습니다.

대신 자신의 바이너리 형식을 만드십시오. 자신 만의 바이너리 형식을 생성하는 것은 매우 간단합니다. 내부 형식 (JSON 또는 XML 사용)을 결정한 다음 Base64로 변환 할 수 있습니다. 모든 클라이언트는 base64 (바이너리 데이터)에서 문자열 형식으로 변환 한 다음 라이브러리를 사용하여 JSON 또는 XML을 해석해야합니다.

바이너리에 JSON 변환이 같은

사용 무언가 : http://wiki.fasterxml.com/SmileFormat

+0

파기 후에 C# 샘플에서 맞춤식을 만들 수있었습니다. 감사합니다. –

+0

@PatREllery great! 담당자에게 감사드립니다. – Rots

2

너 가장 좋은 방법은 결국 모든 데이터를 관계형 데이터베이스에 저장하는 것입니다. 데이터 세트의 크기와 액세스 방법에 따라 MySQL 또는 SQLite가 좋은 옵션 일 수 있습니다. 이렇게하면 클라이언트별로 필요한 데이터를 선택하기가 매우 쉽습니다.

각 클라이언트에 대해 SQL 쿼리를 개발하여 필요한 모든 데이터를 추출합니다 (더 이상 필요하지 않음). 쿼리를 실행하고 다른 데이터베이스 (클라이언트로 전송) 또는 간단한 CSV 파일을 채울 스크립트를 작성하십시오. (CSV는 자신의 데이터베이스에 데이터를 추가하려는 경우 더 쉬울 수 있으며, 마지막으로 보낸 변경 사항을 쉽게 비교할 수 있습니다).

이제 데이터를 저장할 수있는 편리한 솔루션과 각 클라이언트와 관련된 데이터를 추출하는 간단한 방법이 있습니다. 주기적으로 클라이언트 별 쿼리를 실행하고 메일을 발송하는 스크립트를 작성하여 프로세스를 쉽게 자동화 할 수 있습니다.

특별한 이유가없는 한 MaxMind 형식을 사용하지 않는 것이 좋습니다. 보다 일반적인 데이터베이스 인터페이스를 사용하면 더 많은 지원을받을 수 있습니다.

+0

그게 내가 할 수없는 일이다. 필자는 DB2, Oracle, MsSQL, Sybase SQL Server, Ingres, UniSys 또는 MySQL이 그러한 시스템을 만들 수 있는지 충분히 알지 못한다. –

+1

SQL 쿼리를 작성하는 방법을 배우는 것은 각 클라이언트의 데이터를 수동으로 구문 분석하고 필터링하는 것보다 훨씬 쉽습니다. 나는 단지 짧은 SQL 튜토리얼 ([this one] (http://zetcode.com/db/sqlite/) SQLite와 같은)을 사용하는 것을 권장한다. 불행히도 많은 스크립트 (및 디버깅)없이 또는 데이터베이스 쿼리 언어를 배우지 않고도 원하는 것을 정확하게 처리 할 수있는 준비가 된 솔루션이 될 가능성이 있습니다. – Anthony

관련 문제