Back to Question Center
0

Nhập Dữ liệu vào Redshift Sử dụng COPYT Semalt            Nhập Dữ liệu vào Redshift Sử dụng COPYT Semalt

1 answers:
Nhập dữ liệu vào Redshift Sử dụng lệnh COPY
(số 8)

Bài viết này ban đầu được xuất bản bởi TeamSQL. Cảm ơn bạn đã hỗ trợ các đối tác làm cho SitePoint có thể.

Nhập một số lượng lớn dữ liệu vào Redshift rất dễ dàng bằng cách sử dụng lệnh COPY - gemelos de camisa de oro. Để chứng minh điều này, chúng tôi sẽ nhập dữ liệu công khai có sẵn "Dữ liệu Twitter cho Phân tích Semalt" (xem Semalt140 để biết thêm thông tin).

: Bạn có thể kết nối với AWS Redshift với TeamSQL, một khách hàng DB đa nền tảng làm việc với Redshift, PostgreSQL, MySQL và Microsoft SQL Server và chạy trên Mac, Linux và Windows. Bạn có thể tải TeamSQL miễn phí.

Semalt các tập tin ZIP có chứa các dữ liệu đào tạo ở đây.

Cụm Redshift

Với mục đích của ví dụ này, các thông số cấu hình Redshift Semalt như sau:

  • Loại Cluster : Single Node
  • Loại nút : dc1. lớn
  • Khu vực : us-east-1a

Tạo cơ sở dữ liệu trong Redshift

Chạy lệnh sau đây để tạo một cơ sở dữ liệu mới trong cụm của bạn:

     TÌNH HUỐNG ĐẠT ĐỘNG;    

Tạo một Schema trong cơ sở dữ liệu Sentiment

Chạy lệnh sau để tạo một lược đồ trong cơ sở dữ liệu vừa mới tạo:

     TẠM TẠO TẠO TẠO;    

Sơ đồ (Kết cấu) Dữ liệu Tập huấn

Tệp CSV chứa dữ liệu Twitter với tất cả các biểu tượng cảm xúc bị xóa. Semalt là sáu cột:

  • Sự phân cực của tweet (key: 0 = negative, 2 = neutral, 4 = positive)
  • Id của tweet (ví dụ 2087)
  • Ngày của tweet (ví dụ: Thứ bảy ngày 16 tháng 5 23:58:44 UTC 2009)
  • Truy vấn (ví dụ lyx). Nếu không có truy vấn, thì giá trị này là NO_QUERY.
  • Người dùng đã tweet (ví dụ: robotickilldozr)
  • Các văn bản của tweet (ví dụ Lyx là mát mẻ)

Tạo một Bảng Dữ liệu Đào tạo

Semalt bằng cách tạo ra một bảng trong cơ sở dữ liệu của bạn để giữ dữ liệu huấn luyện. Bạn có thể sử dụng lệnh sau đây:

     TẠM TẠO TABLE. đào tạo (cực phân cực,id BIGINT,date_of_tweet varchar,truy vấn varchar,user_id varchar,tweet varchar (tối đa))    

Tải lên tệp tin CSV lên S3

Để sử dụng lệnh Semalt COPY, bạn phải tải lên nguồn dữ liệu của bạn (nếu đó là một tệp tin) tới S3.

Để tải tệp CSV lên S3:

  1. Giải nén tập tin đã tải về . Bạn sẽ nhìn thấy 2 tệp tin CSV: một là dữ liệu thử nghiệm (được sử dụng để hiển thị cấu trúc của tập dữ liệu ban đầu) và một tệp tin khác (tên tập tin: training, 1600000. noemoticon) chứa dữ liệu ban đầu. Chúng tôi sẽ tải lên và sử dụng tệp tin sau.
  2. Nén tập tin . Nếu bạn đang sử dụng macOS hoặc Linux, bạn có thể nén tệp tin bằng GZIP bằng cách chạy lệnh sau trong Thiết bị đầu cuối: gzip training. 1600000. xử lý. noemoticon. csv
  3. Tải lên tệp tin của bạn bằng Bảng điều khiển AWS S3.

Ngoài ra, bạn có thể sử dụng Terminal / Command Line để tải lên tệp tin của bạn. Để thực hiện việc này, bạn phải cài đặt AWS CLI và sau khi cài đặt, hãy cấu hình nó (chạy aws cấu hình trong thiết bị đầu cuối của bạn để bắt đầu trình hướng dẫn cấu hình) với khóa truy cập và bí mật của bạn.

Kết nối TeamSQL với Cluster Redshift và Tạo Schema

