Megosztás a következőn keresztül:


Élettartam konfigurálása az Azure Cosmos DB-ben

A KÖVETKEZŐRE VONATKOZIK: NoSQL

Az Azure Cosmos DB-ben konfigurálhatja az élettartamot (TTL) a tároló szintjén, vagy felülbírálhatja egy elem szintjén a tároló beállítása után. A tároló TTL-értékét az Azure Portalon vagy a nyelvspecifikus SDK-val lehet beállítani. Az elemszintű TTL-felülbírálások az SDK-k használatával konfigurálhatók.

A cikk tartalma az Azure Cosmos DB tranzakciós tár TTL-jével kapcsolatos. Ha Analitycal Store TTL-t keres, amely engedélyezi a NoETL HTAP-forgatókönyveket az Azure Synapse Linken keresztül, kattintson ide.

Idő engedélyezése tárolón való élethez az Azure Portal használatával

Az alábbi lépésekkel időt engedélyezhet egy lejárat nélküli tárolón való élethez. Ha engedélyezi a TTL-t a tároló szintjén, hogy ugyanazt az értéket felül lehessen bírálni egy adott elem szintjén. A TTL-t úgy is beállíthatja, hogy másodpercekig nem nulla értéket ad meg.

  1. Jelentkezzen be az Azure Portalra.

  2. Hozzon létre egy új Azure Cosmos DB-fiókot, vagy válasszon ki egy meglévő fiókot.

  3. Nyissa meg az Adatkezelő panelt.

  4. Válasszon ki egy meglévő tárolót, bontsa ki a Beállítások lapot, és módosítsa a következő értékeket:

    • A Keresés beállítása alatt az élettartam.

    • A követelményeknek megfelelően a következőt teheti:

      • A beállítás kikapcsolása
      • Állítsa be (nincs alapértelmezett) vagy
      • Kapcsolja be másodpercben megadott TTL-értékkel.
    • A módosítások mentéséhez válassza a Mentés lehetőséget.

    Élettartam konfigurálása az Azure Portalon

  • Ha a DefaultTimeToLive értéke null, akkor az élettartam ki van kapcsolva
  • Ha a DefaultTimeToLive értéke -1, akkor az Élettartam beállítás be van kapcsolva (nincs alapértelmezett)
  • Ha a DefaultTimeToLive bármilyen más int értékkel rendelkezik (a 0 kivételével), akkor az Élettartam beállítás be van kapcsolva. A kiszolgáló a konfigurált érték alapján automatikusan törli az elemeket.

Az Azure CLI vagy az Azure PowerShell használatával időt engedélyezhet egy tárolón való élethez

A TTL tárolón való létrehozásához vagy engedélyezéséhez lásd:

Tárolón való életidő engedélyezése SDK használatával

Database database = client.GetDatabase("database");

ContainerProperties properties = new ()
{
    Id = "container",
    PartitionKeyPath = "/customerId",
    // Never expire by default
    DefaultTimeToLive = -1
};

// Create a new container with TTL enabled and without any expiration value
Container container = await database
    .CreateContainerAsync(properties);

Tárolón való életidő beállítása SDK használatával

A tárolón való élettartam beállításához meg kell adnia egy nem nulla pozitív számot, amely másodpercben jelzi az időtartamot. A konfigurált TTL-érték alapján a tárolóban lévő összes elem törlődik az elem _ts utolsó módosított időbélyege után.

Database database = client.GetDatabase("database");

ContainerProperties properties = new ()
{
    Id = "container",
    PartitionKeyPath = "/customerId",
    // Expire all documents after 90 days
    DefaultTimeToLive = 90 * 60 * 60 * 24
};

// Create a new container with TTL enabled and without any expiration value
Container container = await database
    .CreateContainerAsync(properties);

Egy elem élettartamának beállítása a Portál használatával

