Điện toán đám mây với Web Amazon Services, Phần 5 : Xử lý dữ liệu trong đám mây với SimpleDB

Tìm hiểu những khái niệm cơ bản về Amazon SimpleDB (SDB) và khám phá một số chức năng được cung cấp bởi boto, một thư viện mã nguồn mở Python để tương tác với SDB. Trong loạt bài "Điện toán mây với Web Amazon Services" này, tìm hiểu về điện toán đám mây sử dụng dịch vụ Web Amazon. Khám phá cách các dịch vụ cung cấp một sự thay thế hấp dẫn cho việc kiến trúc và xây dựng các ứng dụng đáng tin cậy với khả năng mở rộng. Trong bài viết này, bạn sẽ tìm hiểu về các khái niệm cơ bản và tham khảo một số các hàm được cung cấp bởi boto.

Prabhakar Chaganti, Kiến trúc sư trưởng, Ylastic, LLC

Prabhakar Chaganti photoPrabhakar Chaganti là CTO của Ylastic, là người đầu tiên thực hiện xây dựng một giao diện thống nhất cho các nhà kiến trúc sư, nhà quản lý và người giám sát của môi trường điện toán đám mây AWS: EC2, S3, SQS và SimpleDB. Ông cũng là tác giả của hai trong số các cuốn sách được xuất bản gần đây, là Xen Virtualization và GWT Java AJAX Programing. Đồng thời ông cũng giành được giải thưởng cao nhất cho hầu hết các sáng tạo ứng dụng máy ảo trong VMware Global Virtual Appliance Challenge



05 07 2009

Amazon SimpleDB

Amazon SDB là một khung làm việc truy vấn và chỉ số hóa tập dữ liệu theo thời gian thực một cách nhanh chóng và có thể mở rộng được, nó làm cho việc truy xuất dữ liệu có cấu trúc từ các ứng dụng dựa trên Amazon Web Services trở nên dễ dàng. Nó được thiết kế để làm việc tốt với các dịch vụ khác của Amazon Web Services, như là điện toán đám mây mềm dẻo (Elastic Compute Cloud - EC2) và dịch vụ lưu trữ đơn giản (Simple Storage Service - S3). SDB cho phép bạn xây dựng các ứng dụng tương tác với nhau trong môi trường Amazon Web Services. Bạn chỉ phải thanh toán phí cho dịch vụ mà bạn đã thực sự sử dụng. Một số lớp dịch vụ là miễn phí.

IBM và Amazon Web Services

IBM và AWS phối hợp để cung cấp truy cập tới phần mềm của IBM trong một môi trường điện toán ảo. Trải nghiệm Amazon EC2 giúp bạn đánh giá và sử dụng phần mềm mà không cần cài đặt nó vào hệ thống của bạn. Bạn có thể điều chỉnh dung lượng gần như ngay tức thì, xây dựng các ứng dụng sẵn sàng cho doanh nghiệp trong một môi trường tin cậy và hiệu năng cao nơi mà bạn chỉ phải trả phí cho thời gian và dung lượng bạn sử dụng. Phần mềm của chúng tôi bao gồm:

  • DB2 Express-C 9.5
  • Informix Dynamic Server Developer Edition 11.5
  • WebSphere Portal Server và Lotus Web Content Management Standard Edition
  • WebSphere sMash

Đây là mã nguồn ở cấp độ sản phẩm, với tất cả các đặc tính và tùy chọn đã được bật. Tìm hiểu thêm thông tin và tải Amazon Machine Images cho những sản phẩm này trên Trung tâm tài nguyên điện toán đám mây developerWorks.

Để tìm thêm tài nguyên về điện toán đám mây, xem Cloud computing space trên developerWorks.

Một số tính năng đáng giá cung cấp bởi SDB:

Tính tin cậy
SDB được thiết kế để lưu trữ dữ liệu được đánh chỉ số của bạn một cách dư thừa xuyên qua các trung tâm dữ liệu để làm cho chúng sẵn sàng tại mọi thời điểm.
Tốc độ
SDB được thiết kế để cung cấp truy xuất dữ liệu nhanh, đặc biệt nếu các yêu cầu của bạn được tạo ra từ một thể hiện EC2 trong môi trường Amazon Web Services.
Tính đơn giản
Mô hình lập trình cho việc truy cập và sử dụng SDB rất đơn giản và có thể được sử dụng từ rất nhiều ngôn ngữ lập trình khác nhau.
Bảo mật
SDB được thiết kế để cung cấp độ bảo mật cao. Chỉ có những người dùng được chứng thực mới có thể truy cập tới dữ liệu.
Tính mềm dẻo
SBD cung cấp khả năng để lưu trữ dữ liệu ngay trong quá trình xử lý mà không cần bất cứ lược đồ được định nghĩa trước nào.
Giá rẻ
Phí sử dụng SDB rất kinh tế. Bạn chỉ phải trả cho những gì bạn thực sự dùng.

Phần còn lại của bài này khám phá các khái niệm nền tảng của SDB.

Miền (Domains)

Một miền (domain) là một thùng chứa mà giúp bạn lưu trữ dữ liệu có cấu trúc của bạn và thực hiện các truy vấn trên chúng. Dữ liệu được lưu trữ trong một miền như các phần tử (item). Một cách khái niệm, một miền giống như một bảng làm việc trong một bảng tính; các phần tử là các dòng trong bảng tính. Bạn có thể thực thi các truy vấn trên một miền, nhưng bạn chưa thể truy vấn liên thông giữa các miền với phiên bản hiện tại của SDB.

Mỗi miền có những dữ liệu thông tin sau đính kèm với nó:

  • Ngày và giờ mà dữ liệu thông tin được cập nhật lần cuối
  • Số các phần tử trong một miền
  • Số các cặp tên thuộc tính-giá trị (attribute name-value) trong miền
  • Số các tên thuộc tính duy nhất trong miền
  • Tổng kích thước của tất cả các tên phần tử trong miền, theo bytes
  • Tổng kích thước của tất cả các giá trị thuộc tính, theo bytes
  • Tổng kích thước của tất cả các tên thuộc tính duy nhất, theo bytes

Trưởng phòng công nghệ của Amazon Werner Vogels thảo luận nguyên do đằng sau khái niệm của "bền vững cuối cùng" trên trang tin cá nhân.

SDB, giống như Simple Queue Service (SQS), tuân theo mô hình "bền vững cuối cùng (eventual consistency)". SDB duy trì nhiều bản sao của mỗi miền để tránh bị lỗi. Mọi thay đổi trên một miền sẽ được lan truyền liên thông qua tất cả các bản sao. Vì thao tác này đôi khi mất vài giây để thực hiện, tùy theo trạng thái của hệ thống và mạng, có thể một ứng dụng của bạn sẽ không thấy các thay đổi ngay lập tức. Các thay đổi cuối cùng cũng sẽ được lan truyền trong SDB, nhưng bạn phải thận trọng cân nhắc sự chậm trễ này khi thiết kế các ứng dụng dựa trên SDB.

Các phần tử

Các phần tử biểu diễn các đối tượng riêng lẻ trong các miền của bạn, và chúng chứa các thuộc tính với các giá trị. Về mặt khái niệm, mỗi phần tử là giống với một dòng trong một bảng tính — một thuộc tính là một cột và các giá trị là các ô. Các thuộc tính có thể có nhiều giá trị chứ không nhất thiết phải là một giá trị đơn. SDB tự động chỉ số hóa các miền của bạn mà không quan tâm đến cấu trúc dữ liệu của bạn.

SBD cũng có giới hạn thời gian cho việc thực thi một truy vấn đơn lẻ trên các miền của bạn. Nếu một truy vấn vượt quá 5 giây, SDB sẽ dừng truy vấn và trả lại một lỗi.

Các miền trong SDB rất mềm dẻo và không có bất kỳ lược đồ cố định nào. Mỗi phần tử trong một miền có thể chứa một tập duy nhất lên tới 256 thuộc tính. Các thuộc tính có thể khác với các thuộc tính trong cùng một phần tử hoặc khác phần tử trong miền đó.

Các giới hạn

Phiên bản hiện tại của SDB có các giới hạn mà bạn nên cân nhắc khi thiết kế ứng dụng của bạn. Bảng 1 chỉ ra các giới hạn đó (như được chỉ ra trong tài liệu mới nhất bởi Amazon).

Bảng 1. Các giới hạn hiện tại
Tham sốSự hạn chế hiện tại
Kích thước miền 10 GB cho một miền
250,000,000 cặp tên thuộc tính-giá trị
3-255 ký tự (a-z, A-Z, 0-9, '_', '-', và '.')
Số miền cho một tài khoản Amazon Web Services 100
Các thuộc tính Cặp tên-giá trị cho một phần tử là 256.
Độ dài tên là 1024 bytes.
Độ dài giá trị là 1024 bytes.

Chỉ các ký tự được phép là các ký tự UTF-8 mà có hiệu lực trong các tài liệu XML. Các ký tự điều khiển và bất cứ chuỗi nào mà không hiệu lực trong XML đều không được phép.

Thao tác PutAttributes bị giới hạn tới 100
Thao tác Select hoặc QueryWithAttributes bị giới hạn tới 256.
Số phần tử tối đa trong kết quả truy vấn 256
Thời gian thực hiện truy vấn tối đa 5 giây
Số vị ngữ tối đa cho một biểu thức truy vấn 10
Số phép so sánh tối đa cho một vị ngữ của biểu thức truy vấn 10
Số tối đa của các thuộc tính duy nhất trên một biểu thức lựa chọn 20
Số tối đa của các phép so sánh trên một biểu thức lựa chọn 20
Kích thước trả về tối đa cho một QueryWithAttributes và Select 1 MB

Giá

Amazon cung cấp một "cấp miễn phí" cho SDB, cùng với giá cho việc sử dụng khi vượt quá giới hạn của cấp miễn phí. Phí được dựa trên:

  • Lượng dùng của mối yêu cầu SDB.
  • Dung lượng của khả năng của máy được sử dụng cho việc hoàn thành yêu cầu cụ thể, chuẩn hóa với khả năng theo giờ của một bộ xử lý Xeon 1.7-GHz.

Cấp miễn phí

25 giờ dùng máy đầu tiên, 1 GB dữ liệu luân chuyển, và 1 GB của kho lưu trữ mà bạn tiêu thụ mỗi tháng là miễn phí ít nhất là đến 01 tháng 6 năm 2009. Đây là một khối lượng đáng kể của lượng sử dụng được cung cấp miễn phí cho một giới hạn thời gian bởi Amazon. Rất nhiều kiểu ứng dụng có thể hoạt động một cách dễ dàng trong giới hạn miễn phí này. Bảng 2 chỉ ra ví dụ về giá.

Bảng 2. Giá cho việc sử dụng máy
Số lượngGiá
25 giờ máy đầu tiên Miễn phí
Các giờ máy tiếp theo $0.14 cho một giờ máy

Bảng 3 chỉ ra lượng dữ liệu luân chuyển đến và đi từ SDB. Dữ liệu luân chuyển giữa SDB và các dịch vụ khác của Amazon Web Services trong cùng một vùng là miễn phí. Dữ liệu luân chuyển liên vùng giữa SDB và các dịch vụ khác của Amazon Web Services sẽ bị tính phí với giá chuyển dữ liệu qua internet (Internet Data Transfer) trên cả hai phía.

Bảng 3. Phí truyền dữ liệu
Kiểu truyềnGiá
Tất cả dữ liệu 1 GB dữ liệu đầu tiên truyền đến là miễn phí
$0.100 cho 1 GB — dữ liệu phụ trội truyền đến

1 GB dữ liệu đầu tiên truyền đi là miễn phí
$0.170 cho 1 GB — của 10 TB dữ liệu đầu tiên trong tháng truyền đi
$0.130 cho 1 GB — của 40 TB dữ liệu tiếp theo trong tháng truyền đi
$0.110 cho 1 GB — của 100 TB dữ liệu tiếp theo trong tháng truyền đi
$0.100 cho 1 GB — dữ liệu truyền đi trong tháng vượt quá 150 TB

Bảng 4 phác thảo giá cho việc lưu trữ dữ liệu có cấu trúc.

