아마존 클라이언트 라이브러리가 고통 스럽기 때문에 Net2D :: Amazon :: SimpleDB :: Simple에서 간단하게 앱을 포팅 할 수 있도록 라이브러리를 작성했습니다. 라이브러리는 아직 CPAN에 없지만, http://rjurneyopen.s3.amazonaws.com/SimpleDB/Simple.pm에 있습니다. 아이디어는 SimpleDB 안팎에 해시를 채우는 것을 사소한 것으로 만드는 것이 었습니다.
방금 앱을 사용하기 위해 포팅했습니다. 전반적으로 SimpleDB에 깊은 인상을 받았습니다 ... 비효율적 인 쿼리조차도 반환하는데 2-3 초 밖에 걸리지 않습니다. SimpleDB는 Erlang/parallel 특성으로 인해 테이블의 크기를 신경 쓰지 않는 것처럼 보입니다. 테이블 캔은 쉽게 사용할 수 있습니다.
고통은 당신이 세거나, 합계하거나, 그룹화 할 수 없다는 사실에서 비롯됩니다. 그런 일을하려고한다면 ... SimpleDB는 아마 당신을위한 것이 아닙니다. 지금은 기능면에서 memcached와 MySQL 사이의 어딘가에 존재합니다. 당신은 제한적으로 주문을하실 수 있습니다. 그것도 당신 자신이 그것을 확장 할 필요가 없다는 것은 좋은, 그리고 당신이 그것에 얼마나 많은 것들을 상관 상관하지 않는 좋은. 그러나 분석과 같은 고급 작업은 기껏해야 고통 스럽습니다. 당신은 자신의 계산 서버 측을해야 할 것이다. 그것도 큰 플러스 모든 컴퓨터에서 나는 simpledb CLI를 http://code.google.com/p/amazon-simpledb-cli/ 내 데이터를 쿼리를 사용할 수 있습니다.
혼란스러운 '잡았다'가 있습니다. 예를 들어, 속성은 둘 이상의 값을 가질 수 있으며 아이템을 저장할 때 'replace'를 명시 적으로 설정해야합니다. 또한 undef 또는 null 문자열을 저장하면 해당 속성 이름/값 쌍을 삭제하거나 null/빈 문자열을 설정하는 대신 라이브러리 오류가 발생합니다.
크게 정규화되지 않은 방식으로 생각하는 것을 배우는 것은 조금 이상합니다. 위의 제안은 새로운 응용 프로그램에 가장 적합하다고 말하면서 두 번째 이유입니다. SQL 응용 프로그램에서 SimpleDB로 이식하는 것은 응용 프로그램 논리를 변경해야하기 때문에 고통 스러울 수 있습니다. 당신이하는 일은 조금 다릅니다. 아마존의 문서는 이것을 설명하는 데 꽤 능숙합니다.
이 모든 것은 SimpleDB 꼭대기에있는 라이브러리에서 추출 할 수 있습니다. 따라서 SimpleDB를 사용하기 위해서는 좋은 라이브러리를 선택하고 싶을 것입니다. 아마 직접적으로 다루지 않을 것입니다. PHP 측에서는 일을 쉽게하기위한 몇 가지 작업이 있으며 내 라이브러리가 있습니다. RAILS activesource가 있지만,별로 도움이되지 않는 것 같습니다.
여전히 게임 초기이지만 다른 API와 비교할 때 (트위터가 떠오른다), SimpleDB REST API는 매우 간단하며 (특히 XML이라고 생각하면) 와. 나는 당신의 응용 프로그램의 요구 사항과 그것의 사용의 경제성에 따라 그것을 추천 할 것입니다. DB에 큰 부담을주지 않고 확장 가능한 MySQL/memcache 콤보로 귀찮게하지 않으려는 서비스를 빠르게 확장하려는 경우 SimpleDB는 '간단한'솔루션을 제공 할 수 있습니다.
필자는 기능이 계속 성장할 것으로 기대하며, 더 복잡하고 흥미로운 것들을 많이하는 응용 프로그램에 좋은 선택이 될 것입니다. 그러나 지금은 일반적인 Web 2.0 서비스를 타깃으로하며 이에 적합합니다.
RDS> MySQL은 꽤 비쌉니다! – Jasper