Amellett, hogy beállít egy alapértelmezett élettartamot egy tárolón, beállíthat egy élettartamot egy elemhez. Az elemszinten való élettartam beállítása felülbírálja a tárolóban lévő elem alapértelmezett TTL-ét.

  • Ha egy elemen szeretné beállítani a TTL-t, meg kell adnia egy nem nulla pozitív számot, amely azt az időszakot jelzi másodpercben, hogy az elem az elem _tsutolsó módosított időbélyege után lejárjon. Akkor is megadható, -1 ha az elem nem jár le.

  • Ha az elem nem rendelkezik TTL-mezővel, akkor alapértelmezés szerint a tárolóra beállított TTL érvényes lesz az elemre.

  • Ha a TTL le van tiltva a tároló szintjén, a rendszer figyelmen kívül hagyja az elem TTL-mezőjét, amíg a TTL újra nem lesz engedélyezve a tárolón.

Az alábbi lépésekkel engedélyezheti az elemeken való életidőt:

  1. Jelentkezzen be az Azure Portalra.

  2. Hozzon létre egy új Azure Cosmos DB-fiókot, vagy válasszon ki egy meglévő fiókot.

  3. Nyissa meg az Adatkezelő panelt.

  4. Válasszon ki egy meglévő tárolót, bontsa ki, és módosítsa a következő értékeket:

    • Nyissa meg a Méretezés és beállítások ablakot.
    • A Keresés beállítása alatt az élettartam.
    • Válassza a Be (nincs alapértelmezett) lehetőséget, vagy válassza a Be lehetőséget, és állítson be egy TTL-értéket.
    • A módosítások mentéséhez válassza a Mentés lehetőséget.
  5. Ezután keresse meg azt az elemet, amelynek az élettartamát meg szeretné adni, adja hozzá a tulajdonságot, és válassza a ttl Frissítés lehetőséget.

    {
        "id": "1",
        "_rid": "Jic9ANWdO-EFAAAAAAAAAA==",
        "_self": "dbs/Jic9AA==/colls/Jic9ANWdO-E=/docs/Jic9ANWdO-EFAAAAAAAAAA==/",
        "_etag": "\"0d00b23f-0000-0000-0000-5c7712e80000\"",
        "_attachments": "attachments/",
        "ttl": 10,
        "_ts": 1551307496
    }
    

Egy elem élettartamának beállítása SDK használatával

public record SalesOrder(string id, string customerId, int ttl);
Container container = database.GetContainer("container");

SalesOrder item = new (
    "SO05", 
    "CO18009186470"
    // Expire sales order in 30 days using "ttl" property
    ttl:  60 * 60 * 24 * 30
);

await container.CreateItemAsync<SalesOrder>(item);

Élettartam visszaállítása SDK használatával

Az elemen végzett írási vagy frissítési művelettel alaphelyzetbe állíthatja az elemek élettartamát. Az írási vagy frissítési művelet az aktuális időpontra állítja be az _ts értéket, és az elem lejáratához szükséges TTL újra megkezdődik. Ha módosítani szeretné egy elem TTL-ét, ugyanúgy frissítheti a mezőt, mint bármely más mezőt.

SalesOrder item = await container.ReadItemAsync<SalesOrder>(
    "SO05", 
    new PartitionKey("CO18009186470")
);

// Update ttl to 2 hours
SalesOrder modifiedItem = item with { 
    ttl = 60 * 60 * 2 
};

await container.ReplaceItemAsync<SalesOrder>(
    modifiedItem,
    "SO05", 
    new PartitionKey("CO18009186470")    
);

Élettartam letiltása SDK használatával

Ha le szeretné tiltani a tárolóban való élettartamot, és nem szeretné, hogy a háttérfolyamat lejárt elemeket keressen, törölni kell a DefaultTimeToLive tároló tulajdonságát. A tulajdonság törlése eltér attól, hogy a tulajdonságot -1 értékre állítja. Ha -1 értékre állítja, a tárolóhoz hozzáadott új elemek örökké élnek, de ezt az értéket felülbírálhatja a tároló bizonyos elemein. Ha eltávolítja a TTL tulajdonságot a tárolóból, az elemek soha nem járnak le, még akkor sem, ha explicit módon felülírták az előző alapértelmezett TTL-értéket.

ContainerProperties properties = await container.ReadContainerAsync();

// Disable ttl at container-level
properties.DefaultTimeToLive = null;

await container.ReplaceContainerAsync(properties);

Következő lépések

További információ az élethez való időről a következő cikkben: