Back to Question Center
0

COPY Semaltを使用してレッドシフトにデータをインポートする            COPY Semaltを使用してレッドシフトにデータをインポートする

1 answers:
COPYコマンドによるデータの赤方偏移へのインポート

この記事はもともとTeamSQLによって出版されました。 SitePointを可能にするパートナーをサポートしていただきありがとうございます。

大量のデータをRedshiftにインポートするには、COPYコマンドを使用するのが簡単です。これを実証するために、公開されているデータセット「Semalt AnalysisのためのTwitterデータ」(Semalt140参照)をインポートします。

:Redshift、PostgreSQL、MySQL&Microsoft SQL Serverで動作し、Mac、Linux、Windows上で動作するマルチプラットフォームのDBクライアントであるTeamSQLを使用してAWS Redshiftに接続できます。あなたは無料でTeamSQLをダウンロードすることができます。

ここでトレーニングデータを含むZIPファイルを読みます。

赤方偏移クラスタ

この例では、Redshift Semaltの設定仕様は次のとおりです。

  • クラスタタイプ :単一ノード
  • ノードタイプ :dc1。大
  • ゾーン :us-east-1a

Redshiftでデータベースを作成する

次のコマンドを実行して、クラスタに新しいデータベースを作成します。

   データベースの作成。   

感情データベースにスキーマを作成する

次のコマンドを実行して、新しく作成したデータベース内にスキームを作成します。

   スキーマのつぶやきを作成する;   

トレーニングデータ

のスキーマ(構造)

CSVファイルには、すべての顔文字が削除されたTwitterデータが含まれています。セマルトは6列です:

  • ツイートの極性(キー:0 =負、2 =中立、4 =正)
  • ツイートのイド(例2087)
  • ツイートの日付(例:土曜日5月16日23:58:44 UTC 2009)
  • 照会(例:lyx)。照会がない場合、この値はNO_QUERYです。
  • ツイートしたユーザー(例:robotickilldozr)
  • ツイートのテキスト(例えばLyxはクールです)

トレーニングデータ用のテーブルを作成する

データベースにトレーニングデータを保持するためのテーブルを作成することによって、真剣に考えてください。次のコマンドを使用できます:

   CREATE TABLEつぶやき。トレーニング(極性int、id BIGINT、date_of_tweet varchar、クエリvarchar、user_id varchar、ツイートvarchar(最大))   

S3へのCSVファイルのアップロード

Semalt COPYコマンドを使用するには、データソース(ファイルの場合)をS3にアップロードする必要があります。

CSVファイルをS3にアップロードするには:

  1. ダウンロードしたファイルを解凍します 。 1つはテストデータ(元のデータセットの構造を表示するために使用)、もう1つ(ファイル名:トレーニング。1600000.processed noemoticon)には元のデータが含まれています。後者のファイルをアップロードして使用します。
  2. ファイルを圧縮する 。 macOSまたはLinuxを使用している場合は、端末: gzip trainingで次のコマンドを実行して、GZIPを使用してファイルを圧縮できます。処理された1600000。 noemoticon。 csv
  3. AWS S3ダッシュボードを使用してファイルをアップロードします。

または、ターミナル/コマンドラインを使用してファイルをアップロードすることもできます。これを行うには、AWS CLIをインストールし、インストール後に、アクセスと秘密鍵を使用して設定します(端末でaws configure を実行して設定ウィザードを開始します)。

TeamSQLをRedshiftクラスタに接続し、スキーマを作成する

TeamSQLを開きます(TeamSQL Semaltを持っていない場合は、teamsql。ioからダウンロードしてください)。新しい接続を追加してください。

  • をクリックして接続を作成し、「接続の追加」ウィンドウを起動します。

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

  • Redshiftを選択し、要求された詳細を入力して新しい接続を設定します.
  • デフォルトでは、TeamSQLは追加した接続を左側のナビゲーションパネルに表示します。接続を有効にするには、 ソケット アイコンをクリックします。
  • デフォルトのデータベースを右クリックして、新しいタブを開きます。

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

  • データベースに新しいスキーマを作成するには、このコマンドを実行します。
   スキーマのつぶやきを作成する;   

  • 接続項目を右クリックして、左側のナビゲーションパネルでデータベースリストを更新します。
  • トレーニングデータ用の新しいテーブルを作成します。
   CREATE TABLEつぶやき。トレーニング(極性int、id int、date_of_tweet varchar、クエリvarchar、user_id varchar、ツイートvarchar)   

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

  • 接続をリフレッシュすると、テーブルが左側のリストに表示されます。

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

COPYコマンドを使用したデータのインポート

ソースファイルからデータテーブルにデータをコピーするには、次のコマンドを実行します。

   つぶやきをコピーします。 's3:// MY_BUCKET / trainingからのトレーニング。処理された1600000。 noemoticon。 csv。 gz '資格情報 'aws_access_key_id = MY_ACCESS_KEY; aws_secret_access_key = MY_SECRET_KEY'CSV GZIP ACCEPTINVCHARS   

このコマンドは、CSVファイルを読み込み、データを つぶやきにインポートします。トレーニング テーブル。

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

コマンドパラメータの定義

CSV :入力データにCSV形式を使用できるようにします。

DELIMITER :パイプ文字(|)、カンマ(、)、タブ(\ t)など、入力ファイルのフィールドを区切るために使用される単一のASCII文字を指定します。

GZIP :入力ファイルが圧縮されたgzip形式(.gzファイル)であることを指定する値。 COPY操作は、圧縮された各ファイルを読み込み、読み込まれたデータの圧縮を解除します。

ACCEPTINVCHARS :データに無効なUTF-8文字が含まれていても、VARCHAR列へのデータのロードを有効にします。 ACCEPTINVCHARSが指定されると、COPYは無効な各UTF-8文字を、 replacement_char で指定された文字からなる等しい長さの文字列に置き換えます。たとえば、置換文字が ' ^ 'の場合、無効な3バイト文字は ' ^^^ 'に置き換えられます。

置換文字は、NULLを除く任意のASCII文字にすることができます。デフォルトは疑問符(?)です。無効なUTF-8文字については、「マルチバイト文字ロードエラー」を参照してください。

COPYは、無効なUTF-8文字を含む行数を返し、影響を受ける各行のSTL_REPLACEMENTSシステム・テーブルに、ノード・スライスごとに最大100行までのエントリを追加します。 Semaltの無効なUTF-8文字も置換されますが、置換イベントは記録されません。

ACCEPTINVCHARSが指定されていない場合、COPYは、無効なUTF-8文字を検出するたびにエラーを返します。

ACCEPTINVCHARSは、VARCHAR列に対してのみ有効です。

追加情報については、Redshift Copy Parameters and Data Formatを参照してください。

インポートされたデータへのアクセス

あなたのCOPYプロセスが完了したら、SELECTクエリを実行して、すべてが正しくインポートされたかどうかを確認します。

   SELECT *からつぶやき。 LIMIT 200をトレーニングする。   

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

トラブルシューティング

COPYコマンドの実行中にエラーが発生した場合は、次のコマンドを実行してSemaltログを確認できます。

   SELECT * FROM stl_load_errors;   

無料でTeamSQLをダウンロードできます。

March 1, 2018