RDB�Ƃ͕ʂ́A�N���E�h����̃f�[�^�x�[�X�Ƃ��Ē��ڂ𗁂тĂ���u���UKey-Value�X�g�A�v�B���̖{���Ƃ�������AGoogle�̐��X�̃T�[�r�X�̊�ՋZ�p�uBigtable�v�ɂ��ēO����
�@����3000��PV�����̖c��ȃg���t�B�b�N���y�X�Ƃ�����K�̓T�C�g���A���z4���~��ʼn^�p����Ă���B
�@Google App Engine�i�ȉ��AApp Engine�j�����y����ɂ�āA����ȋ����̍���������o�ꂵ����܂��BGClue��App Engine��Ŏ�������mixi�A�v�����o�C�����o�C���ɂ́A1��100��PV�ȏ�̃A�N�Z�X���W�����Ă����Ԃł��T�[�r�X�̃��X�|���X�ቺ��_�E���͊F���������ł��B1���̉^�p�R�X�g�i�O�[�O���ւ̎x���������j��$12���x�ŁA�v���O���}�ȊO�ɐ�C�̃T�[�o�Ǘ��҂Ȃǂ͂܂������s�v�Ƃ̂��Ƃł��B
�@��������App Engine�̂����Ⴂ�̃X�P�[���r���e�B��R�X�g�p�t�H�[�}���X�Ƃ������傫�ȁu���l�v��ɂ́A�����G���W�j�A�����ꑊ���́u���z�̓]���v�������K�v������܂��B
�@�O��́u�f�p��Bigtable�A�ł��邱�� �ł��Ȃ������v�ł����������Ƃ���AApp Engine�̒��j���Ȃ��f�[�^�X�g�A�uBigtable�v�́A�u�L�[���w�肵�Ēl��ǂݏ�������v�Ƃ����P���ȋ@�\�����T�|�[�g���Ă��Ȃ����UKey-Value�X�g�A�i���UKVS�j�ł��B���̑f�p�ȃf�[�^�X�g�A�̑傫�Ȑ��������A���̂����ŕ��G��Web�A�v���P�[�V�����̃��W�b�N�������ɂ��Ď����ł��邩�H�v���Ă������Ƃ��A���̔��z�̓]���ւ̂͂��߂̈���ƂȂ�܂��B
�@�O������������Ƃ���ABigtable�́A�����[�V���i���f�[�^�x�[�X�iRDB�j�ɂ�����N�G����W���C������T�|�[�g���Ă��炸�A�ȉ���2��ނ̋@�\��������Ă��܂��B
�@�u�L�[�Ɋ�Â��s��CRUD�v�Ƃ́A�X�̍s�Ɋ��蓖�Ă�ꂽ�u�L�[�v���w�肵�āA�s��CRUD�i�lj��A�擾�A�X�V�A�폜�j���s�����Ƃł��B����A�u�L�[�Ɋ�Â��X�L�����v�Ƃ́A�L�[�̑O����v�����A�������́A�͈͎w�茟���ɂ��A�����̍s���ꊇ�擾����@�\�ł��B
�@�Ⴆ�Ώ�L�́u�X�L�����̗�1�v�ł́A�e�[�u���uEmp�v�ɑ��āA�L�[���u02�v�Ŏn�܂�s��O����v�����ŃX�L�������A�u�R�c�v�u��v�Ƃ���2�s���擾���Ă��܂��B�܂��u�X�L�����̗�2�v�ł́A�L�[���u040�v����u070�v�܂ł̍s��͈͎w�茟���ŃX�L�������A�u�g��v�u��c�v��2�s�Ă��܂��B
�@Bigtable��������B��̌����́A���̃X�L���������ł��B�܂�A�l�������Ƃ��������͈�؎��s�ł��܂���BBigtable�ɂ��Ċw�юn�߂������A�M�҂́u����łǂ�����ăA�v���P�[�V�������W�b�N�������̂��낤�v�ƔY�݂܂����B�������AApp Engine�ł́A���̖₢�ɓ�����\�����[�V��������Ă��܂��B����́ABigtable���RDB���C�N�ȃN�G���@�\����������uDatastore�T�[�r�X�v�ł��B
�@Datastore�T�[�r�X�Ƃ́AApp Engine��œ��삷��Python��������Java�A�v���P�[�V������Bigtable�ɃA�N�Z�X���邽�߂̃T�[�r�X�ł���A��Ɉȉ���3�̋@�\����܂��B
�@�����Łu�G���e�B�e�B�v�Ƃ́APython��Java�̌X�̃I�u�W�F�N�g��ۑ�����Bigtable�̍s��\���܂��BDatastore�T�[�r�X�ł́A���̃G���e�B�e�B�ɑ��ăL�[�Ɋ�Â�CRUD���\�ł��B�����āARDB���C�N�ȁu�N�G���v�ɂ��G���e�B�e�B�̌��������s�ł���̂��d�v�ȃ|�C���g�ł��BApp Engine��Java�ł̏ꍇ�A������Datastore�T�[�r�X�̋@�\�́A�ȉ���3��API��ʂ��ė��p�ł��܂��B
�@�����̂����A�uJDO�v����сuJPA�v�́AJCP�iJava Community Process�j��ʂ��č��肳�ꂽ�W���̃f�[�^�i����API�ł��B�Ƃ͂����AJDO��JPA�̋@�\���t���������Ă���킯�ł͂Ȃ��A�����܂ŁuBigtable�Ŏ����ł���@�\�̂ݕW��API�ɍ��킹�Ē��Ă���v�Ƃ������ʒu�t���ł��B
�@����A��x��API�i�ȉ��ALL�j��App Engine�Ǝ���API�ł���A�ق���2��API�ɔ�ׂĂ��g���́hBigtable�ɋ߂��@�\����܂��i�Ȃ��A�ȉ��ł�JDO�Ɋ�Â��Đ����𑱂��܂����A�����3��API�̂������I�����ׂ����ɂ��ẮA�{�e�Ō�̏����������������j�B
�@���āA1�߂̋@�\�ł���u�L�[�Ɋ�Â��G���e�B�e�B��CRUD�v�́A��ɋL����Bigtable�́u�L�[�ɂ��s��CRUD�v�Ɠ����@�\�ł��B�ȉ��́AJDO�ɂ��G���e�B�e�B�ۑ��̋L�q��ł��B
PersistenceManager pm = PMF.get().getPersistenceManager(); Emp e = new Emp("�R�c", 18, "D5"); try { pm.makePersistent(e); } finally { pm.close(); }
�@���̗�̂悤�ɁAPersistentManager�N���X��makePersistent()���\�b�h�ɑ�����close���\�b�h���Ăяo�����ƂŁAJava�I�u�W�F�N�g�ł���Emp��Bigtable��1�s�Ƃ��ĕۑ��ł��܂��B���Ȃ݂ɁA��������CRUD�����ɗv���镽�ώ��Ԃ͐�10ms���x�ŁA�O����������Ƃ���A���Ƃ����疜���̃G���e�B�e�B���ۑ�����Ă��Ă��������Ԃ͕ω����܂���B
�@�܂�Bigtable�ł́AACID�����̕ۏ��͈̔͂��s�P�ʂł������̂ɑ��ADatastore�T�[�r�X�ł́u�G���e�B�e�B�E�O���[�v�v�ƌĂ�镡���̃G���e�B�e�B�̏W�܂��ΏۂƂ���ACID�����̕ۏ��\�ł��B����āA�Ⴆ�uDept�G���e�B�e�B�v�ƁuEmp�G���e�B�e�B�v���G���e�B�e�B�E�O���[�v�Ɋ܂߂Ă����A�g�����U�N�V�����̋������ł��s�����̔�����h�����Ƃ��ł��A��ʓI��RDB�Ɠ����̐M�������m�ۂł��܂��B
�@Datastore�T�[�r�X�̂���1�̋@�\�ł���u�N�G���v�Ƃ́A�G���e�B�e�B�̃v���p�e�B�i�t�B�[���h�j�̒l�������Ƃ��錟���@�\�ł��B�ȉ��́AJDO��p���ăN�G�������s����R�[�h�̗�ł��B
uery query = pm.newQuery("select from Emp " + "where age >= _startAge & age <= _endAge " + "order by age asc " + "parameters int _startAge, int _endAge")List<Emp> results = (List<Emp>) query.execute(20, 40);
�@���̗�ł́AJDO����߂�SQL���C�N�ȃN�G������ł���uJDOQL�v�ŃN�G���������L�q���AQuery�I�u�W�F�N�g��execute()���\�b�h���Ăяo���ăN�G�������s���Ă��܂��B��L�̃N�G���́uage�v���p�e�B��20�`40��Emp�G���e�B�e�B�ꗗ���擾���Aage�v���p�e�B�̏����Ń\�[�g����v�Ƃ����Ӗ��ł��B���������N�G���́A�ʏ�150�`200ms���x�̎��Ԃŏ�������܂��B
�@���̂悤�ɁA�ꌩ�����Datastore�ł�RDB�̂悤�ȁu�e�[�u���̃J�����l�������Ƃ��������v�����s�ł��Ă���悤�Ɍ����܂��B�������J��Ԃ����������Ƃ���ABigtable�͂����܂Łu�X�L�����v�������s�ł��܂���B���̊Ԃ߂�J�M���A�u�V���O���v���p�e�B�C���f�b�N�X�v�ł��B���y�[�W�ʼn�����܂��B
Copyright © ITmedia, Inc. All Rights Reserved.