Unterschiede zwischen HBase und Bigtable
Eine Möglichkeit, auf Bigtable zuzugreifen, ist die Verwendung einer angepassten Version des Apache HBase-Clients für Java. Allgemein stellt der angepasste Client die gleiche API wie eine Standardinstallation von HBase zur Verfügung. Auf dieser Seite werden die Unterschiede zwischen dem Cloud Bigtable-HBase-Client für Java und einer Standard-HBase-Installation beschrieben. Viele dieser Unterschiede hängen mit Verwaltungsaufgaben zusammen, die Bigtable automatisch ausführt.
Der Cloud Bigtable HBase-Client für Java richtet sich an Kunden, die von HBase zu Bigtable migrieren und die HBase API weiterhin verwenden möchten. In allen anderen Fällen sollten Java-Entwickler stattdessen den Cloud Bigtable-Client für Java verwenden, der die Bigtable APIs aufruft.
Spaltenfamilien
Wenn Sie eine Spaltenfamilie erstellen, können Sie die Blockgröße oder Kompressionsmethode nicht konfigurieren, und zwar weder mit der HBase-Shell noch der HBase-API. Bigtable verwaltet die Blockgröße und Kompression eigenständig.
Außerdem meldet die HBase-Shell, wenn Sie darüber Informationen zu einer Tabelle abfragen, immer für jede Spaltenfamilie, dass diese keine Kompression verwendet. Tatsächlich verwendet Bigtable jedoch proprietäre Kompressionsmethoden für alle Ihre Daten.
Bigtable erfordert, dass Namen von Spaltenfamilien dem regulären Ausdruck [_a-zA-Z0-9][-_.a-zA-Z0-9]* folgen. Wenn Sie Daten aus HBase in Bigtable importieren, müssen Sie möglicherweise die Familiennamen ändern, um diesem Muster zu folgen.
Zeilen und Zellen
- Sie können für eine individuelle Zeile keine ACL definieren.
- Sie können die Sichtbarkeit von einzelnen Zellen nicht einstellen.
- Tags werden nicht unterstützt. Mit der Klasse
org.apache.hadoop.hbase.Tagkönnen Sie einzelnen Zellen keine Metadaten hinzufügen.