Azure-docs: Warum Table Storage und CosmosDB in einem Table Storage-Thema mischen?

Erstellt am 14. März 2019  ·  27Kommentare  ·  Quelle: MicrosoftDocs/azure-docs

[Geben Sie hier Feedback ein]
Für Ungeübte ist die Azure-Website unglaublich komplex und schwierig.

Warum Table Storage und CosmosDB in einem Table Storage Thema mischen. CosmosDB-Informationen sollten nicht in das Thema Table Storage eingebunden werden. Warum erschweren Sie das Erlernen des ausgewählten Themas? Wenn ich etwas über CosmosDB lesen wollte, würde ich zu diesem Thema gehen,

Karl


Dokumentdetails

Bearbeiten Sie diesen Abschnitt nicht.

Pri1 assigned-to-author doc-enhancement review-team-triage storagsvc triaged

Hilfreichster Kommentar

Ich stimme zu, dass dies verwirrend ist. Ich bin hier gelandet und habe versucht, eine Dokumentation für die Verwendung von Azure Table Storage ohne das (teurere und in meinem Fall unnötige Cosmos DB-Angebot) zu finden, aber so ziemlich jeder Link führt Sie zur Cosmos DB-Tabellen-API. Das ist bedauerlich.

Sollen wir daraus schließen, dass Table Storage, wie wir ihn kennen, irgendwann einfach in Cosmos DB eingeholt wird? Wenn nicht, könnte von dieser Seite aus auf die richtige Dokumentation zur Speichertabelle verwiesen werden?

Alle 27 Kommentare

@kdawg1406 Danke für die Frage! Wir untersuchen das und werden Sie in Kürze informieren.

Hallo @kwaman
Sowohl Table Storage als auch Cosmos DB bieten an, strukturierte NoSQL-Daten in Azure zu speichern und somit zusammenzufassen.

Wir weisen dieses Problem dem Rechteinhaber zu, um es gegebenenfalls zu bewerten und zu aktualisieren.

Ich brauchte den Tipp und die folgenden Artikel zu den Unterschieden (einen im Inhaltsverzeichnis hier und einen verlinkten im Tipp, der zum entsprechenden Abschnitt der Cosmos DB geht). Meine erste Frage war, was der Unterschied zwischen den beiden war und die haben dies für mich beantwortet.

Der Tipp ist ein bisschen wie ein Upsell gestaltet, daher verstehe ich, warum der ursprüngliche Kommentator das Feedback hinterlassen hat. Nachdem ich mich mit den Produkten befasst habe, sehe ich, warum wir beide brauchen (oder zumindest die Fähigkeiten / Leistung / Preisoptionen von beiden brauchen).

Es ist unklar, ob die SDKs von CosmosDB den regulären Azure Table Storage-Dienst unterstützen.

Außerdem ist die Installation der Pakete Microsoft.Azure.Cosmos.Table und Microsoft.Azure.Storage.Blob im selben Projekt sehr mühsam - diese haben viele ähnliche Typen wie CloudStorageAccount , StorageCredentials und StorageException . Das scheint keine tolle Erfahrung zu sein 🙁

IMHO: so nah an einem Adoptionsblocker. Microsoft gibt viel Geld aus, um neue Kunden zu gewinnen.

Wenn es schwierig ist, mit den Dokumenten erfolgreich zu sein (ohne tiefes technisches Verständnis von Azure), blockiert oder behindert dies die Einführung.

Geben Sie die Ressourcen aus und machen Sie die Dokumente für eine Person einfach, die versucht, erfolgreich zu sein.

Ein einzelner HINWEIS oben, der auf Cosmos-db verweist, ist akzeptabel und sinnvoll. Aber gönnen Sie sich nach der Notiz eine Pause und lassen Sie den Inhalt dem Titel und den Benutzererwartungen entsprechen.

Karl

Ich stimme zu, dass dies verwirrend ist. Ich bin hier gelandet und habe versucht, eine Dokumentation für die Verwendung von Azure Table Storage ohne das (teurere und in meinem Fall unnötige Cosmos DB-Angebot) zu finden, aber so ziemlich jeder Link führt Sie zur Cosmos DB-Tabellen-API. Das ist bedauerlich.

Sollen wir daraus schließen, dass Table Storage, wie wir ihn kennen, irgendwann einfach in Cosmos DB eingeholt wird? Wenn nicht, könnte von dieser Seite aus auf die richtige Dokumentation zur Speichertabelle verwiesen werden?

