나는 하스켈을 처음 보았습니다. 무수한 튜토리얼과 기타 리소스를 읽었지만 원격으로 유용한 프로그램을 작성하려고 할 때마다 일반적으로 어디서부터 시작해야할지 모릅니다. 나는 최근에 Gabriel Gonzalez가 동기 부여를 유지하는 가장 좋은 방법이 실제로 프로젝트를 위해 그것을 사용하고 글을 쓰는 방법에 대해 이야기 한 podcast를 듣고 있었기 때문에 나는 현재 가지고있는 과제를 위해 그것을 사용하고 싶습니다.하스켈을 사용하여 한 데이터베이스에서 다른 데이터베이스로 어떻게 이동할 수 있습니까?
그래서 정기적으로 긁어 모으는 항목으로 업데이트되는 Mongo 데이터베이스와 Elasticsearch 데이터베이스가 있습니다. 전자는 이미 전에 긁은 적이있는 항목으로 자주 업데이트되며 후자는 고유 항목으로 채워집니다. 이것을 달성하기 위해 나는 끊임없이 Mongo 데이터베이스의 항목을 하나 하나씩 사용하고, Elasticsearch 데이터베이스에 이미 있는지 검사하고, 그렇지 않으면 추가합니다 (Node.js의 1000 줄) 스크립트를 가지고 있습니다 ; 이후 몽고에서 삭제됩니다. 이 스크립트는 그러나 총 엉망입니다.
하스켈은 내가 읽고들은 내용에서 제어 된 방식으로 IO를 관리하기에 훌륭하고, 데이터 변환을위한 순수한 기능을 유지하는 아이디어를 좋아하기 때문에 하스켈에서 이것을하고 싶었습니다. 실제로 IO를 수행하는 프로그램의 부분이 분리됩니다. 나는 또한 일하는 하스켈 (Haskell) 솔루션이 더 간결하고 추후에 상황을 변경할 때 추론하기 쉽다고 가정한다.
지금까지 mongoDB 패키지를 사용하여 튜토리얼을 따라 Mongo에서 CRUD 작업을 수행했지만 어떻게 작동하는지 아직도 이해할 수없는 많은 것들이 있습니다. 나는 Elasticsearch에서 같은 일을하는 것을 위해 bloodhound 패키지를 사용하는 것이 더 힘들다는 것을 알았고, 나는 성공적으로 추가 된 후에 관련 아이템이 Mongo에서만 삭제된다는 것을 보장하면서, 함께 물건을 어떻게 조립할 것인가에 대해서 완전히 곤란했다. Elasticsearch.
나는 이것이 매우 광범위한 질문이라는 것을 알고 있습니다. 그러나 누군가 이것에 대해 알고 있거나 단순히 어떤 방향으로 나에게 줄 수 있다면, 나는 그것을 감사 할 것입니다. 실제로, 모든 도움은 대단히 감사 할 것입니다.
이 질문은 스택 오버플로 형식을 통해 유용한 방식으로 대답하기에는 너무 광범위합니다. 이 시점에서 달성해야 할 문제를 작은 자체 코드로 증류 한 다음 질문을 던지면 더 나은 결과를 얻을 수 있습니다. – duplode