フリーキーズ | 独学プログラミング

Hypertableとは

最終更新日

Hypertableは、構造化データおよび非構造化データのための高性能でスケーラブルな分散ストレージおよび処理システムを実装したオープンソースのソフトウェアシステムです。コモディティサーバーの大規模なクラスタ上で情報の保存と処理を管理するために設計され、構造化データおよび半構造化データのための分散データストレージシステムを提供します。

Hypertableの特徴

Hypertableは、Google Bigtableの設計をベースにしており、スケーラブルで強い一貫性を持ち、高性能な方法で大量のデータを保存する方法を提供します。Webインデックス、データマイニング、機械学習、ビジネスインテリジェンスなど、大規模で分散したデータセットを管理するアプリケーションで使用されています。

Hypertableでは、データは従来のデータベースと同様に行と列を持つテーブルに格納されます。しかし、これらのテーブルはHypertableによって自動的にマシンのクラスタに分散されるため、高いパフォーマンスとスケーラビリティを実現できます。

Hypertableの使用例

ここではHypertableクラスタに接続し、Thrift APIを使用していると仮定して、PythonからHypertableを使用する方法を例として説明します。

from hypertable.thriftclient import ThriftClient

# クライアントを作成しテーブルを開く
client = ThriftClient("localhost", 15867)
namespace = client.namespace_open("test")
table = client.hql_query("CREATE TABLE IF NOT EXISTS my_table (name, value)")

# データを挿入
client.hql_query("INSERT INTO my_table VALUES ('row1', 'name', 'Taro Yamada'), ('row1', 'value', '42')")

# データを取得
query = client.hql_query("SELECT * FROM my_table WHERE ROW='row1'")
for cell in query.cells:
    print(f"Row: {cell.key.row}, Column: {cell.key.column_family}:{cell.key.column_qualifier}, Value: {cell.value}")

Hypertableは現在積極的に開発されていないことにご注意ください。似た性質を持つもので、現在メンテナンスされ広く使われているApache HBase、Apache Cassandra、Google Cloud Bigtableの利用を検討するとよいでしょう。