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



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

   require_once('sdb.php');
   $simpleDB= new SimpleDB($accessKey, $secretKey);
Per gestire i domini "tabelle di dati" utilizziamo le seguenti funzioni
  $simpleDB ->createDomain(‘collezione'); Creare un dominio
  $listaDomini= $simpleDB >listDomains() ; //Lista dei domini
  $simpleDB->deleteDomain($nomeDominio) ;//Eliminazione di un dominio
Per  inserire dei dati, basta creare un array associativo nel seguente modo:
//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 );
Dato che i valori possono essere multipli se vogliamo sostituire un valore, dobbiamo specificare che intendiamo aggiornarlo tramire 'replace'
 //Aggiornamento
  $dati['autore']['value']='C.Zafòn';
$dati[‘autore’][‘replace’]=true; //aggiorna
  $simpleDB->putAttributes(‘collezione‘, 'item_2', $dati);</pre>
<pre>
//Cancellazione
  $simpleDB->deleteAttributes(‘collezione', ‘item_02’);
Pwr ottenere un oggetto dato da una chiave nota utilizziamo :
//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’
//                         )
//                        )
//        )

Se vogliamo utilizzare una query per interrogare i dati, possiamo utilizzare il seguente script, per prelevare i dati .

//Utilizzo di select
 $token =null;
 do{
    $query = 'select * from collezione';
    $primoSet= $db-&gt;select(‘collezione', $query ,$token) );
    // max 250 elementi + token
    foreach ($primoSet as $item){
         // chiave in $item[Name‘]
        // valori in $item[‘Attributes’]
    }
    } while ($token!=null);

2 commenti

Rispondi

Attenzione : Per inserire codice html/php o caratteri speciali utilizza Postable. Postable converte i caratteri speciali del tuo commento.
XHTML: Puoi usare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>