

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ステップ 4: Amazon Keyspaces でソースデータとターゲットテーブルを準備する
<a name="spark-tutorial-step4"></a>

このステップでは、サンプルデータと Amazon Keyspaces テーブルがあるソースファイルを作成します。

1. ソースファイルを作成します。次のオプションのいずれかを選択します。
   + このチュートリアルでは、`keyspaces_sample_table.csv` という名前のカンマ区切り値 (CSV) ファイルをデータ移行用のソースファイルとして使用します。提供されたサンプルファイルには、`book_awards` という名前のテーブルに関する数行のデータが含まれています。

     1. 次のアーカイブファイル [samplemigration.zip](samples/samplemigration.zip) にあるサンプル CSV ファイル (`keyspaces_sample_table.csv`) をダウンロードします。アーカイブを解凍し、`keyspaces_sample_table.csv` へのパスをメモしておきます。
   + 自分の CSV ファイルで Amazon Keyspaces にデータを書き込む場合は、データがランダム化されていることを確認してください。データベースから直接読み取られるデータやフラットファイルにエクスポートされるデータは、通常、パーティションとプライマリキーによって順序付けられます。注文したデータを Amazon Keyspaces にインポートすると、Amazon Keyspaces パーティションの小さなセグメントに書き込まれて、トラフィックが偏って分散するおそれがあります。その場合、パフォーマンスが低下し、エラー率が高くなるおそれがあります。

     対照的に、トラフィックをパーティション間でより均等に分散してデータをランダム化すれば、Amazon Keyspaces に組み込まれている負荷分散機能を活かすことができます。データのランダム化にはさまざまなツールを使用できます。オープンソースツールの [Shuf](https://en.wikipedia.org/wiki/Shuf) の使用例については、データ移行チュートリアルの「[ステップ 2: DSBulk を使用してアップロード対象のデータを準備する](dsbulk-upload-prepare-data.md)」を参照してください。以下に示した例は、`DataFrame` としてデータをシャッフルする方法です。

     ```
     import org.apache.spark.sql.functions.randval
     shuffledDF = dataframe.orderBy(rand())
     ```

1. Amazon Keyspaces でターゲットのキースペースとテーブルを作成します。

   1. を使用して Amazon Keyspaces に接続します`cqlsh-expansion`。`cqlsh-expansion` のインストール手順については、「[`cqlsh-expansion` による Amazon Keyspaces までの接続](programmatic.cqlsh.md#using_cqlsh)」を参照してください。

      次の例のサービスエンドポイントを独自の値に置き換えます。

      ```
      cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl
      ```

   1. 次の例に示すように、`catalog` という名前の新しいキースペースを作成します。

      ```
      CREATE KEYSPACE catalog WITH REPLICATION = {'class': 'SingleRegionStrategy'};
      ```

   1. 新しいキースペースが利用可能な状態になったら、次のコードを使用してターゲットテーブル `book_awards` を作成します。非同期的なリソース作成と、リソースが利用可能かどうかを確認する方法については、「[Amazon Keyspaces でキースペースの作成ステータスを確認する](keyspaces-create.md)」を参照してください。

      ```
      CREATE TABLE catalog.book_awards (
         year int,
         award text,
         rank int, 
         category text,
         book_title text,
         author text, 
         publisher text,
         PRIMARY KEY ((year, award), category, rank)
         );
      ```