ORACLE NOSQL → STACKIT MONGODB FLEX · ARCHITECTUUR
Oracle NoSQL op STACKIT: het datamodel herontwerpen
Voor een Oracle NoSQL-tabel bestaat geen drop-in-doel. StackToIT deelt elke tabel in als REDESIGN met STACKIT MongoDB Flex als kandidaat, met zekerheidsniveau LOW, omdat het datamodel, de query-API en het capaciteitsmodel eigen aan Oracle zijn. Deze pagina toont de beoordeelde omgeving, de opties voor het doel en een tabel per concept om sleutels, JSON, verloop, indexen en consistentie opnieuw te modelleren.
Twee NoSQL-tabellen, beoordeeld
Een sessietabel met een verloopdatum en een winkelwagentabel, geschreven voor deze pagina en door StackToIT beoordeeld op 4 november 2026. Links de invoer, regels 16 tot en met 38 van main.tf. Rechts het resultaat, een fragment van assessment.json met de waarden zoals de run ze schreef. assessment.json staat op één regel, dus het venster toont geselecteerde velden van elke eenheid, ingesprongen en genest zoals in het bestand, met ongewijzigde waarden.
resource "oci_nosql_table" "sessions" {
compartment_id = var.compartment_id
name = "sessions"
ddl_statement = "CREATE TABLE IF NOT EXISTS sessions (session_id STRING, user_id STRING, payload JSON, expires_at TIMESTAMP(3), PRIMARY KEY (SHARD(user_id), session_id)) USING TTL 1 DAYS"
table_limits {
max_read_units = 50
max_write_units = 50
max_storage_in_gbs = 10
capacity_mode = "PROVISIONED"
}
}
resource "oci_nosql_table" "carts" {
compartment_id = var.compartment_id
name = "carts"
ddl_statement = "CREATE TABLE IF NOT EXISTS carts (cart_id STRING, customer_id STRING, items JSON, PRIMARY KEY (cart_id))"
table_limits {
max_storage_in_gbs = 25
capacity_mode = "ON_DEMAND"
}
}[
{
"id": "oci_nosql_table.sessions",
"result": {
"class": "REDESIGN",
"confidence": "LOW",
"target": {
"service": "STACKIT MongoDB Flex"
},
"reason": "OCI NoSQL has its own data model and API. The tables and clients are redesigned for MongoDB Flex."
}
},
{
"id": "oci_nosql_table.carts",
"result": {
"class": "REDESIGN",
"confidence": "LOW",
"target": {
"service": "STACKIT MongoDB Flex"
},
"reason": "OCI NoSQL has its own data model and API. The tables and clients are redesigned for MongoDB Flex."
}
}
]REDESIGN, met opzet
De run geeft aan dat OCI NoSQL een eigen datamodel en API heeft en dat de tabellen en clients worden herontworpen voor MongoDB Flex. De klasse is geen gebrek: die geeft aan dat het werk uit ontwerpen bestaat en niet uit kopiëren.
Zekerheidsniveau LOW
Beide tabellen hebben LOW. De run legt de haalbaarheid vast als voorwaardelijk, met een functionaliteitskloof als blokkadecategorie, dus het antwoord hangt af van wat uw applicatie gebruikt.
Ook de clients veranderen
Een DDL-statement, een SQL-achtige query en een SDK-aanroep zijn allemaal Oracle-specifiek. Het herontwerp omvat de applicatiecode die met de tabel praat.
De index die de run niet kent
De secundaire index op de winkelwagentabel is als eigen resource gedeclareerd. De run neemt de index op en zegt ronduit dat die niet is beoordeeld. assessment.json staat op één regel, dus het venster toont geselecteerde velden van elke eenheid, ingesprongen en genest zoals in het bestand, met ongewijzigde waarden.
resource "oci_nosql_index" "carts_by_customer" {
table_name_or_id = oci_nosql_table.carts.id
compartment_id = var.compartment_id
name = "carts_by_customer"
keys {
column_name = "customer_id"
}
}[
{
"id": "oci_nosql_index.carts_by_customer",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"reason": "oci_nosql_index is not in the knowledge base catalogue; an architect has to decide the target. Nothing of this resource is assessed or drafted (unknown source type)."
}
}
]MANUAL_REVIEW voor de index
Het indextype staat niet in de catalogus van de run, dus er is niets van beoordeeld of opgesteld. De tabel waartoe die behoort, draagt een waarschuwing dat de index gekoppeld is maar niet beoordeeld.
Waar het in het plan staat
De index zit in golf 2 en de tabellen in golf 1. In de praktijk ontwerpt u de indexen samen met de collecties, vanuit de queries die de applicatie uitvoert.
Concept voor concept: van OCI NoSQL naar MongoDB Flex
De linkerkolom is gedocumenteerd door Oracle, de middelste door STACKIT waar dat staat, en de laatste kolom is de vraag die u in het ontwerp beantwoordt.
| OCI NoSQL-concept | Op MongoDB Flex | Wat u beslist |
|---|---|---|
| Tabel met een primaire sleutel en shardsleutel | Een collectie van documenten; STACKIT beschrijft de dienst als volledig compatibel met native MongoDB | De documentsleutel en welke velden de indexen aanvoeren. Oracle shardt op een deel van de primaire sleutel; de STACKIT-pagina beschrijft geen shardsleutel per tabel, dus ontwerp vanuit de toegangspatronen. |
| JSON-kolom | Een document, opgeslagen als BSON, met een dynamisch schema | Of u de payload als één ingebed object houdt of velden naar het hoofdniveau van het document haalt. |
| Getypeerde kolommen | Documentvelden | Hoeveel validatie de applicatie doet, aangezien een documentopslag uw DDL niet afdwingt. |
| TTL op rijen (USING TTL 1 DAYS) | Een verloopmechanisme van de database, bijvoorbeeld een TTL-index, ontworpen per collectie | Het verloopveld, de opruimvertraging die u accepteert en een test dat verlopen sessies echt verdwijnen. |
| Secundaire index, ook op JSON-paden | Indexen: enkelvoudig, samengesteld, geospatiaal en tekst worden door STACKIT vermeld | Eén index per querypad; geen automatische overname van de OCI-index. |
| Ingerichte lees- en schrijfeenheden, of on-demand | Een instance die u bij het aanmaken dimensioneert; de STACKIT-pagina die voor deze gids is gelezen, beschrijft geen doorvoerinstelling per tabel | Piek in lezen en schrijven, vertaald naar de omvang van de instance; er is geen eenheidsinstelling per tabel om over te nemen. |
| Leesconsistentie ABSOLUTE of EVENTUAL | Lees- en schrijfgedrag wordt ingesteld in de driver en de deployment (algemene praktijk) | Welke leesacties de laatste schrijfactie moeten zien; in Oracle kosten ABSOLUTE-leesacties tweemaal de leeseenheden, dus gebruik ze alleen waar het moet. |
| Tabelhiërarchie met joins | Aggregaties met $lookup, of insluiten | Of bovenliggende en onderliggende rijen één document worden. |
| Global active tables | Niet beschreven op de STACKIT-pagina die voor deze gids is gelezen | Of u überhaupt over regio's repliceert, en hoe; plan dat als apart ontwerp. |
Oracle geeft aan dat ACID-transacties worden ondersteund; de MongoDB Flex-pagina noemt authenticatie, rolgebaseerd toegangsbeheer, versleuteling en auditing. De concrete garanties die u nodig hebt, moet u bij de dienst bevestigen voordat u erop vertrouwt.
Opties voor het doel
De run stelt er één voor. Dit zijn de keuzes die een architect afweegt; ze impliceren geen benchmark.
MongoDB Flex, de kandidaat van de run
Het meest geschikt als de data echt documentvormig is en de applicatie naar een document-API kan overstappen. STACKIT vermeldt dynamische schema's, aggregaties en meerdere indextypen.
PostgreSQL Flex met JSONB
Het meest geschikt als u één relationele dienst wilt voor getypeerde kolommen en een JSON-kolom samen en accepteert dat u queries naar SQL herschrijft. Een ontwerpalternatief buiten de run.
Key Value Store (Valkey) voor sessies
Een sessietabel met een verloop van één dag is een cache in alles behalve naam. Als niets de tabel op iets anders dan de sleutel bevraagt, past een key value store met verlopende sleutels mogelijk beter dan een documentcollectie. Nog een ontwerpalternatief buiten de run.
Splitsen per workload
De twee tabellen in de demo hoeven niet in dezelfde dienst te landen. Beslis per tabel vanuit het toegangspatroon en voeg pas samen waar dat beheerinspanning bespaart.
Een ontwerpvolgorde die werkt
Algemene praktijk, geen resultaat van de run. Elke stap levert iets op dat een reviewer kan controleren.
Maak een lijst van de toegangspatronen
Schrijf voor elke tabel elke leesactie en schrijfactie op: met welke sleutel, hoe vaak, hoe actueel de data moet zijn.
Kies het doel per tabel
Gebruik de opties hierboven en leg vast waarom, zodat de beslissing later niet wordt herhaald.
Teken de documenten of rijen
Eén voorbeeldrecord per collectie, met sleutel en indexen, besproken met het team dat de applicatie beheert.
Herschrijf de laag voor datatoegang
Vervang de Oracle-SDK-aanroepen en de SQL-achtige queries; houd de wijziging achter één interface zodat die te testen is.
Laad en vergelijk
Exporteer uit de bron, transformeer, laad en vergelijk aantallen en steekproefrecords. De run verplaatst geen data en geeft aan dat u het mechanisme zelf kiest.
Vragen van applicatieteams
Waarom is de klasse REDESIGN en niet REPLATFORM?
Omdat Oracle NoSQL een eigen datamodel en API heeft. De tabellen en de clients worden herontworpen voor MongoDB Flex; een kopie van alleen de data laat een applicatie achter die de data niet kan lezen.
Is MongoDB Flex het enige doel?
Het is de kandidaat die de run noemt. PostgreSQL Flex met JSONB of een key value store kan bij specifieke tabellen beter passen; dit zijn ontwerpalternatieven die u beoordeelt en geen resultaten van de run.
Wat gebeurt er met de TTL-instelling?
Het verlopen van rijen is een functie van de Oracle-tabel. Op het doel ontwerpt en test u een verloop per collectie. De run vertaalt het DDL-statement niet.
Raken we het capaciteitsmodel van Oracle kwijt?
Ingerichte of on-demand lees- en schrijfeenheden gaan niet mee. Op het doel dimensioneert u de instance, dus u vertaalt uw piekbelasting eenmalig en beoordeelt die na de eerste weken verkeer.
Bronnen
Uw volgende stap: STACKIT.
Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.
Laat uw gegevens achter, onze specialisten nemen contact met u op.
Liever zelf een e-mail sturen? connect@stacktoit.com
Hartelijk dank.
Uw verzoek is bij ons binnengekomen. Onze specialisten nemen contact met u op.