Path: blob/master/site/ja/io/tutorials/bigtable.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
タイトル
概要
このノートブックは、 tensorflow_io.bigtable
モジュールの基本的な使用法と機能を表しています。続行する前に、これらのトピックに精通していることを確認してください。
注意: Jupyter は、シェルコマンドとして接頭辞 !
のある行を実行し、接頭辞 $
のある Python 変数をこれらのコマンドに補間します。
MNIST モデルをビルドする
注:以下のセルを実行すると、Google Cloud にログインするように求められます。
この例では、bigtable エミュレーターを使用しています。 bigtable インスタンスを設定して値を入力している場合は、これらの手順をスキップして、[クイックスタート] セクションに直接進んでください。
バックグラウンドでエミュレーターを起動します。
テーブルを作成します
テーブルに値を入力します
クイックスタート
まず、読み取りたいクライアントとテーブルを作成する必要があります。
素晴らしい!これで、テーブルからデータを読み取る Tensorflow データセットを作成できます。
これを行うには、読み取りたいデータのタイプ、 column_family:column_name
の形式の列名のリスト、および読み取りたい row_set を指定する必要があります。
row_set を作成するには、 tensorflow.bigtable.row_set
と tensorflow.bigtable.row_range
モジュールで提供されているユーティリティメソッドを使用します。ここで、すべての行を含む row_set が作成されます。
その bigtable は、値が配置された順序ではなく、字句順で値を読み取ることに注意してください。行にはランダムな行キーが与えられているため、シャッフルされます。
これだけです!おめでとうございます!
並列読み取り
データセットは、Bigtable からの並列読み取りをサポートしています。これを行うには、 parallel_read_rows
メソッドを使用し、引数として num_parallel_calls
を指定します。このメソッドが呼び出されると、作業は最初に SampleRowKeys に基づいてワーカー間で分割されます。
注: 並行して読み取る場合、行は特定の順序で読み取られないことに注意してください。
特定の row_keys を読み取る
Bigtable からデータを読み取るには、行のセット、範囲、またはそれらの組み合わせを指定できます。
read_rows
メソッドは、RowSet を提供することを想定しています。次のように、特定の行キーまたは RowRanges から RowSet を作成できます。
このような row_set には、一連の行 [row000, row300)
と行 row585 および row832 が含まれます。
無限の範囲、空の範囲、またはプレフィックスから row_set を作成することもできます。 row_range と交差させることもできます。
値のバージョンを指定する
Bigtable を使用すると、タイムスタンプが異なる 1 つのセルに多くの値を保持できます。バージョンフィルターを使用して、選択するバージョンを指定できます。ただし、tensorflow.bigtable コネクタを使用して取得できるのは 2 次元ベクトルのみであるため、 latest
フィルターは常にユーザー指定のバージョンフィルターに追加されます。つまり、1 つのセルに複数の値が提供されたフィルターを通過する場合は、新しい方の値が使用されます。
最新の値を渡す latest
フィルターを使用するか、時間範囲を指定することができます。時間範囲は、Python の日時オブジェクトとして、またはエポックからの秒またはマイクロ秒を表す数値として指定できます。