top of page

Amazon SageMaker UpdateRecord elimina le riscritture dell'intero record per modifiche parziali alle feature

1 giorno fa
Tempo di lettura: 13 min

Amazon SageMaker UpdateRecord introduce le scritture a livello di feature, ponendo fine a un requisito di lunga data: leggere e riscrivere un intero record per ogni modifica parziale. Una singola chiamata API può ora aggiornare fino a 100 feature preservando tutte quelle omesse dalla richiesta.

La modifica affronta una debolezza specifica dell'infrastruttura di machine learning in tempo reale. I record delle feature spesso combinano valori prodotti da pipeline separate, ciascuna operativa secondo la propria pianificazione. Un processore di clickstream potrebbe aggiornare l'attività ogni pochi secondi, mentre un job notturno aggiorna i segmenti dei clienti.

Finora, queste pipeline dipendevano spesso da un modello di lettura-modifica-scrittura. Ogni produttore recuperava il record corrente, modificava i campi assegnati e inviava nuovamente il record completo. Questo modello aggiungeva letture, trasferiva dati invariati e creava opportunità perché writer concorrenti si sovrascrivessero a vicenda.

AWS sostituisce questo percorso con un meccanismo atomico di aggiornamento parziale. Il servizio unisce valori selezionati a un record esistente applicando al contempo autorizzazioni e, facoltativamente, l'ordinamento in base al tempo dell'evento. La vera novità non è un altro endpoint SageMaker. È AWS che sposta la logica di coordinamento dalle applicazioni dei clienti al feature store gestito.

Amazon SageMaker UpdateRecord modifica il percorso di scrittura

UpdateRecord trasforma una modifica parziale delle feature in un'unica scrittura gestita, anziché in una lettura, un'unione e una riscrittura completa orchestrate dal cliente.

AWS ha annunciato le scritture a livello di feature l'8 settembre 2026. La funzionalità è disponibile nelle regioni AWS in cui opera SageMaker Feature Store.

Un client identifica un record esistente e invia soltanto i valori delle feature da modificare. SageMaker Feature Store convalida la richiesta, unisce atomicamente tali valori e lascia invariate tutte le feature omesse.

Questo comportamento è importante perché un record di feature può essere ampio. Un profilo cliente può contenere cronologia dell'account, attività recente, segnali di rischio, raccomandazioni e metadati operativi. L'aggiornamento di un punteggio di rischio non dovrebbe richiedere a un'applicazione di trasferire e riscrivere tutti questi valori non correlati.

L'API accetta almeno una feature e supporta fino a 100 feature per chiamata. Restituisce una risposta HTTP 200 vuota dopo un aggiornamento riuscito, secondo l'API UpdateRecord.

UpdateRecord non è un'operazione di upsert. Il record di destinazione deve già esistere in un online store e un record mancante o eliminato logicamente produce un errore ResourceNotFound. Le applicazioni devono continuare a usare PutRecord per creare record.

Anche l'identificatore del record rimane immutabile. I client possono aggiornare le feature memorizzate, inclusa la feature del tempo dell'evento in condizioni definite, ma non possono modificare la chiave primaria tramite questo endpoint.

I nomi delle feature devono già esistere nello schema del feature group. UpdateRecord modifica i valori all'interno di tale schema; non offre un percorso alternativo per definire nuove feature.

Questi limiti mantengono l'API focalizzata. Gestisce modifiche parziali a record online esistenti, mentre la creazione dei record e la gestione dello schema restano operazioni separate.

I requisiti di archiviazione meritano uguale attenzione. Gli online store Standard necessitano del più recente formato Standard_V2 prima di poter accettare aggiornamenti parziali. I feature group in memoria supportano UpdateRecord senza adottare un altro formato di archiviazione in memoria.

AWS descrive Standard come un livello online basato su DynamoDB e In-Memory come un'opzione basata su ElastiCache che utilizza Redis OSS. La guida aggiornata agli online store dell'azienda elenca Standard, Standard_V2 e InMemory come opzioni distinte.

