Sync DynamoDB stream To Elastic Search ( Golang )

DynamoDB (DDB) 는 Non-sql에 Key-Value 의 형태로 Column을 형태에 상관없이 늘려가는 자유롭고 가벼운 저장과 RDMS에 비해 Serverless 형태로 access수에 비례하여 저렴한(하지만 예측하기 어려울 수 있음) 유지비용이 장점이라고 할 수 있는데요 문제는 Non-sql이다보니 검색이 자유롭지 않다는 문제가 있습니다. 좀 검색 기능에 하자가 많아요.. 여기서 이번 product에 대한 AWS의 기술 조언 담당가 분하고 여러 이야기를 나눈 결과 dynamoDB + ElasticSearch 를 사용하는 것이 타당하다는 조언을 받았습니다. dynamoDB는 stream형태로 변화를 관리할 수 있어서 여기에 추가, 삭제, 수정이 있으면 그 정보를 실시간으로 외부로 전달하여 처리하는 것이 가능합니다. ...

December 27, 2021 · EBeb

Golang으로 Redshift로 보낸 Query의 return값 받기

Golang으로 Redshift 접속 후 쿼리실행까지 생각해보니 저번에 글을 쓰고 생성만 보여주고 정작 중요한 보낸Query의 Return값을 받는 방법을 안 썼다는 것이 생각났다 지금은 저번 Quick Start코드와는 완전 다른 무언가가 되어있지만 Quick Start 의 코드로도 충분하니 Quick Start 에 적힌 코드를 참고해보자 주목해야 할 곳은 104번째 줄 116번째 줄 그리고 130번째 줄에 적혀있는 redshiftclient.ExecuteStatement redshiftclient.DescribeStatement redshiftclient.GetStatementResult 이 3종류의 함수이다. 우선 ExecuteStatement는 Redshift에 Query 의 실행을 요청한다. 이 쿼리에는 Redshift가 Id를 부여하여 관리한다. 다만 Query는 처리 시간이 필요하다. 이 처리 상태와 처리 이후 결과의 상태를 확인할 수 있는 것이 DescribeStatement이다. ...

November 22, 2021 · EBeb

Lambda에서 Golang으로 AWS redshift API ( data API )

이 포스트는 AWS로는 잘못된 사용으로 사고를 치고 Go라고는 써본 적도 없는 제가 인턴으로 구르면서 던져진 과제를 해결하는 과정을 담은 포스트입니다. 포스트의 내용이 부적절 할 수 있음을 미리 말씀드립니다. 왜 Go? 회의중 : 아무튼 C++이나 자바는 쓰기에 문법이 그렇고 Python은 느리다 -> Go를 쓰기로 했습니다 솔직한 감상으로는 어차피 쿼리를 보낸 후에 처리하는 작업은 redshift에서 해주는데 쿼리를 구성해서 보내줄 뿐인 프로그램의 처리속도가 과연 redshift의 처리속도에 비해 어느정도의 bottleneck이 되는가에 대해서는 회의적이네요 절대 Python이 편해서 투덜거리는게 아니에요 아무튼 그래요 ...

November 11, 2021 · EBeb