AWS SimpleDB è un servizio web per la gestione di una base dati non relazionale che ci permette di memorizzare i dati in un database senza preoccuparci di creare uno schema per le tabelle e senza specificare il tipo dei campi. Inoltre non è possibile effettuar le join tra le tabelle.
I dati sono memorizzati come oggetti key/value. Ogni oggetto è composto da una chiave univoca e da un insieme di attributi.
Per ogni attributo è possibile specificare uno o più valori. Gli oggetti in Simple DB sono partizionati in domini. Ogni account dispone al massimo di 100 domini ognuno con 10GB di spazio. Le richieste avvengono tramire REST e il servizio ci ritornerà un oggetto XML
[slideshare id=3323143&doc=awssimpledb-100303032248-phpapp01]
Esistono librerie per vari di linguaggi di programmazione.
Per php c’è una classe open-source faceile da utilizzare: sdb.php (download sdb.php)
Ecco come utilizzarla:
primma di tutto inseriamo la classe nel nostro file e creiamo un’istanza con l’acceskey ed il secretkey del nostro accont amazon SimpleDB
[php]
require_once(‘sdb.php’);
$simpleDB= new SimpleDB($accessKey, $secretKey);
[/php]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
Per gestire i domini "tabelle di dati" utilizziamo le seguenti funzioni [php] $simpleDB ->createDomain(‘collezione'); Creare un dominio $listaDomini= $simpleDB >listDomains() ; //Lista dei domini $simpleDB->deleteDomain($nomeDominio) ;//Eliminazione di un dominio [/php] <pre>Per inserire dei dati, basta creare un array associativo nel seguente modo: [php] //Inserimento dati $dati['categoria']['value']=‘film'; $dati['titolo']['value']=‘Pulp Fiction'; $dati['attore']['value'][]=‘J.Travolta'; $dati['attore']['value'][]=‘S.Jackson'; $simpleDB->putAttributes(‘collezione‘, 'item_01', $dati ); [/php] <pre>Dato che i valori possono essere multipli se vogliamo sostituire un valore, dobbiamo specificare che intendiamo aggiornarlo tramire 'replace' [php] //Aggiornamento $dati['autore']['value']='C.Zafòn'; $dati[‘autore’][‘replace’]=true; //aggiorna $simpleDB->putAttributes(‘collezione‘, 'item_2', $dati);</pre> <pre>[/php] [php] //Cancellazione $simpleDB->deleteAttributes(‘collezione', ‘item_02’); [/php] <pre>Pwr ottenere un oggetto dato da una chiave nota utilizziamo : [php] //Prelievo Dati $item= $simpleDB-&gt;getAttributes(‘collezione‘, 'item_01‘); print_r( $item ); // Array ( [Name] => ‘item_01’, // [Attributes] => Array ( // [titolo] => ‘Pulp Fiction’, // [categoria] => ‘Film’, // [attore] => array( 0 =>‘J.Travolta’, // 1 => ‘S.Jackson’ // ) // ) // ) [/php] Se vogliamo utilizzare una query per interrogare i dati, possiamo utilizzare il seguente script, per prelevare i dati . |
[php]
//Utilizzo di select
$token =null;
do{
$query = ‘select * from collezione’;
$primoSet= $db->select(‘collezione’, $query ,$token) );
// max 250 elementi + token
foreach ($primoSet as $item){
// chiave in $item[Name‘]
// valori in $item[‘Attributes’]
}
} while ($token!=null);
[/php]
Grazie. Me ne sono accorto.. Quando parto, sono un fiume in piena..;)
Davvero interessante!!
Complimenti anche se forse parlavi un pò troppo in fretta :)