Questa distinzione rende il lancio più di una semplice comodità dell'SDK. AWS ha dovuto aggiungere una rappresentazione di storage capace di applicare aggiornamenti parziali preservando al contempo il resto del record.

Per i clienti Standard, quindi, il beneficio architetturale comporta una decisione sul formato. I team che creano feature group possono selezionare Standard_V2, mentre le implementazioni Standard esistenti devono valutare il percorso di migrazione documentato e le sue conseguenze operative.

Il modello lettura-modifica-scrittura era il vero avversario

In questa release, AWS compete contro un modello applicativo, non contro un altro fornitore di feature store.

Si considerino tre pipeline che scrivono in un record cliente. Un job clickstream gestisce page_views, un servizio di transazioni gestisce purchase_total e una pipeline di modelli gestisce risk_score.

In un'architettura di lettura-modifica-scrittura, ciascuna pipeline inizia recuperando l'intero record. Modifica il valore assegnato e poi invia una sostituzione completa al store.

Questa sequenza sembra sicura quando viene dimostrata con un solo writer. Diventa fragile quando più writer operano simultaneamente.

Supponiamo che la pipeline clickstream legga la versione A. La pipeline di scoring legge la stessa versione pochi istanti dopo. La pipeline clickstream scrive la versione B con un conteggio di attività più recente.

La pipeline di scoring può quindi inviare la propria copia modificata della versione A. A meno che l'applicazione non rilevi la collisione, la sua scrittura dell'intero record può ripristinare il conteggio di attività precedente aggiornando al contempo il punteggio di rischio.

Gli sviluppatori possono affrontare questo problema con orchestrazione, locking, logica condizionale, code o regole di proprietà. Ogni soluzione aggiunge codice e stato operativo al di fuori del feature store.

UpdateRecord restringe la superficie di scrittura. La pipeline di scoring invia soltanto risk_score, mentre la pipeline clickstream invia soltanto le proprie feature di attività. Nessuna delle due pipeline deve riprodurre valori gestiti dall'altra.

AWS afferma che l'unione avviene atomicamente. Ciò significa che una richiesta parziale non dovrebbe esporre una combinazione scritta solo a metà dei valori inclusi.

L'atomicità non rende corretto ogni progetto di pipeline. Rimuove tuttavia la fonte più evidente di aggiornamenti persi causati dalla sostituzione di campi non correlati.

La modifica elimina inoltre la richiesta preliminare GetRecord quando un'applicazione deve soltanto impostare valori noti. Meno letture significano meno round trip di rete e minori costi di capacità di lettura nei carichi di lavoro fatturati tramite il livello Standard.

AWS non ha pubblicato un benchmark indipendente che mostri una riduzione universale della latenza. I risparmi effettivi dipenderanno dall'ampiezza del record, dalla frequenza delle richieste, dal posizionamento di rete, dal comportamento dei retry e dalla progettazione dell'applicazione.

La direzione rimane chiara anche senza tale benchmark. Una richiesta esegue meno lavoro lato applicazione rispetto a una lettura seguita da una scrittura completa.

Anche il traffico di rete può diminuire quando i record contengono molte feature ma ogni evento ne modifica soltanto una o due. Il client invia l'identificatore del record e i valori modificati invece di serializzare ogni campo memorizzato.

La fatturazione delle scritture richiede maggiori sfumature. AWS afferma che la capacità di scrittura del livello Standard continua a basarsi sulla dimensione dell'elemento dopo l'aggiornamento, non soltanto sul payload delle feature inviate. Il risparmio diretto più chiaro deriva dall'eliminazione della lettura precedente.

Il modello di prezzi SageMaker contabilizza separatamente letture, scritture e storage del feature store. I team dovrebbero modellare i propri modelli di accesso prima di attribuire una percentuale di risparmio.

La release trasferisce quindi la responsabilità su due livelli. SageMaker ora gestisce l'unione atomica delle feature, mentre i clienti continuano a gestire la misurazione dei carichi di lavoro e la pianificazione della capacità.

Le pipeline indipendenti ottengono un modello di proprietà più pulito

Le scritture a livello di feature consentono ai produttori di possedere campi selezionati senza richiedere a ciascuno di comprendere il record completo.

I sistemi di feature in streaming aggiornano raramente ogni valore con la stessa frequenza. L'attività di sessione può cambiare continuamente, i totali finanziari possono seguire le transazioni e gli attributi demografici potrebbero aggiornarsi molto meno spesso.

Un singolo contratto basato sull'intero record costringe queste pipeline a un coordinamento non necessario. Ogni produttore deve conoscere lo stato più recente di ogni campo oppure affidarsi a un altro componente per unire le proprie modifiche.

UpdateRecord crea un confine più semplice. Un produttore può inviare i valori di cui è responsabile e omettere tutto il resto. Il feature store preserva i valori omessi.

Questo approccio si adatta all'idratazione delle feature in streaming, in cui più sorgenti di eventi costruiscono gradualmente una rappresentazione online corrente. Un evento di clic può aggiornare le statistiche di sessione senza toccare un segmento assegnato da una pipeline batch.

I backfill offrono un altro caso pratico. Dopo aver aggiunto una feature definita nello schema, un team può popolare quel valore nei record esistenti senza reinviare ogni feature memorizzata in precedenza.

Le correzioni dei dati seguono la stessa logica. AWS descrive uno scenario che coinvolge 50.000 record cliente classificati erroneamente. Un job di correzione può modificare customer_segment senza rischiare i campi non correlati in tali record.

Questi esempi rivelano l'effetto architetturale più ampio. Gli aggiornamenti parziali riducono la quantità di contesto condiviso di cui ciascun produttore necessita prima di poter scrivere in sicurezza.

Supportano inoltre autorizzazioni più ristrette. AWS ha aggiunto le chiavi di condizione IAM sagemaker:IsUpdateRecord e sagemaker:UpdatableFeatures per controllare le scritture parziali.

Un amministratore può consentire a un servizio di chiamare UpdateRecord soltanto per feature selezionate. Un servizio di scoring potrebbe aggiornare score e last_activity senza poter modificare salary o un altro campo sensibile.

UpdateRecord continua a utilizzare l'azione IAM sagemaker:PutRecord nella valutazione delle policy. Secondo AWS, le policy esistenti che negano PutRecord bloccano anche gli aggiornamenti parziali.

Questo comportamento retrocompatibile riduce il rischio di aprire accidentalmente un nuovo percorso di scrittura. Gli amministratori devono concedere esplicitamente un accesso adeguato prima che un carico di lavoro possa utilizzare l'operazione.

L'autorizzazione a livello di feature rafforza inoltre il modello di proprietà del produttore. Il confine non dipende più soltanto dalla disciplina applicativa. IAM può rifiutare una pipeline che tenta di modificare i campi di un altro produttore.

Tuttavia, la proprietà delle feature richiede una governance continua. I team devono mantenere le policy man mano che gli schemi evolvono, i servizi cambiano responsabilità o le feature appena aggiunte contengono informazioni sensibili.

Una policy wildcard ampia può eliminare gran parte del vantaggio. Le nuove chiavi di condizione forniscono un meccanismo di controllo, ma AWS non progetta automaticamente regole del privilegio minimo per ogni carico di lavoro.

Le scritture parziali integrano inoltre il recente lavoro di AWS su operazioni di ingestione più ampie. BatchWriteRecord gestisce fino a 25 record tra feature group in una richiesta, mentre UpdateRecord modifica valori selezionati all'interno di un record esistente.

Queste API risolvono colli di bottiglia diversi. La scrittura batch riduce l'overhead delle richieste tra i record. La scrittura a livello di feature riduce il lavoro non necessario all'interno di un record.

Nessuna delle due operazioni sostituisce l'altra. Un grande job di correzione potrebbe comunque emettere molte chiamate UpdateRecord perché questa release documenta un limite sul numero di feature, non un batch di aggiornamenti parziali su più record.

Questa distinzione è importante per i team che pianificano backfill ad alto volume. Ottengono modifiche più sicure a livello di campo, ma necessitano comunque di limiti di concorrenza, gestione dei retry, monitoraggio dell'avanzamento e recupero dagli errori.

EventTime impedisce scritture obsolete, a determinate condizioni

UpdateRecord riduce le sovrascritture accidentali, ma l'ordinamento sicuro dipende ancora da come i produttori utilizzano EventTime.

Ogni feature group dispone di una feature del tempo dell'evento, che rappresenta quando si è verificato un record o un evento. UpdateRecord può includere un valore più recente per tale feature insieme ai campi da modificare.

Quando l'EventTime inviato è uguale o successivo al valore archiviato, SageMaker applica l'aggiornamento. Se è precedente, il servizio rifiuta l'intera richiesta con una ConflictException e una risposta HTTP 409.

Questo controllo impedisce a un evento ritardato di sostituire valori associati a un momento di registrazione più recente. Fornisce alle pipeline una difesa gestita contro la consegna fuori ordine.

Il meccanismo è particolarmente utile quando più messaggi rappresentano stati successivi di un unico flusso logico di eventi. Un messaggio tardivo non può riportare silenziosamente il record a un momento dell'evento precedente.

Tuttavia, EventTime è metadato a livello di record. Produttori distinti potrebbero non condividere un unico orologio significativo, soprattutto quando aggiornano feature non correlate provenienti da fonti diverse.

AWS affronta questo caso consentendo ai client di omettere EventTime. Il servizio applica quindi le modifiche alle feature mantenendo il momento dell'evento già presente nel record.

Ometterlo evita una competizione artificiale tra pipeline non correlate. Un processo notturno di segmentazione non deve far avanzare l'orologio del record solo per aggiornare un campo di cui è responsabile.

Questa flessibilità introduce un compromesso importante. Un aggiornamento senza EventTime non può utilizzare il confronto temporale del record per dimostrare che i suoi valori sono più recenti.

Ogni team deve decidere se un produttore partecipa all'ordinamento condiviso del record o opera in modo indipendente. Questa decisione dipende dal significato della feature, non solo dalla praticità dell'API.

Un punteggio di rischio derivato da un flusso di transazioni datato potrebbe richiedere un ordinamento rigoroso. Una preferenza linguistica corretta potrebbe invece richiedere un timestamp della fonte separato, archiviato come un'altra feature.

Anche i tentativi ripetuti dell'applicazione richiedono attenzione. Una risposta 409 segnala un EventTime obsoleto, non un errore temporaneo del servizio. Ritentare alla cieca la stessa richiesta non renderà più recente il suo timestamp.

I client dovrebbero classificare i conflitti separatamente dal throttling o dagli errori transitori. Possono scartare aggiornamenti obsoleti, ricalcolarli o inoltrarli tramite un flusso di gestione delle eccezioni.

La gestione del time-to-live aggiunge un'altra condizione. Se una richiesta fornisce TtlDuration, deve includere anche EventTime. In caso contrario, SageMaker restituisce un errore di validazione.

La scadenza del TTL viene calcolata a partire da EventTime più la durata specificata. Richiedere entrambi i valori impedisce al servizio di costruire un punto di scadenza ambiguo.

Queste regole rendono UpdateRecord più sicuro di un endpoint patch senza restrizioni. Non eliminano la necessità di un modello temporale documentato tra i vari produttori.

I team dovrebbero definire quale orologio segue ciascuna feature, se gli aggiornamenti possono arrivare in ritardo e quale servizio risolve i conflitti. Senza queste decisioni, l'API può rifiutare record obsoleti ma non può determinare la verità di business.

Standard_V2 pone la principale questione di adozione

La feature è immediatamente utilizzabile per i gruppi In-Memory, mentre i clienti Standard devono considerare una transizione del formato di archiviazione.

AWS afferma che le scritture a livello di feature funzionano su entrambi i livelli dell'online store, ma il percorso di attivazione differisce. I feature group In-Memory esistenti possono usare l'operazione senza selezionare un altro formato di archiviazione.

