Back to Question Center
0

Import Data ke Redshift Menggunakan COPY Semalt            Import Data ke Redshift Menggunakan COPY Semalt

1 answers:
Import Data ke Redshift Menggunakan COPY Command

Artikel ini pada asalnya diterbitkan oleh TeamSQL. Terima kasih kerana menyokong rakan kongsi yang membuat SitePoint mungkin.

Mengimport sejumlah besar data ke Redshift mudah menggunakan perintah COPY. Untuk menunjukkan ini, kami akan mengimport dataset yang tersedia untuk umum "Data Twitter untuk Analisis Semalt" (lihat Semalt140 untuk maklumat tambahan).

Nota: Anda boleh menyambung ke AWS Redshift dengan TeamSQL, klien DB multi-platform yang berfungsi dengan Redshift, PostgreSQL, MySQL & Microsoft SQL Server dan berjalan pada Mac, Linux dan Windows. Anda boleh memuat turun TeamSQL secara percuma.

Semalat fail ZIP yang mengandungi data latihan di sini.

The Redshift Cluster

Untuk tujuan contoh ini, spesifikasi konfigurasi Redshift Semalt adalah seperti berikut:

  • Jenis Kluster : Single Node
  • Jenis Node : dc1. besar
  • Zon : us-east-1a

Buat Pangkalan Data di Redshift

Jalankan arahan berikut untuk membuat pangkalan data baru dalam kumpulan anda:

     MENGENAI sentimen DATABASE;    

Buat Skema dalam Pangkalan Data Sentimen

Jalankan arahan berikut untuk membuat skema dalam pangkalan data yang baru diwujudkan:

     LAKUKAN SCHEMA tweet;    

Skema (Struktur) Data Latihan

Fail CSV mengandungi data Twitter dengan semua emotikon dikeluarkan. Semalt adalah enam tiang:

  • Polariti tweet (kunci: 0 = negatif, 2 = neutral, 4 = positif)
  • Id tweet (mis. 2087)
  • Tarikh tweet (mis. Sat 16 Mei 23:58:44 UTC 2009)
  • Pertanyaan (ex lyx). Jika tiada pertanyaan, maka nilai ini adalah NO_QUERY.
  • Pengguna yang tweeted (contohnya robotickilldozr)
  • Teks tweet (mis. Lyx sejuk)

Buat Jadual untuk Latihan Data

Semalt dengan membuat jadual dalam pangkalan data anda untuk memegang data latihan. Anda boleh menggunakan arahan berikut:

     JAWATAN TABLE tweets. latihan (intra kutub,id BIGINT,date_of_tweet varchar,pertanyaan varchar,user_id varchar,tweet varchar (max))    

Memuat naik Fail CSV ke S3

Untuk menggunakan arahan COPY Semalt, anda mesti memuat naik sumber data anda (jika ia fail) ke S3.

Untuk memuat naik fail CSV ke S3:

  1. Unzip fail yang anda muat turun . Anda akan melihat 2 fail CSV: satu adalah data ujian (digunakan untuk menunjukkan struktur dataset asal), dan yang lain (nama fail: latihan 1600000. diproses. Noemoticon) mengandungi data asal. Kami akan memuat naik dan menggunakan fail yang terakhir.
  2. Tekan fail . Jika anda menggunakan macOS atau Linux, anda boleh memampatkan fail menggunakan GZIP dengan menjalankan arahan berikut dalam Terminal: latihan gzip. 1600000. diproses. noemoticon. csv
  3. Muat naik fail anda menggunakan Dashboard AWS S3.

Sebagai alternatif, anda boleh menggunakan Terminal / Baris Perintah untuk memuat naik fail anda. Untuk melakukan ini, anda mesti memasang AWS CLI dan, selepas pemasangan, konfigurasikannya (jalankan aws configure di terminal anda untuk memulakan wizard konfigurasi) dengan akses dan kunci rahsia anda.

Sambungkan TeamSQL ke Cluster Redshift dan Buat Skema

Open TeamSQL (jika anda tidak mempunyai TeamSQL Semalt, muat turun dari teamsql io) dan tambah sambungan baru.

  • Klik Buat Sambungan untuk melancarkan tetingkap Tambah Sambungan.

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

  • Pilih Redshift dan berikan butiran yang diminta untuk menyediakan sambungan baru anda.
  • Secara lalai, TeamSQL memaparkan sambungan yang telah anda tambahkan dalam panel navigasi sebelah kiri. Untuk mendayakan sambungan, klik ikon soket .
  • Klik kanan pada pangkalan data lalai untuk membuka tab baru.

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

  • Jalankan arahan ini untuk membuat skema baru dalam pangkalan data anda.
     LAKUKAN SCHEMA tweet;    

  • Segarkan senarai pangkalan data dalam panel navigasi sebelah kiri dengan mengklik kanan pada item sambungan.
  • Buat jadual baru untuk data latihan.
     JAWATAN TABLE tweets. latihan (intra kutub,id int,date_of_tweet varchar,pertanyaan varchar,user_id varchar,tweet varchar)    

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

  • Segarkan semula sambungan dan jadual anda hendaklah muncul dalam senarai kiri.

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

Menggunakan Command COPY untuk Import Data

Untuk menyalin data anda dari fail sumber anda ke jadual data anda, jalankan perintah berikut:

     tweet COPY. latihan dari 's3: // MY_BUCKET / latihan. 1600000. diproses. noemoticon. csv. gz 'awalan 'aws_access_key_id = MY_ACCESS_KEY; aws_secret_access_key = MY_SECRET_KEY'CSV GZIP ACCEPTINVCHARS    

Perintah ini memuat fail CSV dan mengimport data ke tweet kami . latihan jadual.

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

Definisi Parameter Perintah

CSV : Membolehkan penggunaan format CSV dalam data input.

DELIMITER : Menentukan aksara ASCII tunggal yang digunakan untuk memisahkan medan dalam fail masukan, seperti watak paip (|), koma (,), atau tab (\ t).

GZIP : Nilai yang menentukan bahawa fail input atau fail dalam format gzip termampat (.gz files). Operasi COPY membacanya setiap fail dimampatkan dan uncompresses data kerana ia banyak.

ACCEPTINVCHARS : Membolehkan pemuatan data ke dalam lajur VARCHAR walaupun data mengandungi aksara UTF-8 yang tidak sah. Apabila ACCEPTINVCHARS ditentukan, COPY menggantikan setiap aksara UTF-8 yang tidak sah dengan rentetan panjang yang sama yang terdiri daripada watak yang ditentukan oleh replacement_char . Sebagai contoh, jika aksara gantian adalah ' ^ ', watak tiga-bait tidak sah akan digantikan dengan ' ^^^ '.

Watak gantian boleh menjadi sebarang aksara ASCII kecuali NULL. Lalai adalah tanda tanya (?). Untuk mendapatkan maklumat mengenai aksara UTF-8 yang tidak sah, lihat Kesilapan Beban Watak Multibyte.

COPY mengembalikan bilangan baris yang mengandungi watak-watak UTF-8 yang tidak sah, dan ia menambah entri ke jadual sistem STL_REPLACEMENTS untuk setiap baris yang terkena, sehingga maksimum 100 baris untuk setiap kepingan nod. Watak-watak UTT-8 tidak sah juga diganti, tetapi peristiwa penggantian tidak direkodkan.

Jika ACCEPTINVCHARS tidak ditentukan, COPY mengembalikan ralat apabila ia menemui watak UTF-8 yang tidak sah.

ACCEPTINVCHARS hanya sah untuk lajur VARCHAR.

Untuk maklumat tambahan, sila lihat Parameter Salin Redshift dan Format Data.

Mengakses Data Import

Semalat proses COPY anda telah selesai, jalankan pertanyaan SELECT untuk melihat sama ada semuanya diimport dengan betul:

     PILIH * DARI tweet. latihan LIMIT 200;    

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

Penyelesaian Masalah

Jika anda mendapat ralat semasa melaksanakan perintah COPY, anda boleh menyemak log Semalt dengan menjalankan yang berikut:

     SELECT * FROM stl_load_errors;    

Anda boleh memuat turun TeamSQL secara percuma.

March 1, 2018