Stimmen Sie zu, dass dies sehr verwirrend ist.
Ich habe versucht herauszufinden, welches Nuget-Paket ich für Azure Table Storage benötige - fand die alte Paketseite unter:
https://www.nuget.org/packages/WindowsAzure.Storage/
Es weist darauf hin:
https://www.nuget.org/packages/Microsoft.Azure.CosmosDB.Table/
Was weist darauf hin:
https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Table

Was bedeutet nicht wirklich, dass dies das Paket für Azure Table Storage ist? Darin heißt es: "Diese Clientbibliothek ermöglicht das Arbeiten mit dem Microsoft Azure CosmosDB Table Storage..."
Jedenfalls habe ich es installiert und es scheint zu funktionieren.

Es ist auch sehr wichtig, auf die Bereiche hinzuweisen, für die CosmosDb nicht geeignet ist. Ich werde diese Tabellen als Datenquelle für PowerBI verwenden, und obwohl Sie diese Verbindung zwischen PowerBI und CosmosDb als "Vorschau" bezeichnen können, ähnelt sie dem Testen in der Produktion. Ich würde wirklich gerne wissen, ob Sie die Tabellenspeicheroptionen im regulären Speicherplatz deaktivieren werden, um Ihr CosmosDb-Angebot zu verbessern. Wenn dies der Weg ist, den Sie einschlagen, müssen wir dies wissen, damit wir andere Optionen bewerten können.

Die Dokumentation zu Azure Table Storage ist in der Tat verwirrend.

Ja, ich kann vieles von dem, was hier gesagt wurde, wiederholen. Ich suche nur nach ein paar kleinen Tabellen, die ich mit einigen Azure Functions kombinieren kann, und habe Schwierigkeiten, loszulegen. Die Änderungen in der Dokumentation deuten darauf hin, dass Cosmos DB Azure Storage Tables ersetzt, da die meisten Dokumente jetzt auf Cosmos verweisen. Aber wenn man die Preise betrachtet, ist es nicht das richtige für mein Projekt, ich brauche nicht so viel Leistung, Skalierung oder RU's.

All dies macht meine ersten Schritte zu einem Durcheinander, und ich wünsche mir, ich hätte gerade eine Konsolen-App und eine winzige Azure SQL-Datenbank erstellt.

Azure Table Storage ( Link ) und Azure Cosmos DB Table API ( Link ) sind zwei separate Dienste, bei denen die Cosmos DB Table API immer noch dieselbe Funktionalität wie die Table Storage API bietet, jedoch mit zusätzlichen Funktionen. Bei Fragen zur Roadmap oder Funktionalität wenden Sie sich bitte an

Ja, ich bin auch verwirrt, und bei Fragen zum Azure-Tabellenspeicher sagen sie "dieser gehört dem CosmosDB-Team"... für kosmosdb... usw.

@Mike-Ubezzi-MSFT - Tatsächlich unterscheiden sie sich in der Funktionalität, wenn Sie versuchen, sie in PowerBI zu verwenden (Das ist definitiv eine Testlösung vom Produktionstyp, die in PowerBI bereitgestellt wurde. Sie sollte wirklich aus PowerBI entfernt werden, bis sie fertig ist. ) Ich habe eine Weile dagegen gekämpft, bis ich verstand, dass es tatsächlich kaputt war - es sah nur so aus, als wäre es eine Option (Es funktioniert für die regulären Tabellen, aber nicht für Cosmos-Tabellen)

Ich habe letzte Woche angerufen, Azure als Möglichkeit für unstrukturierten Tabellenspeicher für unsere Lösung zu entfernen, da die Zukunft auf der Azure-Plattform unklar ist. Ich habe diesen Zyklus von Microsoft schon einmal gesehen, wenn die Vertriebsabteilung beschlossen hat, in ein Produkt einzusteigen, und ich möchte nicht noch einmal mittendrin stehen.

Auf den bereitgestellten Links – wenn Sie sich den von Ihnen angegebenen Azure Table Storage-Link ansehen ( link ), beziehen sich die meisten Anweisungen auf die Konvertierung in CosmosDb oder die Verwendung von CosmosDb. Diejenigen von uns, die schon eine Weile dabei sind, wissen, was das bedeutet. Bitte fragen Sie die zuständigen Behörden, uns mitzuteilen, ob sie ein Produkt töten, damit wir aufhören können, damit zu bauen und andere Lösungen zu finden, die für uns funktionieren. (Mike – ich weiß, dass du das nicht bist, und ich habe nicht die Absicht, dir dabei das Gefühl zu geben, ein Gegner zu sein.)