I feature group Standard richiedono Standard_V2. La documentazione aggiornata afferma che i clienti possono creare un gruppo con quel tipo di archiviazione oppure migrare in-place un gruppo Standard esistente.

La migrazione documentata utilizza UpdateFeatureGroup per modificare la configurazione dell'archiviazione online. AWS afferma che l'operazione preserva il feature group ed evita di reinserirne i dati.

Sembra più semplice che ricostruire un feature store di produzione, ma non è un'opzione reversibile. AWS avverte che la migrazione da Standard a Standard_V2 è a senso unico.

La documentazione rileva inoltre che UpdateRecord può richiedere diversi minuti prima di diventare disponibile dopo il completamento della migrazione. Le applicazioni necessitano quindi di un piano di rilascio che riconosca la transizione della capacità.

I team di produzione dovrebbero testare le versioni dei propri SDK, i template dell'infrastruttura, le policy IAM, il monitoraggio e il comportamento di fallback. Una migrazione dello storage non dovrebbe essere trattata come una semplice modifica al codice sorgente.

Gli ambienti misti possono aggiungere complessità. I nuovi feature group potrebbero usare Standard_V2 mentre i gruppi meno recenti restano su Standard, rendendo UpdateRecord disponibile soltanto per una parte dell'ambiente.

Le librerie client non dovrebbero presumere che ogni feature group SageMaker accetti aggiornamenti parziali. Il riferimento API limita l'operazione allo storage online Standard_V2 e InMemory.

I team devono inoltre distinguere tra comportamento online e offline. UpdateRecord richiede sempre un record nell'online store, anche quando un feature group dispone anche di un offline store.

Per le configurazioni con un offline store associato, AWS afferma che le modifiche parziali passano tramite il processo di replica come snapshot completi. Questa progettazione mantiene i dati storici di addestramento allineati con il record online risultante dall'unione.

I feature group In-Memory richiedono una precisazione separata. La documentazione AWS afferma che questo livello supporta attualmente gruppi solo online e non fornisce la corrispondente replica nell'offline store.

Pertanto, il lancio non dovrebbe essere interpretato come sincronizzazione universale da online a offline per ogni tipo di storage. La replica si applica quando la configurazione del feature group include un offline store.

Gli snapshot completi nella cronologia offline influiscono anche sull'interpretazione a valle. Più aggiornamenti parziali possono produrre versioni successive del record completo, anche se ogni client ha inviato soltanto feature selezionate.

I consumatori di dati di addestramento devono continuare a gestire event time, righe storiche e correttezza point-in-time. UpdateRecord modifica il percorso di ingestione, non il significato analitico della cronologia offline.

L'assenza di benchmark pubblici e indipendenti in produzione resta un'altra incertezza. AWS descrive latenza inferiore, minore trasferimento di dati e meno letture, ma i risultati specifici per carico di lavoro non sono stati quantificati.

Le tariffe di scrittura del livello Standard dipendono inoltre dalla dimensione dell'elemento dopo l'aggiornamento. Una richiesta minuscola su un record ampio non implica automaticamente che la fatturazione rifletta solo la richiesta minuscola.

Per questo la misurazione è il prossimo passo pratico. I team dovrebbero confrontare conteggi delle richieste, latenza di scrittura p95, utilizzo della capacità di lettura, tassi di conflitto e tassi di errore dell'applicazione prima della migrazione.

Dovrebbero inoltre osservare se gli aggiornamenti parziali semplificano la risposta agli incidenti. Un minor numero di componenti di coordinamento può ridurre il carico operativo, ma le nuove regole IAM e di gestione dei conflitti introducono proprie modalità di errore.

Cosa dovrebbero osservare gli sviluppatori

Il valore di Amazon SageMaker UpdateRecord sarà determinato dai dati di adozione, dall'affidabilità della migrazione e dal supporto per modelli di scrittura più complessi.

Il primo segnale è il comportamento della migrazione a Standard_V2 in produzione. I team dovrebbero osservare durata della migrazione, errori di deployment, pianificazione del rollback e il ritardo prima che UpdateRecord diventi utilizzabile.