Bảng 4. Lưu trữ dữ liệu có cấu trúc
Khối lượng lưu trữGiá
Tất cả dữ liệu lưu trữ 1 GB đầu tiên của dữ liệu là miễn phí.
$0.25 cho 1 GB / tháng - tất cả dữ liệu phụ trội

Để biết bảng giá mới nhất, xem Amazon SDB. Bạn cũng có thể sử dụng Simple Monthly Calculator được cung cấp bởi Amazon để tính phí sử dụng hàng tháng của bạn cho SDB và các dịch vụ khác của Amazon.


Bắt đầu với SDB

Để bắt đầu khám phá SDB, bạn cần đăng ký một tài khoản của Amazon Web Services (xem Tài nguyên). Xem Phần 2 của loạt bài này để biết chi tiết cách đăng ký. Khi bạn đã có tài khoản của Amazon Web Services, bạn phải kích hoạt dịch vụ SDB cho tài khoản của bạn:

  1. Đăng nhập vào tài khoản Amazon Web Services của bạn.
  2. Tìm tới trang chủ SDB.
  3. Nhấn Đăng ký cho dịch vụ Web này (Sign Up For This Web Service) nằm ở bên phải.
  4. Cung cấp thông tin cần thiết và hoàn tất quá trình đăng ký.

Tất cả các giao tiếp với với bất kỳ dịch vụ nào của Amazon Web Services đều thông qua hoặc giao diện SOAP hoặc giao diện truy vấn. Trong bài viết này, bạn dùng giao diện truy vấn thông qua thư viện của bên thứ ba để giao tiếp với SDB.

Bạn sẽ cần các khóa truy cập, cái mà bạn có thể lấy từ trang thông tin tài khoản cá nhân bằng cách chọn Xem định danh khóa truy cập (Access Key Identifiers). Bây giờ bạn đã sẵn sàng để sử dụng Amazon Web Services và đã kích hoạt dịch vụ SDB cho tài khoản của bạn.


Tương tác với SDB

Trong ví dụ này, bạn sử dụng một thư viện Python mã mở của bên thứ ba tên là boto để làm quen với SDB bằng cách thực thi các đoạn mã nhỏ trong cửa sổ lệnh Python.

Cài đặt boto và thiết lập môi trường của bạn

Tải boto. Phiên bản mới nhất, khi viết bài này, là 1.6b. Giải nén vào một thư mục tùy ý. Chuyển thư mục làm việc tới nó và thực thi setup.py để cài đặt boto vào môi trường Python của bạn, như trong Ví dụ 1.

Ví dụ 1. Cài đặt boto
$ cd directory_where_you_unzipped_boto

$ python setup.py install

Thiết lập các biến môi trường để trỏ tới các khóa truy cập Amazon Web Services. Các khóa có sẵn trên trang thông tin tài khoản Web Services Account.

Ví dụ 2. Thiết lập các biến môi trường
# Export variables with your AWS access keys
$ export AWS_ACCESS_KEY_ID=Your_AWS_Access_Key_ID 
$ export AWS_SECRET_ACCESS_KEY=Your_AWS_Secret_Access_Key

Đảm bảo mọi thứ được thiết lập một cách đúng đắn bằng bách bắt đầu một của sổ lệnh Python và nhập thư viện boto, như trong Ví dụ 3.

Ví dụ 3. Kiểm tra cài đặt
$ python
Python 2.4.5 (#1, Apr 12 2008, 02:18:19) 
[GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
> import boto
>

Khám phá SDB với boto

Sử dụng lớp SDBConnection để cung cấp giao diện chính cho việc tương tác với SDB. Bạn sẽ sử dụng boto từ cửa sổ lệnh Python. Ví dụ gọi các phương thức khác nhau trên đối tượng SDBConnection và kiểm tra phản hồi trả về bởi SDB, cái mà sẽ giúp bạn làm quen với API trong khi bạn khám phá các khái niệm đằng sau SDB.

Bước đầu tiên là tạo một đối tượng kết nối tới SDB bằng cách sử dụng các khóa truy cập Amazon Web Services bạn đã nhập vào môi trường của bạn. Thư viện boto luôn kiểm tra môi trường trước tiên để xem nếu các biến đó có tồn tại không. Nếu có, boto tự động sử dụng chúng khi tạo kết nối.

Ví dụ 4. Tạo một kết nối tới SDB
> import boto
> sdb_conn = boto.connect_sdb()
>

Trong phần còn lại của bài viết này, bạn có thể sử dụng đối tượng sdb_conn, được tạo ở trên, để tương tác với SDB. Bạn có thể tạo các miền mới bằng cách chỉ ra một tên cho miền.

Ví dụ 5. Tạo một miền
> d1 = sdb_conn.create_domain('devworks-dom-1')
>

Lấy danh sách tất cả các miền, cái mà trả lại một đối tượng tập kết quả mà là một danh sách của Python, như trong Ví dụ 6. Bạn có thể duyệt qua danh sách này và truy cập tới từng miền.

Ví dụ 6. Liệt kê tất cả các miền
> all_domains = sdb_conn.get_all_domains()
> 
> len(all_domains)
1
> 
> for d in all_domains:
...     print d.name
... 
devworks-dom-1

Bạn cũng có thể lấy một miền đơn lẻ bằng tên của nó.

Ví dụ 7. Liệt kê một miền đơn
> my_domain = sdb_conn.get_domain('devworks-dom-1')
> 
> print my_domain.name
devworks-dom-1

Các miền mới khởi tạo đương nhiên là rỗng cho đến khi bạn thêm các phần tử vào. Bạn tạo một phần tử mới trong một miền, sau đó thêm các thuộc tính vào.

Ví dụ 8. Tạo mới một phần tử
> my_domain = sdb_conn.get_domain('devworks-dom-1')
> 
> i1 = my_domain.new_item('test_item_1')
> 
> i1['cars'] = 'BMW'
> 
> i1['fruits'] = ['apple', 'orange', 'mango']
>

Các phần tử có thể lấy được từ một miền bằng cách chỉ rõ tên phần tử, tên phần tử phải là duy nhất. Nó tương tự như khái niệm khóa chính trong một cơ sở dữ liệu quan hệ.

Ví dụ 9. Lấy một phần tử và các thuộc tính của nó
> my_item = my_domain.get_item('test_item_1')
> 
> print my_item
{u'cars': u'BMW', u'fruits': [u'apple', u'mango', u'orange']}
>

Đối tượng phần tử được trả lại ở trên là một đối tượng Item mà sẽ tự động lấy tất cả các thuộc tính của phần tử này từ SDB khi bạn truy cập bất cứ một thuộc tính nào của nó. Bất cứ cập nhật nào trên các giá trị của các thuộc tính của đối tượng này sẽ được lưu trữ một cách tự động trong SDB.

Ví dụ 10. Cập nhật thuộc tính
> my_item['cars']
u'BMW'
>
> my_item['cars'] = 'Honda'
> 
> my_item['cars']
'Honda'
>

Bạn cũng có thể lấy các phần tử và các thuộc tính bằng cách sử dụng lớp SDBConnection và chỉ rõ miền và các tên phần tử.

Ví dụ 11. Lấy một phần tử bằng cách sử dụng lớp SDBConnection
> 
> sdb_conn.get_attributes('devworks-dom-1','test_item_1')
{u'cars': u'Honda', u'fruits': [u'apple', u'mango', u'orange']}
>

Một phần tử bị xóa một cách tự động bởi SDB nếu nó không có bất kỳ một thuộc tính nào. Bạn cũng có thể xóa một phần tử cụ thể và các thuộc tính của nó.

Ví dụ 12. Xóa một phần tử và các thuộc tính của nó
> sdb_conn.get_attributes('devworks-dom-1','test_item_1')
{u'cars': u'Honda', u'fruits': [u'apple', u'mango', u'orange']}
> 
> sdb_conn.delete_attributes('devworks-dom-1','test_item_1')
True
> sdb_conn.get_attributes('devworks-dom-1','test_item_1')
{}
>
Ví dụ 13. Xóa một miền
> sdb_conn.delete_domain('devworks-dom-1')
True
>

Truy vấn các miền SDB

Để tìm kiếm dữ liệu có cấu trúc của bạn, SDB cung cấp một ngôn ngữ truy vấn tùy biến mà chứa các cặp tên thuộc tính-giá trị gắn với các phần tử. Thành phần cơ bản khi tạo dựng một biểu thức truy vấn được gọi là một vị ngữ (predicate). Mỗi vị ngữ được chỉ ra bởi một ngoặc vuông mà bao quanh một thuộc tính, một toán tử so sánh, và một giá trị để so sánh. Ví dụ, một vị ngữ, (như là ['desc' = 'Hello Devworks']) xác định một so sánh bằng và tạo ra một tập các tên phần tử. Bạn có thể kết hợp nhiều vị ngữ bằng cách sử dụng các toán tử như là unionintersection để xây dựng các truy vấn phức tạp.

Khi sử dụng các vị ngữ trong truy vấn của bạn, đặc biệt chú ý rằng tất cả các vị ngữ so sánh được thực hiện theo thứ tự từ điển của SDB. Bạn phải đảm bảo rằng dữ liệu của bạn được lưu trữ trong các thuộc tính bằng cách sử dụng sự biểu hiện chuỗi ký tự tương ứng. Lưu ý rằng các truy vấn kéo dài hơn 5 giây sẽ bị hủy bỏ bởi SDB.

Ví dụ 14. Tạo dữ liệu thử nghiệm
> d2 = sdb_conn.create_domain('devworks-dom-2')
>
> i1 = d2.new_item('car1')
> 
> i1['make']= 'BMW'
> i1['color']='grey'
> i1['year']='2008'
> i1['desc']='Sedan'
> i1['model']='530i'
> 
> i2 = d2.new_item('car2')
> 
> i2['make']= 'BMW'
> i2['color']='white'
> i2['year']='2007'
> i2['desc']='Sports Utility Vehicle'
> i2['model']='X5'
>
Ví dụ 15. Truy vấn với một vị ngữ đơn
> rs = d2.query("['make' = 'BMW']")
> for result in rs:
...     print result.name
... 
car1
car2
>
Ví dụ 16. Truy vấn với nhiều vị ngữ
> rs = d2.query("['make' = 'BMW'] intersection ['year' = '2007']")
> for result in rs:
...     print result.name
... 
car2
>

Ngôn ngữ truy vấn cung cấp sự hỗ trợ cho nhiều toán tử so sánh. Nó giúp bạn thực hiện các truy vấn rộng và các truy vấn thuộc tính đa giá trị. Để nắm bắt được tất cả các khả năng và trải nghiệm tốt nhất cho việc tạo các truy vấn và cải tiến chúng để có được sự tối ưu, bạn nên xem các bài viết giới thiệu về ngôn ngữ truy vấn được cung cấp bởi Amazon Web Services.

Bạn cũng có thể lấy được các dữ liệu thông tin cho một miền cái mà cho bạn biết tổng số các phần tử trong miền (bên cạnh các dữ liệu khác).

Ví dụ 17. Dữ liệu thông tin cho một miền
> my_domain = sdb_conn.get_domain('devworks-dom-2')
> 
> my_metadata = my_domain.get_metadata()
> 
> print my_metadata.item_count
2
> print my_metadata.item_names_size
8
> print my_metadata.attr_value_count
10
> print my_metadata.attr_names_size 
22
> print my_metadata.attr_values_size
56
> print my_metadata.timestamp       
1231798889
>

Kết luận

Bài viết này đã giới thiệu với bạn dịch vụ SDB của Amazon. Bạn đã tìm hiểu một số khái niệm cơ bản và đã khám phá một số hàm chức năng được cung cấp bởi boto, một thư viện Python mã mở để tương tác với SDB.

Tài nguyên

Học tập

Lấy sản phẩm và công nghệ

Thảo luận

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Khi bạn đăng ký với trang developerWorks lần đầu tiên, một tiểu sử của của bạn được tạo ra. Chọn các thông tin về tiểu sử của bạn (tên, nước/vùng, và nơi làm việc) đã được hiện lên màn hình, thông tin này sẽ được hiện kèm với nội dung mà bạn đăng tải. Bạn có thể cập nhật thông tin này bất kỳ lúc nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=SOA và dịch vụ Web
ArticleID=406448
ArticleTitle=Điện toán đám mây với Web Amazon Services, Phần 5 : Xử lý dữ liệu trong đám mây với SimpleDB
publish-date=07052009