Tworzenie i edytowanie tabel elastycznych
Tabela elastyczna to tabela zarządzana przez usługę Microsoft Dataverse. Tabele elastyczne mają takie same, znane interfejsy użytkownika i interfejsy API, które są dostępne w standardowych tabelach. Mają one wiele aspektów i opcji dostępnych w tabelach standardowych, ale mają również unikatowe funkcje i możliwości obsługiwane przez usługę Azure Cosmos DB.
Podobnie jak w przypadku tabel standardowych, tabele elastyczne są dołączone do użycia wydajności bazy danych Dataverse.
Obejrzyj ten film, aby dowiedzieć się więcej o tabelach elastycznych.
Kiedy należy rozważyć użycie tabel elastycznych Dataverse?
Tabele elastyczne są przeznaczone do obsługi dużych ilości danych w czasie rzeczywistym. Dzięki tabelom elastycznym można importować, zapisywać i analizować duże ilości danych bez problemów ze skalowalnością, opóźnieniami lub wydajnością.
Tabele elastyczne mają unikatowe możliwości w zakresie elastycznego schematu, poziomego skalowania i automatycznego usuwania danych po upływie pewnego czasu.
Tabele elastyczne są automatycznie skalowane do nawet dziesięciu milionów wierszy na godzinę. Procesy w tle mogą sortować sygnały IoT, przewidywać wymagania dotyczące konserwacji i w sposób aktywny planować pracę techników.
Rozważmy scenariusz, w którym firma Contoso jest sprzedawcą detalicznym z milionami aktualnych klientów. Firma Contoso ma dużą bazę danych klientów i chce zwiększyć sprzedaż, zachowując klientów. Na podstawie wcześniejszej historii klienta chcą mieć 24-godzinne zdarzenia sprzedaży błyskawicznej z różnymi kuponami dla klientów i produktów. Szacowano, że liczba wymaganych kuponów wyniesie ponad 100 milionów na kampanię sprzedaży błyskawicznej. Dział marketingu planuje przeprowadzić wiele 24-godzinnych kampanii przeznaczonych dla różnych segmentów klientów.
Wymagane jest, aby aplikacja marketingowa Contoso mogła pozyskać w ciągu kilku godzin co najmniej 100 milionów szczegółów kuponów, przeczytać miliony kuponów na godzinę i wysłać kupony do klientów.
Tabele elastyczne zostaną automatycznie zeskalowane dla tego scenariusza o wysokiej przepływności.
Na przykład w powyższym scenariuszu tabela elastyczna o nazwie Kupon z milionami rekordów może być skojarzona z tabelami standardowymi Dataverse, takimi jak Kontakt (informacje o kliencie) i Oferta (niestandardowa tabela standardowa). Ponieważ tabele elastyczne są oddzielone od tabel standardowych, nie wpłynie to negatywnie na wydajność całej aplikacji marketingowej. Ponadto funkcja czasu wygaśnięcia z tabelą elastyczną (Kupon w tym scenariuszu) pozwala na automatyczne usuwanie danych po ustalonych okresach i zapewnia optymalizację wydajności magazynu.
Używaj tabel elastycznych, gdy:
- Dane mogą być nieustrukturyzowane lub częściowo ustrukturyzowane lub jeśli model danych może ciągle się zmieniać.
- Konieczne jest automatyczne skalowanie poziome.
- Należy obsługiwać dużą ilość żądań odczytu i zapisu.
Używaj tabel standardowych, gdy:
- Aplikacja wymaga stałej spójności.
- Aplikacja wymaga modelowania relacyjnego oraz obsługi transakcji w tabelach i na etapach wykonywania dodatków plug-in.
- W aplikacji są wymagane złożone sprzężenia.
Wybór tabeli powinien być oparty na konkretnych wymaganiach aplikacji. Kombinacja obu typów tabel może być odpowiednia.
Poziome skalowanie i wydajność
W miarę zwiększania ilości danych biznesowych tabele elastyczne zapewniają nieograniczoną automatyczną skalowalność w zależności od obciążenia aplikacji, zarówno jeśli chodzi o rozmiar magazynu i wydajność, na przykład liczbę utworzonych, zaktualizowanych lub usuniętych rekordów w danym okresie.
Jeśli w scenariuszu biznesowym jest wymagana bardzo duża liczba zapisów danych, twórcy aplikacji mogą używać wielu interfejsów API żądań Dataverse, takich jak CreateMultiple
, UpdateMultiple
i DeleteMultiple
, aby osiągnąć większą wydajność w obrębie limitów przetwarzania Dataverse. Więcej informacji: Przewodnik dla deweloperów: komunikaty o operacjach zbiorczych oraz Optymalizacja wydajności na przykład w przypadku operacji zbiorczych
Automatyczne usuwanie danych
Zasady dotyczące czasu wygaśnięcia (TTL) zapewniają, że zawsze pracujesz z najbardziej aktualnymi i dokładnymi informacjami, jednocześnie optymalizując zasoby i zmniejszając ryzyko. Wartość czasu wygaśnięcia na żywo jest ustawiana w sekundach dla rekordu i jest interpretowana jako różnica od czasu ostatniej modyfikacji rekordu.
Elastyczny schemat z kolumnami JSON
Tabele elastyczne umożliwiają przechowywanie danych o zmiennych strukturach i tworzenie dotyczących ich zapytań bez konieczności wykonywania wstępnie zdefiniowanych schematów ani migracji. Nie trzeba pisać kodu niestandardowego, aby mapować zaimportowane dane na stały schemat. Więcej informacji: Przewodnik dla deweloperów: zapytania JSON o kolumny w tabelach elastycznych Tabele elastyczne umożliwiają przechowywanie danych i wykonywanie zapytań o różne struktury, bez konieczności stosowania predefiniowanych schematów lub migracji. Nie trzeba pisać kodu niestandardowego, aby mapować zaimportowane dane na stały schemat. Więcej informacji: Przewodnik dla deweloperów: tworzenie zapytań JSON o kolumny w tabelach elastycznych
Kwestie dotyczące korzystania z tabel elastycznych
Mimo że tabele elastyczne są doskonałe do obsługi dużej liczby żądań na dużą skalę, oprócz zalet mają one również wady, o których należy pamiętać:
- Tabele elastyczne nie obsługują transakcji z wieloma rekordami. Oznacza to, że wiele operacji zapisu odbywa się w ramach wykonywania pojedynczego żądania, ale nie wchodzą ze sobą w transakcje. Jeśli na przykład dla etapu
PostOperation
zarejestrowano synchroniczny krok dodatku plug-inCreate message
w tabeli elastycznej, żadne błędy w tym dodatku plug-in nie wycofają rekordu utworzonego w usłudze Dataverse. Weryfikacje wstępnie uruchomionych dodatków plug-in będą nadal działać zgodnie z oczekiwaniami, ponieważ są uruchamiane przed rozpoczęciem etapu głównego. - Tabele elastyczne obsługują spójność tylko w sesji logicznej. Poza kontekstem sesji zmiany mogą nie być natychmiast widoczne w wierszu. Więcej informacji: Przewodnik dla deweloperów: poziom spójności
- Tabele elastyczne natomiast nie obsługują filtrów w tabelach pokrewnych podczas tworzenia widoków, szukania zaawansowanego lub wszelkich zapytań ogólnych korzystających z interfejsu API. Jeśli często jest konieczne filtrowanie kolumn pokrewnych tabel, zaleca się denormalizację kolumn z tabel pokrewnych, co wymaga filtrowania w samej tabeli głównej. Rozważmy sprzedawcę detalicznego z dwiema tabelami elastycznymi: klient i adres. Jeden klient ma wiele adresów. Mają zostać zwrócone wyniki zapytania dotyczące wszystkich klientów z tabeli klientów, których wartość miasta w tabeli adresów to Nowy Jork. W tym przykładzie podczas wykonywania zapytań o tabelę klientów należy zastosować filtr do kolumny miasta w pokrewnej tabeli adresów. To funkcja nie jest obsługiwana w tabelach elastycznych. Jednym ze sposobów na to, aby mogła ona działać, jest denormalizacja kolumny miasta w tabeli Klient, aby w tabeli klientów znajdowały się wszystkie wartości miasta klienta.
Obsługa funkcji tabel elastycznych
- Operacje tworzenia, pobierania, aktualizowania i usuwania (CRUD), w tym wiele operacji interfejsów API (o wysokiej przepływności), usuwanie zbiorcze i żądania z dodatków plug-in.
- Relacje:
- Jeden-do-wielu
- Wiele do jednego, gdy tabela N jest standardową tabelą
- Własność rekordu, śledzenie zmian, inspekcja, środowisko mobilne w trybie offline i wyszukiwanie w usłudze Dataverse.
- Kolumna Plik z atrybutem typu plik
Obsługa funkcji zabezpieczeń
Tabele zabezpieczeń są zgodne z modelem zabezpieczeń Dataverse.
Podczas tworzenia tabeli elastycznej można ustawić następujące elementy:
- Należąca do użytkownika lub organizacji
- Zabezpieczenia na poziomie pola
Funkcje, które nie są obecnie obsługiwane w tabelach elastycznych
Funkcje tabeli, które nie są obecnie obsługiwane w tabelach elastycznych:
- Reguły biznesowe
- Wykresy
- Przepływy procesów biznesowych
- Jeden łącznik Dataverse dla usługi Power BI
- Relacje wiele-do-wielu (N:N) z tabelami standardowymi
- Klucz alternatywny
- Wykrywanie duplikatów
- Atrybuty obliczane i kolumny zestawienia
- Kolumny waluty
- Porównywanie kolumn w zapytaniach
- Udostępnianie tabel
- Indeksy złożone
- Operacje kaskadowe: usuwanie, zmienianie elementu nadrzędnego, przypisywanie, udostępnianie, cofanie udostępniania
- Porządkowanie kolumn wyszukiwania
- Agregowanie zapytań:
- Różne wartości atrybutu
attribute1
w przypadku porządkowanie według wartościattribute2
- Dzielenie na strony w przypadku różnych oddzielnych elementów
- Różne oddzielne elementy z porządkowaniem według wielu wartości
- Porządkowanie według i grupowanie razem według
- Grupowanie według encji linku (lewe sprzężenie zewnętrzne)
- Różne oddzielne elementy w tabelach będących własnością użytkowników
- Różne wartości atrybutu
- Połączenia tabel
- Zespoły mające dostęp
- Kolejki
- Załącznik
Typy danych kolumn są obecnie niedostępne w tabelach elastycznych:
- Waluta
- Formuła
- Format liczb całkowitych inny niż Brak (Czas trwania, Kod języka i Strefa czasowa)
- Wyszukiwania na podstawie opcji Klient
Tworzenie tabel elastycznych
Tabelę elastyczną tworzy się tak samo jak każdą inną nową tabelę Dataverse.
- Zaloguj się do usługi Power Apps i wybierz pozycję Tabele w lewym okienku nawigacji. Jeśli elementu nie ma w okienku panelu bocznego, wybierz …Więcej, a następnie wybierz żądany element.
- Na pasku poleceń wybierz opcję Nowa tabela > Ustaw zaawansowane właściwości.
- W prawym okienku właściwości wprowadź tekst Wyświetlana nazwa i Nazwa w liczbie mnogiej.
- Rozwiń Zaawansowane opcje, a następnie wybierz Elastyczna jako Typ tabeli.
- Wybierz właściwości, a następnie wybierz opcję Zapisz.
Kolumna czasu wygaśnięcia jest tworzona automatycznie dla tabeli elastycznej. W razie potrzeby można dodać wartość okresu w sekundach. Dane są automatycznie usuwane po upływie tego okresu.
Więcej informacji o Tablicach: Opcje zaawansowane
Znane problemy
- Jeśli w wierszu zostanie określony czas wygaśnięcia (TTL), wiersz zostanie usunięty z tabeli elastycznej po upłynięciu czasu TTL. Jeśli jest on synchronizowany z data lake przy użyciu Azure Synapse Link for Dataverse przed upłynięciem czasu TTL, nie zostanie on usunięty z data lake.
- Przywracanie do punktu w czasie nie przywraca „zaktualizowanych” rekordów, ponieważ aktualizacje nie są tworzone w kopii zapasowej. Przywracane są tylko utworzone i usunięte rekordy.
- Jeśli określona kolumna w tabeli elastycznej zostanie usunięta, wartość kolumny nie zostanie usunięta z wierszy tabeli, jeśli zawiera dane. Przed usunięciem określonej kolumny usuń dane ze wszystkich wierszy tej kolumny.
Duże tabele i zarządzanie ograniczeniami interfejsów API w Dataverse
Zobacz temat Komunikaty operacji zbiorczych. Pozwala to uzyskać 10-krotną wydajność przy użyciu tego samego interfejsu API Dataverse. Deweloperzy mogą się odwoływać do większej liczby łączy podanych w poniższej sekcji.
Dla deweloperów
Elastyczne tabele mają inne zachowanie i możliwości niż standardowe tabele, gdy deweloperzy używają ich z interfejsami API Dataverse. Poniższe artykuły dla deweloperów opisują te różnice:
- Tabele elastyczne
- Tworzenie tabel elastycznych przy użyciu kodu
- Używanie tabel elastycznych przy użyciu kodu
- Zapytania JSON o kolumny w elastycznych tabelach
- Komunikaty operacji zbiorczych (wersja zapoznawcza)
- Przykładowy kod tabeli elastycznej
- Wysyłaj równoległe żądania
- Limity API ochrony usługi