Un percorso di migrazione stabile rafforzerebbe la tesi di AWS secondo cui i clienti Standard esistenti possono adottare scritture parziali senza ricostruire i feature group. Sorprese operative rallenterebbero l'adozione nonostante l'API più pulita.

Il secondo segnale è il miglioramento misurato dei carichi di lavoro. Evidenze utili includerebbero un volume inferiore di GetRecord, minore consumo della capacità di lettura, latenza di aggiornamento end-to-end più breve e meno incidenti di aggiornamenti persi.

Queste misurazioni dovrebbero provenire da carichi di lavoro comparabili. Un test deve preservare ampiezza del record, frequenza di aggiornamento, collocazione di rete e concorrenza prima di attribuire una differenza a UpdateRecord.

I tassi di conflitto meritano una dashboard dedicata. Frequenti risposte HTTP 409 possono indicare eventi ritardati, orologi incoerenti o un produttore che usa EventTime laddove un ordinamento a livello di campo sarebbe più appropriato.

Il terzo segnale è se AWS espanderà il modello di scrittura parziale. UpdateRecord gestisce un record esistente e fino a 100 feature, mentre BatchWriteRecord riguarda scritture complete su più record.

I clienti che eseguono correzioni su larga scala potrebbero richiedere un'operazione batch a livello di feature. La sua assenza non indebolisce la feature attuale, ma definisce dove resta necessaria l'orchestrazione lato client.

Gli sviluppatori dovrebbero inoltre osservare il supporto per SDK, infrastruttura come codice e osservabilità. Una capacità del servizio diventa più facile da gestire quando gli strumenti di provisioning la espongono in modo coerente e il monitoraggio mostra classi di errore distinte.

Per i team che valutano ora il rilascio, il test più sicuro è circoscritto. Scegliete un feature group con aggiornamenti frequenti e isolati e diversi produttori indipendenti.

Documentate la proprietà dei campi prima di modificare il codice. Aggiungete condizioni IAM che corrispondano a tali confini, quindi definite se ciascun produttore debba inviare EventTime.

Create o migrate un gruppo Standard_V2 non critico, oppure utilizzate un gruppo In-Memory esistente. Misurate il vecchio percorso read-modify-write e il nuovo percorso di scrittura parziale sotto carico equivalente.

Monitorate più della sola latenza media. Confrontate latenza p95 e p99, richieste di lettura, errori di scrittura, conflitti di eventi obsoleti, dimensione del payload e impegno necessario per il ripristino operativo.

Mantenete un fallback controllato durante il rilascio. UpdateRecord non può creare un record mancante, quindi le applicazioni necessitano ancora di un percorso deliberato per l'ingestione iniziale tramite PutRecord.

I team di ingegneria dovrebbero inoltre mantenere ricercabili le decisioni architetturali, la proprietà dei campi e le policy sugli event time. Una base di conoscenza tecnica mantenuta può evitare che servizi successivi violino questi contratti.

Amazon SageMaker UpdateRecord elimina una reale fonte di lavoro duplicato dalle pipeline di feature online. Sostituisce il coordinamento dell'intero record con scritture parziali atomiche e controlli di autorizzazione più circoscritti.

La domanda rimanente è operativa, non concettuale. Le migrazioni a Standard_V2 rimarranno prevedibili e le metriche di produzione confermeranno che meno letture producono risparmi significativi?

I team che gestiscono record ampi con frequenti modifiche isolate hanno ora un esperimento concreto da eseguire. Confrontate entrambi i percorsi, analizzate i conflitti e decidete se l'unione lato applicazione merita ancora il proprio posto.

 
 

Inizia gratis

Un assistente IA local-first con gestione della conoscenza personale

Per una migliore esperienza con l’IA,

al momento remio supporta solo Windows 10+ (x64) e M-Chip Macs.

Il tuo partner AI al lavoro
Fai di più con remio

Pianifica. Crea. Consegna.
Tutto in un unico posto.

bottom of page