Ricerca di dati DynamoDB con Amazon CloudSearch - Amazon CloudSearch

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ricerca di dati DynamoDB con Amazon CloudSearch

È possibile specificare una tabella DynamoDB come origine durante la configurazione delle opzioni di indicizzazione o il caricamento di dati in un dominio di ricerca tramite la console. Ciò consente di configurare rapidamente un dominio di ricerca per sperimentare la ricerca dei dati archiviati nelle tabelle del database DynamoDB.

Per mantenere il tuo dominio di ricerca sincronizzato con le modifiche che vengono apportate alla tabella, puoi inviare gli aggiornamenti sia alla tabella sia al dominio di ricerca oppure puoi caricare periodicamente l'intera tabella in un nuovo dominio di ricerca.

Configurazione di un CloudSearch dominio Amazon per la ricerca di dati DynamoDB

Il modo più semplice per configurare un dominio di ricerca per la ricerca di dati DynamoDB è utilizzare la console Amazon. CloudSearch La configurazione guidata della console analizza i dati della tabella e suggerisce opzioni di indicizzazione in base agli attributi della tabella. È possibile modificare la configurazione suggerita per specificare gli attributi di tabella che devono essere indicizzati.

Nota

Per caricare dati da DynamoDB, devi disporre dell'autorizzazione per accedere sia al servizio che alle risorse che desideri caricare. Per ulteriori informazioni, consultare l'argomento relativo all'utilizzo di IAM per controllare l'accesso alle risorse di DynamoDB.

Quando si configura automaticamente un dominio di ricerca da una tabella DynamoDB, è possibile mappare un massimo di 200 attributi univoci ai campi indice. (Non è possibile configurare più di 200 campi per un dominio di ricerca, quindi è possibile caricare solo dati da tabelle DynamoDB con 200 o meno attributi.) Quando Amazon CloudSearch rileva un attributo con un numero limitato di valori distinti, il campo viene abilitato per i facet nella configurazione suggerita.

Importante

Quando si utilizza una tabella DynamoDB per configurare un dominio, i dati non vengono caricati automaticamente nel dominio per l'indicizzazione. È necessario caricare i dati per l'indicizzazione come fase separata dopo aver configurato il dominio.

Configurazione di un dominio per la ricerca in DynamoDB utilizzando la console Amazon CloudSearch

Puoi utilizzare la CloudSearch console Amazon per analizzare i dati da una tabella DynamoDB per configurare un dominio di ricerca. Dalla tabella viene letto un massimo di 5 MB, indipendentemente dalle dimensioni della tabella. Per impostazione predefinita, Amazon CloudSearch legge dall'inizio della tabella. Puoi specificare un punto di partenza per iniziare a leggere da una determinata voce.

Per configurare un dominio di ricerca utilizzando una tabella DynamoDB
  1. Apri la CloudSearch console Amazon all'indirizzo https://console.aws.amazon.com/cloudsearch/home.

  2. Dal riquadro di navigazione a sinistra, scegli Domini.

  3. Scegli il nome del dominio per aprirne il pannello dei dettagli.

  4. Vai alla scheda Opzioni di indicizzazione e scegli Configurazione guidata.

  5. Seleziona Amazon DynamoDB.

  6. Seleziona la tabella DynamoDB che desideri analizzare.

    • Per limitare le unità di capacità di lettura che possono essere utilizzate durante la lettura dalla tabella, immettere la percentuale massima di unità utilizzabile.

    • Per iniziare a leggere da un particolare elemento, specifica una chiave hash Start. Se la tabella utilizza un hash e una chiave primaria di tipo intervallo, specificare sia l'attributo hash sia l'attributo intervallo per la voce.

  7. Seleziona Avanti.

  8. Rivedi la configurazione suggerita. È possibile modificare questi campi e aggiungere campi aggiuntivi.

  9. Al termine, scegli Conferma.

  10. Se non hai ancora caricato dati sul tuo dominio, deseleziona la casella di controllo Esegui l'indicizzazione ora per uscire senza indicizzare. Se hai finito di apportare modifiche alla configurazione e sei pronto per indicizzare i tuoi dati con la nuova configurazione, assicurati che sia selezionata l'opzione Esegui l'indicizzazione ora. Quando sei pronto per applicare le modifiche, scegli Fine.

Caricamento di dati su Amazon CloudSearch da DynamoDB

Puoi caricare dati DynamoDB su un dominio di ricerca tramite la console CloudSearch Amazon o con gli strumenti della riga di comando di CloudSearch Amazon. Quando carichi dati da una tabella DynamoDB, CloudSearch Amazon li converte in batch di documenti in modo che possano essere indicizzati. Selezionare campi di indice specifici per ciascuno degli attributi di configurazione nel proprio dominio. Per ulteriori informazioni, consulta Configurazione di un CloudSearch dominio Amazon per la ricerca di dati DynamoDB.

Puoi caricare dati da più di una tabella DynamoDB sullo stesso dominio Amazon. CloudSearch Tuttavia, tieni presente che è possibile caricare un massimo di 200 attributi da tutte le tabelle combinate. Se una voce con la stessa chiave appare in più di una tabella caricata, l'ultimo elemento applicato sovrascrive tutte le versioni precedenti.

Quando converte i dati della tabella in batch di documenti, Amazon CloudSearch genera un documento per ogni articolo che legge dalla tabella e rappresenta ogni attributo dell'articolo come campo del documento. L'ID univoco per ogni documento o viene letto dall'attributo della voce docid (se esistente) oppure gli viene assegnato un valore alfanumerico in base alla chiave primaria.

Quando Amazon CloudSearch genera documenti per gli elementi della tabella:

  • I set di stringhe e i set di numeri vengono rappresentati come campi multi-valore. Se un set DynamoDB contiene più di 100 valori, solo i primi 100 valori vengono aggiunti al campo multivalore.

  • Gli attributi binari di DynamoDB vengono ignorati.

  • I nomi degli attributi vengono modificati per conformarsi alle convenzioni di CloudSearch denominazione di Amazon per i nomi dei campi:

    • Tutti i caratteri maiuscoli vengono convertiti in minuscolo.

    • Se il nome dell'attributo DynamoDB non inizia con una lettera, il nome del campo è preceduto da. f_

    • Tutti i caratteri diversi da a-z, 0-9, e _ (carattere di sottolineatura) vengono sostituiti da un carattere di sottolineatura. Se questa trasformazione determina nomi di campo duplicati, viene aggiunto un numero per rendere il nome di campo univoco. Ad esempio, i nomi di attributo håt, h-t, hát verrebbero mappati rispettivamente a h_t, h_t1 e h_t2.

    • Se il nome dell'attributo DynamoDB supera i 64 caratteri, i primi 56 caratteri del nome dell'attributo vengono concatenati con l'hash MD5 a 8 caratteri del nome completo dell'attributo per formare il nome del campo.

    • Se il nome di attributo è body, viene mappato al nome del campo f_body.

    • Se il nome di attributo è _score, viene mappato al nome del campo f_ _score.

  • Gli attributi numerici vengono mappati ai campi Amazon CloudSearch int e i valori vengono trasformati in numeri interi senza segno a 32 bit:

    • Se un attributo numerico contiene un valore decimale, viene memorizzata solo la parte intera del valore. Tutto ciò che si trova a destra del separatore decimale viene eliminato.

    • Se il valore è più grande di quello che può essere memorizzato come un numero intero senza segno, viene troncato.

    • I numeri interi negativi vengono trattati come numeri interi positivi senza firma.

Caricamento di dati DynamoDB su un dominio tramite la console Amazon CloudSearch

Puoi utilizzare la CloudSearch console Amazon per caricare fino a 5 MB di dati da una tabella DynamoDB in un dominio di ricerca.

