Dela via


Tidsresor i Azure Synapse Link för Azure Cosmos DB för NoSQL

GÄLLER FÖR: NoSQL MongoDB

Med tidsresor kan du komma åt Azure Cosmos DB-data i analysarkivet, precis som de visades vid specifika tidpunkter i historiken (ned till millisekunder). Med tidsresor kan du enkelt köra frågor mot tidigare data som har uppdaterats eller tagits bort, analysera trender och jämföra skillnader mellan två intressanta platser.

Den här artikeln beskriver hur du gör tidsreseanalyser på dina Azure Cosmos DB-data som lagras i analysarkivet. Analysarkivet skapas när du aktiverar Azure Synapse Link i dina containrar.

Hur fungerar det?

Om du vill utföra tidsresor på Azure Cosmos DB-data kontrollerar du att ditt Azure Cosmos DB-konto har aktiverats för Azure Synapse Link. Kontrollera också att du har aktiverat Azure Synapse Link i containern. Azure Synapse Link aktiverar analysarkivet för din container och används sedan för Azure Synapse Link-analys, inklusive tidsresor.

Om en analytisk time-to-live (ATTL) definieras i Azure Cosmos DB-containern fungerar den som den maximala kvarhållningsperioden för tidsreseåtgärder. Om ATTL inte har definierats eller angetts som -1 har du maximal kvarhållningsperiod. Med andra ord kan du resa tillbaka till när som helst sedan Azure Synapse Link aktiverades.

Skärmbild av ett exempel på tidsresor med olika data vid olika tidpunkter.

När ska jag använda?

Här följer några tidsresescenarier som stöds:

  • Datagranskning: Granskning av dataändringar är avgörande för dataefterlevnad och förståelse för hur data har utvecklats över tid. Med funktionen för tidsresor kan du spåra ändringar, få åtkomst till alla versioner av uppdateringar och utföra dataanalys vid valfri tidpunkt.
  • Trendanalys: Genom att ange kombinationen av konfigurationerna "spark.cosmos.timetravel.startTimestamp" och "spark.cosmos.timetravel.timestampAsOf" kan du jämföra och analysera skillnader mellan två specifika tidpunkter. Du kan till exempel jämföra produktinventeringskvantiteten från för tre månader sedan med den för sex månader sedan.
  • Reparera oavsiktliga dataändringar: Tidsresefunktionen är ovärderlig för att korrigera enskilda poster till deras senast kända goda tillstånd, vilket gör det effektivt att utföra reparationer utan att använda säkerhetskopior och återställningar. När du har åtkomst till önskade data som de fanns i det senast kända goda tillståndet med hjälp av värdet "timestampAsOf" kan du antingen uppdatera Azure Cosmos DB-containern med dessa data eller mata in posterna i en ny container.
  • Azure Cosmos DB-container som en långsamt föränderlig dimension: Långsamt föränderliga dimensioner används för att hålla reda på ändringar i attributvärden och rapportera historiska data vid en viss tidpunkt. Med tidsresefrågor, tillsammans med alternativet "fullFidelity", får du funktionerna i dimensioner av typ 2 som ändras långsamt genom att hålla reda på attributvärdeändringar som representeras som separata rader med giltighetsperiod.

Använda tidsresor

Det här kodexemplet visar hur du läser in en Spark DataFrame med poster från produktcontainern och kan köras med Azure Synapse Spark Notebook.

import com.microsoft.azure.cosmos.analytics.spark.connector.datasource.CosmosOlapTimeTravel

val configuration = Map(
    "spark.synapse.linkedService" -> "CosmosDBLS",
    "spark.cosmos.container" ->  "product",
    "spark.cosmos.timetravel.timestampAsOf" -> "2022-01-01 00:00:00"
)

val df = CosmosOlapTimeTravel.load(configuration)
display(df)

Konfiguration

Inställning Standardvärde beskrivning
spark.cosmos.timetravel.timestampAsOf aktuell tidsstämpel Historisk tidsstämpel på millisekunders precision att resa tillbaka i historien till.
spark.cosmos.timetravel.startTimestamp från början Tidsstämpel för att starta Time-Travel från. Den här konfigurationen kan användas i kombination med "spark.cosmos.timetravel.timestampAsOf" för att jämföra och analysera skillnader mellan två specifika tidpunkter för användningsfall, till exempel trendanalys.
spark.cosmos.timetravel.ignoreTransactionalTTLDeletes FALSE Ignorera de poster som fick TTL-ed ut från transaktionsarkivet. Ange den här inställningen till TRUE om du vill se posterna i tidsreseresultatuppsättningen som fick TTL-ed ut från transaktionsarkivet.
spark.cosmos.timetravel.ignoreTransactionalUserDeletes FALSE Ignorera posterna som användaren tog bort från transaktionsarkivet. Ange den här inställningen till TRUE om du vill se posterna i tidsreseresultatuppsättningen som tas bort från transaktionsarkivet.
spark.cosmos.timetravel.fullFidelity FALSE Ställ in den här inställningen på TRUE om du vill komma åt alla versioner av poster (inklusive mellanliggande uppdateringar) vid en viss tidpunkt i historiken.

Viktigt!

Alla konfigurationsinställningar används i UTC-tidszonen.

Begränsningar

  • Time Travel är endast tillgängligt för Azure Synapse Spark.
  • Tidsresa är endast tillgängligt för API för NoSQL och API för MongoDB. API:er för Gremlin och Cassandra stöds inte just nu.
  • Du kan inte använda tidsresor innan Azure Synapse Link aktiverades i containern.

Prissättning

Det finns ingen extra kostnad för den här funktionen. Kostnaden för att använda den här funktionen innehåller prissättningen för Azure Synapse Link och Azure Synapse Apache Synapse Spark-priser för tidsresejobb i analysarkivet.

Nästa steg

Mer information finns i följande dokument: