2014-07-11 2 views
3

나는 꽤 오래 동안 MySQL 서버를 사용하는 더미 데이터로 grails 애플리케이션을 구축했다. 이것은 결국 Greenplum DB (postgresql 클러스터)에 연결될 예정이었다. 그러나 이것은 방화벽 문제로 인해 더 이상 가능하지 않습니다.Grails with CSV (No DB)

공유 드라이브에있는 CSV 파일에 grails를 연결하려고했습니다 (greenplum DB에 의해 지속적으로 업데이트되고 데이터는 시간 단위로만 추가됩니다). 이 CSV 파일은 상당히 큽니다 (3MB, 30MB 및 60MB). 550,000 개 이상의 행 빠른 질문 :

  1. 이도 가능한가? CSV를 데이터베이스로 취급 할 수 있으며 grails가이 CSV 파일에 직접 액세스하여 DB와 비슷한 쿼리를 실행할 수 있습니까?
  2. 데이터 소스, 컨트롤러 및 색인의 grails 코드에이 얼마나 많이 필요합니까 (현재 우리는 Mysql에 연결되어 있고 sql 쿼리 및 remotefunction을 사용하여 컨트롤러 및 색인의 데이터를 필터링합니다))
  3. 상수 읽기 (csv -> grails) 및 쓰기 (greenplum -> csv)로 인해 CSV 파일이 손상되거나 더 이상 문제가 발생하지 않습니까?

나는 이것이 매우 견고한 방법은 아니지만 실제로이 아이디어의 타당성을 이해해야한다는 것을 알고 있습니다. grails는 모든 DB와 기능을 공유 할 수 있으며 공유 드라이브의 CSV 파일 만 여러 사용자가 액세스 할 수 있습니까?

+0

csv에 대한 액세스 권한이있는 경우 스크립트를 사용하여 Mongo와 같은 RDMS 또는 NOSQL에 해당 csv 데이터를 채우지 않는 이유는 무엇입니까? CSV 파일을 계속 읽는 cron을 실행하고 원하는 DB를 채울 수 있습니다. 그런 다음 채워진 DB에 grails를 사용할 수 있습니다. –

+0

이 방법을 따르면 RDMBS/MongoDB가 나중에 여러 사용자를 위해 배포 될 grails 응용 프로그램을 사용하기위한 전제 조건이됩니까? – user3825692

+0

나는 그렇다고 생각한다. 어디서나 배포 할 수 있도록 db 설정을해야합니다. 또는 한 대의 컴퓨터에 DB를 설치하고 해당 컴퓨터의 db 설정을 사용하도록 모든 배포 datssource를 구성 할 수 있습니다. –

답변

3

짧은 대답은 아니오입니다. 이것은 좋은 해결책이 아닙니다.

  1. 번호
  2. 이 재 작업 가능한 모든 경우가 거의 불가능하다.
  3. 모든 환경에서 이와 같은 파일에 동시에 액세스하는 것은 재난의 처치입니다.

Grails는 이와 같은 솔루션에 적합하지 않습니다.

업데이트 : Grails 애플리케이션 자체와 함께 패키징 할 수있는 내장 H2 데이터베이스를 사용 해본 적이 있습니까? 이렇게하면 WAR 내에서 Grails 애플리케이션과 함께 데이터베이스 엔진을 배포 할 수 있습니다. 처음 실행될 때 또는 정기적으로 언급되는 CSV의 데이터베이스를 채울 수도 있습니다. 요구 사항에 따라 다릅니다.

+0

당신은 DB를 갖는 것이 절대적으로 필요하다고 말하고 있습니까? DB가 없으면 CSV에서 모든 작업을 수행하는 것이 완전히 불가능합니다. – user3825692

+0

내가 말하고있는 것은 평범한 텍스트 파일 인 CSV로 여러 사용자와 데이터 저장 및 조작을 위해 설계된 데이터베이스를 대체 할 수 없다는 것입니다. Grails를 데이터베이스없이 사용할 수 있습니다. 나는 그렇게하는 몇 가지 프로젝트를 가지고있다. 하지만 DB를 CSV로 교체 할 수는 없으며 그렇게해서는 안됩니다. –

+0

Grails의 H2 DB에 모든 CSV 파일을 저장할 수 있습니까? 공유 드라이브 인 경우 Python 스크립트로 파일을 업데이트 할 수있는 옵션이 있습니다. 어떻게 H2 DB에 통합 할 수 있습니까? 이 파일들을 거기에로드 할 수 있다고 가정하면 H2 DB에서 스케줄링이 가능합니까? – user3825692