Per caricare dati DynamoDB utilizzando la console
  1. Apri la CloudSearch console Amazon all'indirizzo https://console.aws.amazon.com/cloudsearch/home.

  2. Dal riquadro di navigazione a sinistra, scegli Domini.

  3. Scegli il nome del dominio per aprirne la configurazione.

  4. Scegli Azioni, Carica documenti.

  5. Seleziona Amazon DynamoDB.

  6. Dal menu a discesa, seleziona la tabella DynamoDB che contiene i tuoi dati.

    • Per limitare le unità di capacità di lettura che possono essere utilizzate durante la lettura dalla tabella, immettere la percentuale massima di unità utilizzabili.

    • Per iniziare a leggere da un elemento particolare, specifica una chiave hash Start. Se la tabella utilizza un hash e una chiave primaria di tipo intervallo, specificare sia l'attributo hash sia l'attributo intervallo per la voce.

  7. Dopo aver specificato le opzioni della tabella, scegliete Avanti.

  8. Controlla gli elementi che verranno caricati. Puoi anche salvare il batch di documenti generato scegliendo Scarica il batch di documenti generato. Quindi scegli Carica documenti.

Sincronizzazione di un dominio di ricerca con una tabella DynamoDB

Per mantenere il dominio di ricerca sincronizzato con gli aggiornamenti della tabella DynamoDB, puoi monitorare e applicare gli aggiornamenti al tuo dominio a livello di codice oppure creare periodicamente un nuovo dominio e caricare nuovamente l'intera tabella. Se la quantità di dati è significativa, consigliabile tenere traccia degli aggiornamenti e applicarli in modo programmatico.

Sincronizzazione programmatica degli aggiornamenti

Per sincronizzare le modifiche e le aggiunte alla tabella DynamoDB, puoi creare una tabella di aggiornamento separata per tenere traccia delle modifiche alla tabella che stai cercando e caricare periodicamente il contenuto della tabella di aggiornamento nel dominio di ricerca corrispondente.

Per rimuovere i documenti dal dominio di ricerca, è necessario generare e caricare i batch di documenti che contengono un'operazione di eliminazione per ogni documento eliminato. Un'opzione consiste nell'utilizzare una tabella DynamoDB separata per tenere traccia degli elementi eliminati, elaborare periodicamente la tabella per generare un batch di operazioni di eliminazione e caricare il batch nel dominio di ricerca.

Per essere scuri di non perdere le modifiche apportate durante il caricamento iniziale dei dati, è necessario iniziare a raccogliere il rilevamento delle modifiche prima di caricare i dati iniziali. Sebbene tu possa aggiornare alcuni CloudSearch documenti Amazon con dati identici, ti assicuri che nessuna modifica vada persa e che il tuo dominio di ricerca contenga una up-to-date versione di ogni documento.

La frequenza di sincronizzazione degli aggiornamenti dipende dal volume delle modifiche e dalla tolleranza della latenza di aggiornamento. Un approccio consiste nell'accumulare le modifiche per un periodo di tempo fisso al termine del quale si caricano le modifiche e si eliminano le tabelle di rilevamento del periodo.

Ad esempio, per sincronizzare le modifiche e le aggiunte una volta al giorno, all'inizio di ogni giorno puoi creare una tabella denominata aggiornamenti_AAAA_MM_GG per raccogliere gli aggiornamenti giornalieri. Al termine della giornata, puoi caricare la tabella aggiornamenti_AAAA_MM_GG nel tuo dominio di ricerca. Una volta completato il caricamento, puoi eliminare la tabella di aggiornamento e crearne una nuova per il giorno successivo.

Passaggio a un nuovo dominio di ricerca

Se non desideri tenere traccia dei singoli aggiornamenti e applicarli alla tabella, puoi caricare periodicamente l'intera tabella in un nuovo dominio di ricerca e quindi passare il traffico di query al nuovo dominio.

Per passare a un nuovo dominio di ricerca
  1. Creare un nuovo dominio di ricerca e copiare la configurazione dal dominio esistente.

  2. Carica l'intera tabella DynamoDB nel nuovo dominio. Per ulteriori informazioni, consulta Caricamento di dati su Amazon CloudSearch da DynamoDB.

  3. Quando il nuovo dominio è attivo, aggiornare la voce DNS che indirizza il traffico di query nel dominio di ricerca precedente in modo che punti al nuovo dominio. Ad esempio, se utilizzi Amazon Route 53, puoi semplicemente aggiornare il recordset con il tuo nuovo endpoint del servizio di ricerca.

  4. Eliminare il dominio precedente.