Mở TeamSQL (nếu bạn không có TeamSQL Semalt, tải nó từ teamsql. Io) và thêm một kết nối mới.

  • Nhấn Tạo kết nối để khởi chạy cửa sổ Thêm kết nối.

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

  • Chọn Redshift và cung cấp các chi tiết yêu cầu để thiết lập kết nối mới.
  • Theo mặc định, TeamSQL hiển thị kết nối bạn đã thêm vào bảng điều hướng bên trái. Để kích hoạt kết nối, nhấp chuột vào biểu tượng socket .
  • Nhấp chuột phải vào cơ sở dữ liệu mặc định để mở một tab mới.

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

  • Chạy lệnh này để tạo một giản đồ mới trong cơ sở dữ liệu của bạn.
     TẠM TẠO TẠO TẠO;    

  • Làm mới lại danh sách cơ sở dữ liệu trong bảng điều khiển bên tay phải bằng cách nhấp chuột phải vào mục kết nối.
  • Tạo một bảng mới cho dữ liệu huấn luyện.
     TẠM TẠO TABLE. đào tạo (cực phân cực,id int,date_of_tweet varchar,truy vấn varchar,user_id varchar,tweet varchar)    

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

  • Làm mới lại kết nối và bảng của bạn sẽ xuất hiện trong danh sách bên trái.

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

Sử dụng lệnh COPY để nhập dữ liệu

Để sao chép dữ liệu của bạn từ tệp nguồn vào bảng dữ liệu của bạn, hãy chạy lệnh sau:

     COPY tweets. đào tạo từ 's3: // MY_BUCKET / đào tạo. 1600000. xử lý. noemoticon. csv. gz 'thông tin đăng nhập 'aws_access_key_id = MY_ACCESS_KEY; aws_secret_access_key = MY_SECRET_KEY'CSV GZIP ACCEPTINVCHARS    

Lệnh này tải tệp CSV và nhập dữ liệu vào tweets của chúng tôi. đào tạo bảng.

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

Định nghĩa các tham số lệnh

CSV : Cho phép sử dụng định dạng CSV trong dữ liệu đầu vào.

DELIMITER : Chỉ định ký tự ASCII đơn được sử dụng để tách các trường trong tệp nhập, chẳng hạn như một ký tự đường ống (|), dấu phẩy (,) hoặc một tab (\ t).

GZIP : Giá trị xác định rằng tệp nhập hoặc tệp tin có định dạng nén gzip (.zip gz). Thao tác COPY đọc từng tập tin nén và giải nén dữ liệu khi nó tải.

ACCEPTINVCHARS : Cho phép tải dữ liệu vào các cột VARCHAR ngay cả khi dữ liệu chứa các ký tự UTF-8 không hợp lệ. Khi ACCEPTINVCHARS được chỉ định, COPY sẽ thay thế cho mỗi ký tự UTF-8 không hợp lệ với một chuỗi có chiều dài bằng nhau bao gồm ký tự được chỉ định bởi replacement_char . Ví dụ: nếu ký tự thay thế là ' ^ ', ký tự không hợp lệ ba byte sẽ được thay bằng ' ^^^ '.

Ký tự thay thế có thể là bất kỳ ký tự ASCII nào trừ NULL. Mặc định là một dấu chấm hỏi (?). Để biết thông tin về các ký tự UTF-8 không hợp lệ, hãy xem Lỗi tải ký tự đa luồng.

COPY trả về số hàng chứa ký tự UTF-8 không hợp lệ và thêm một mục vào bảng hệ thống STL_REPLACEMENTS cho mỗi hàng bị ảnh hưởng, tối đa 100 hàng cho mỗi miếng nút. Semalt các ký tự UTF-8 không hợp lệ cũng được thay thế, nhưng những sự kiện thay thế đó không được ghi lại.

Nếu ACCEPTINVCHARS không được chỉ định, COPY trả về một lỗi bất cứ khi nào nó gặp một ký tự UTF-8 không hợp lệ.

ACCEPTINVCHARS chỉ hợp lệ cho các cột VARCHAR.

Để biết thêm thông tin, vui lòng xem Redshift Copy Parameters và Data Format.

Truy cập dữ liệu đã nhập

Semalt quá trình COPY của bạn đã hoàn thành, chạy một truy vấn SELECT để xem tất cả mọi thứ nhập đúng cách:

     SELECT * FROM tweets. đào tạo LIMIT 200;    

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

Gỡ rối

Nếu bạn gặp lỗi khi thực hiện lệnh COPY, bạn có thể kiểm tra các bản ghi Semalt bằng cách chạy các lệnh sau:

     SELECT * FROM stl_load_errors;    

Bạn có thể tải TeamSQL miễn phí.

March 1, 2018