@MarkSiteRankSystems Vielen Dank für das Feedback. Dafür gibt es einen Uservoice-Eintrag ( Link ) und diese Funktionalität scheint ungeplant zu sein. Darüber hinaus unterstützt der ODBC-Treiber für Cosmos DB die SQL-API: Das Herstellen einer Verbindung mit Azure Cosmos DB mit dem ODBC-Treiber wird derzeit nur für Azure Cosmos DB-SQL-API-Konten unterstützt ( Link ).
Gibt es ein Tutorial, das die Cosmos Table API mit PowerBI verwendet? Dieser sollte gezogen werden.
Was die Dokumentation angeht, stimme ich zu, dass alle Dienste durchgängig in einem eigenen Buch beschrieben werden sollten, anstatt diese Mischung aus sich überschneidenden Informationen. Feedback wurde erfasst.

Ich habe den Eindruck, dass Cosmos DB kommerziell angekurbelt wird, um die Verwirrung der Benutzer zu nutzen und zu hoffen, dass sie Cosmos DB anstelle von Azure Table aktivieren.
Dies lässt jedoch Benutzer aus, die keine teure Cosmos DB benötigen und nur Azure Table Storage verwenden könnten oder woanders nach Microsoft-Konkurrenten suchen (es gibt Konkurrenten, die ähnlich wie Azure Table Storage sind, die gut kommuniziert werden und nicht den Eindruck erwecken, geschlossen zu sein Am nächsten Tag).

Darüber hinaus hinterließ dieser Vorstoß zu einer gemeinsamen API [1] und kommerziell zu Cosmos DB eine kaputte Dokumentation. Heute habe ich StackOverflow [2] gelesen und festgestellt, dass die Dokumentation zum Tabellenattribut [IgnoreProperty] [3] offline geschaltet wurde.

Sehr schade, dass Sie, wenn Sie versuchen, ein Upselling zu machen, stattdessen Ihren Kundenstamm verärgern.

[1] eine gemeinsame API ist an sich keine schlechte Sache, aber wenn die API-Dokumentation geschrieben wird, ist es eine fragwürdige Geschäftspraxis, den Eindruck zu erwecken, dass Azure Table Storage abgeschafft wird
[2] https://stackoverflow.com/questions/53084652/azure-table-storage-property-attributes
[3] https://docs.microsoft.com/en-us/dotnet/api/microsoft.windowsazure.storage.table.ignorepropertyattribute?view=azure-dotnet

Frohes neues Jahr! Das ist immer noch nicht gelöst. Ich bin so froh, dass ich diese Diskussion gefunden habe - ich fühle mich nicht mehr so ​​allein.

Ich habe festgestellt, dass ich in der Lage sein sollte, Microsoft.Azure.Cosmos.Table für Azure Tables zu verwenden – hoffentlich sowohl für die Verwaltung der Tabellen selbst als auch der darin enthaltenen Daten. Kennt jemand relevante/aktuelle Beispiele für diese Fälle für Azure Tables? Ich bin in Ordnung, die Entitäts-/Repository-Schicht zu vermeiden - ich möchte wirklich nur einfache CRUD-Anweisungen und DDL-Befehle verwalten.

Haha wir sind im Mai 2020... und das gleiche Problem hier. Ich interessiere mich nicht für Cosmos DB und verwende MongoDB Atlas (mit dem Nicht-C#-Legacy-UUID-Typ übrigens ...), möchte nur eine einfache, günstige Azure Table Pay-as-you-go-Option zum Speichern von Protokollen und als sekundäres Backup, um keine Daten zu verlieren ... für die es schwer scheint, Dokumente zu finden. Eine Suche nach "azure table" im Azure-Portal führt mich zu Azure CosmosDB... es scheint unmöglich, aktuelle Dokumente zu den guten alten Azure Tables zu finden...
Ich muss wohl woanders hingehen...

@alexandre-spieser Sie suchen eine eigenständige Azure Storage-Dokumentationsinstanz . Wenn Sie eine Table Storage-Instanz erstellen möchten, wird die Suche nach Azure Storage und Table zusammen mit Blob-, Queue- und File-basierten Speicheroptionen bereitgestellt.

In diesem Dokument werden beide Optionen erläutert und wie Azure Table Storage als Produkt ausgerichtet ist, ist es Teil des Cosmos DB-Diensts. Wenn Sie die Unterschiede sehen möchten: Tabellen-API in Azure Cosmos DB vs. Azure Table Storage . Wenn Sie eine Nicht-Cosmos DB-Tabelleninstanz suchen, lesen Sie die Dokumentation zu Azure Storage .

Wir werden diesen Thread nun schließen. Wenn es weitere Fragen zu diesem Thema gibt, kommentieren Sie bitte und wir werden die Diskussion gerne fortsetzen.

@Mike-Ubezzi-MSFT Viele technische Dokumente für Azure Table Storage verweisen auf die technischen Dokumente von CosmosDB. Die Erklärung ist, dass dies dieselbe Produktgruppe/ein gleiches Team innerhalb von Microsoft ist. Azure Table Storage ist schlecht dokumentiert.

Azure Table Storage und Azure Cosmos DB sind wie Azure Storage Queue und Azure Service Bus. Ersteres ist für billigen Speicher und grundlegende Zugriffsvorgänge und letzteres ist teurerer Speicher, jedoch mit erweiterten Zugriffsfunktionen. Beide sind in verschiedenen Szenarien nützlich. Sie alle sollten unabhängige Produkte sein.

PS. Die Tabellen-API für Cosmos DB kann derzeit nicht als Ersatz für Azure Table Storage dienen, da dort wesentliche Funktionen - die Sortierung nach PartitionKey UND RowKey fehlt (https://stackoverflow.com/questions/54946694/ordering-data-in-azure .) -cosmos-table-api). Eine solche Sortierung wird häufig von Apps verwendet, die Azure-Tabellen verwenden (weil dies nur dort eine Sortiermöglichkeit ist) und ich verstehe persönlich nicht, warum die super-fortgeschrittene Cosmos DB so einfache Funktionen über die Tabellen-API nicht unterstützt?

Leichter gesagt als getan. Während man für eine kurze Zeit für MSFT arbeitet, kann man verstehen, warum die Dokumente auf diese Weise erstellt werden, ein sich entwickelnder Feedbackstrom ist immer erforderlich!

Ich wollte diesem Thema nachgehen. Mir ist bewusst, dass die Dokumentation von Azure Table Storage und Azure Cosmos DB Table API getrennt sein muss. Dies ist ein größerer Aufwand und wird intern diskutiert. Vielen Dank, dass Sie weiterhin Ihre Gedanken und Ideen dazu teilen.
Darüber hinaus gibt es mit der Cosmos Table API eine Sortieroption, auf die am 15. März 2019 als Antwort auf den Stack Overflow-Thread hingewiesen wurde. Bitte beachten Sie auch, dass die Anforderung der Tabellen-API-Sortierungsfunktion am 17. März abgeschlossen wurde. Aktuelle und zukünftige Versionen und Versionshinweise finden Sie unter: Azure Cosmos DB Table .NET Standard API: Download- und Versionshinweise

Abgesehen von den Funktionen gibt es in einigen Szenarien immer noch einen großen Kostenunterschied zwischen den Lösungen. CosmosDB ist also nett, aber es wird den Tabellenspeicher für einfache Abfragen und niedrige Kostenanforderungen nicht ersetzen.

Im Folgenden finden Sie eine Anleitung für die schnelle Inbetriebnahme mit Legacy- Azure Table Storage unter Verwendung des neuesten Microsoft.Azure.Cosmos.Table-NuGet-Pakets

  1. Holen Sie sich das Codebeispiel: https://github.com/Azure-Samples/azure-cosmos-table-dotnet-core-getting-started
  2. Aktualisieren Sie alle NuGet-Pakete
  3. Kommentieren Sie in Program.cs beide Zeilen aus, die sich auf BasicSamples beziehen (sie sind die neuen Cosmos-Sachen, ältere Azure Table Storage-Bits sind in AdvancedSamples).
  4. In Settings.json setzen Sie "StorageConnectionString": "UseDevelopmentStorage=true;"
  5. Starten Sie den Azure Storage-Emulator
  6. Führen Sie den Code aus

Optional
Kommentieren Sie in AdvancedSamples.cs die Zeile wait SamplesUtils.DeleteEntityAsync(table, customerRead);
Verwenden Sie Microsoft Azure Storage Explorer, um eine Verbindung zum Emulator herzustellen und die erstellte Tabelle und ihre Daten anzuzeigen

Hoffe das hilft jemandem

@Mike-ubezzi-MSFT: Irgendwelche Gedanken zum Erstellen eines Migrationsdokuments zum Wechsel vom veralteten Windows-Speicher zu CosmosDB-Paketen? Ich weiß, es ist so einfach wie das Ändern der Namespaces - aber bei der Suche nach Dokumenten wurde ich als Top-Hit hierher gebracht.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

behnam89 picture behnam89  ·  3Kommentare

bityob picture bityob  ·  3Kommentare

jharbieh picture jharbieh  ·  3Kommentare

varma31 picture varma31  ·  3Kommentare

bdcoder2 picture bdcoder2  ·  3Kommentare