Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY: NoSQL
W usłudze Azure Cosmos DB możesz skonfigurować czas wygaśnięcia (Time to Live, TTL) na poziomie kontenera lub zastąpić go na poziomie elementu po ustawieniu TTL dla kontenera. TTL można skonfigurować dla kontenera przy użyciu witryny Azure Portal lub zestawu SDK właściwego dla używanego języka. Zastępowanie TTL na poziomie elementu można skonfigurować za pomocą pakietów SDK.
Zawartość tego artykułu jest powiązana z czasem życia danych w sklepie transakcyjnym usługi Azure Cosmos DB. Jeśli szukasz magazynu analitycznego TTL, który umożliwia scenariusze NoETL HTAP za pośrednictwem Azure Synapse Link, kliknij tutaj.
Włącz czas działania (TTL) kontenera za pomocą portalu Microsoft Azure
Wykonaj następujące czynności, aby włączyć czas życia dla kontenera bez ustalonego terminu wygaśnięcia. Włączenie czasu życia (TTL) na poziomie kontenera w celu umożliwienia zastąpienia tej wartości na poziomie pojedynczego elementu. Możesz także ustawić TTL, wprowadzając niezerową liczbę sekund.
Zaloguj się w witrynie Azure Portal.
Utwórz nowe konto usługi Azure Cosmos DB lub wybierz istniejące konto.
Otwórz okienko Eksplorator danych.
Wybierz istniejący kontener, rozwiń kartę Ustawienia i zmodyfikuj następujące wartości:
W obszarze Ustawienia znajdź pozycję Czas wygaśnięcia.
W zależności od wymagań możesz wykonywać następujące czynności:
- Wyłącz to ustawienie
- Ustaw wartość Włączone (bez wartości domyślnej) lub
- Włącz z określoną wartością TTL w sekundach.
Wybierz Zapisz, aby zapisać zmiany.
- Jeśli DefaultTimeToLive jest ustawione na null, to Czas Życia jest wyłączony.
- Gdy wartość DefaultTimeToLive wynosi -1, ustawienie Czas wygaśnięcia ma wartość Włączone (wartość domyślna)
- Jeśli DefaultTimeToLive ma dowolną inną wartość całkowitą (z wyjątkiem 0), wtedy ustawienie Czas wygaśnięcia jest włączone. Serwer automatycznie usunie elementy na podstawie skonfigurowanej wartości.
Włączanie czasu wygaśnięcia w kontenerze przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell
Aby utworzyć lub włączyć TTL w kontenerze, zobacz:
- Tworzenie kontenera z TTL przy użyciu Azure CLI
- Tworzenie kontenera z użyciem czasu wygaśnięcia przy użyciu programu PowerShell
Włączanie czasu wygaśnięcia w kontenerze przy użyciu zestawu SDK
- Zestaw .NET SDK w wersji 3
- Java SDK wersja 4
- Zestaw SDK dla języka Node
- Zestaw SDK dla języka Python
- Zestaw SDK dla języka Go
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);
Ustawianie czasu wygaśnięcia w kontenerze przy użyciu zestawu SDK
Aby ustawić czas wygaśnięcia dla kontenera, należy podać niezerową liczbę dodatnią, określającą czas w sekundach. Na podstawie skonfigurowanej wartości TTL wszystkie elementy w kontenerze zostaną usunięte po upływie wskazanego czasu od wartości znacznika czasu ostatniej modyfikacji _ts
.
- Zestaw .NET SDK w wersji 3
- Java SDK wersja 4
- Zestaw SDK dla języka Node
- Zestaw SDK dla języka Python
- Zestaw SDK dla języka Go
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);
Ustawianie czasu wygaśnięcia elementu przy użyciu portalu
Oprócz skonfigurowania domyślnego czasu wygaśnięcia dla kontenera możesz ustawić czas wygaśnięcia konkretnego elementu. Ustawienie czasu wygaśnięcia na poziomie elementu spowoduje zastąpienie domyślnego czasu wygaśnięcia elementu w kontenerze.
Aby ustawić czas wygaśnięcia elementu, podaj niezerową liczbę dodatnią oznaczającą czas w sekundach — element zostanie usunięty po upływie tego czasu od wartości znacznika czasu ostatniej modyfikacji
_ts
. Możesz również podać element-1
, gdy element nie powinien wygasać.Jeśli element nie ma pola TTL, będzie obowiązywał domyślny czas wygaśnięcia ustawiony dla kontenera.
Jeśli TTL zostanie wyłączony na poziomie kontenera, pole TTL elementu będzie ignorowane do momentu włączenia TTL ponownie dla kontenera.
Aby włączyć czas wygaśnięcia elementu, wykonaj następujące kroki:
Zaloguj się w witrynie Azure Portal.
Utwórz nowe konto usługi Azure Cosmos DB lub wybierz istniejące konto.
Otwórz okienko Eksplorator danych.
Wybierz istniejący kontener, rozwiń go, a następnie zmodyfikuj następujące wartości:
- Otwórz okno Skalowanie i ustawienia.
- W obszarze Ustawienia znajdź pozycję Czas wygaśnięcia.
- Wybierz Włączone (bez wartości domyślnej) lub Włączone i ustaw wartość TTL.
- Wybierz Zapisz, aby zapisać zmiany.
Następnie przejdź do elementu, dla którego chcesz ustawić czas wygaśnięcia, dodaj
ttl
właściwość i wybierz pozycję Aktualizuj.{ "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 }
Ustaw czas życia elementu przy użyciu SDK
- Zestaw .NET SDK w wersji 3
- Java SDK wersja 4
- Zestaw SDK dla języka Node
- Zestaw SDK dla języka Python
- Zestaw SDK dla języka Go
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);
Resetowanie czasu życia przy użyciu zestawu SDK
Możesz zresetować czas życia elementu, wykonując operację zapisu lub aktualizacji na nim. Operacja zapisu lub aktualizacji spowoduje ustawienie znacznika czasu _ts
na bieżący czas, a czas życia (TTL) dla wygaśnięcia elementu rozpocznie się od nowa. Jeśli chcesz zmienić czas wygaśnięcia elementu, możesz zaktualizować pole TTL tak samo jak każde inne pole.
- Zestaw .NET SDK w wersji 3
- Java SDK wersja 4
- Zestaw SDK dla języka Node
- Zestaw SDK dla języka Python
- Zestaw SDK dla języka Go
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")
);
Wyłącz czas życia przy użyciu SDK
Aby wyłączyć czas wygaśnięcia dla kontenera i zatrzymać proces w tle sprawdzający, czy elementy wygasły, należy usunąć właściwość DefaultTimeToLive
z kontenera. Usunięcie tej właściwości ma inne skutki niż ustawienie jej na –1. Jeśli ustawisz to na –1, nowe elementy dodawane do kontenera będą trwały wiecznie, jednak możesz nadpisać tę wartość dla konkretnych elementów w kontenerze. Usunięcie właściwości TTL z kontenera spowoduje, że elementy nigdy nie wygasną, nawet jeśli jawnie zastąpią poprzednią domyślną wartość czasu wygaśnięcia.
- Zestaw .NET SDK w wersji 3
- Java SDK wersja 4
- Zestaw SDK dla języka Node
- Zestaw SDK dla języka Python
- Zestaw SDK dla języka Go
ContainerProperties properties = await container.ReadContainerAsync();
// Disable ttl at container-level
properties.DefaultTimeToLive = null;
await container.ReplaceContainerAsync(properties);
Następne kroki
Aby dowiedzieć się więcej na temat czasu do życia, przeczytaj poniższy artykuł: