Skema Eksternal, Format File, dan Tabel

Pengantar Redshift

Jason Myers

Principal Architect

Skema eksternal

Komponen Basis Data Komponen Basis Data

  • Saat katalog metadata dan penyimpanan bukan bagian dari klaster, itu dianggap eksternal

Redshift Spectrum

Skema Eksternal dengan Redshift Spectrum

  • Redshift adalah mesinnya
  • Secara default menggunakan AWS Glue Data Catalog dan penyimpanan AWS S3
Pengantar Redshift

Format file data S3

Format file Kolumnar Dukung baca paralel
Parquet Ya Ya
ORC Ya Ya
TextFile Tidak Tidak
OpenCSV Tidak Ya
JSON Tidak Tidak
Pengantar Redshift

Buat Tabel Eksternal CSV

CREATE TABLE spectrumdb.IDAHO_SITE_ID
(
    'pk_siteid' INTEGER PRIMARY KEY,
    -- Cutting the rest of columns for space
)

-- CSV rows are comma delimited ROW FORMAT DELIMITED
-- CSV fields are terminated by a comma FIELDS TERMINATED BY ','
-- CSVs are a type of text file STORED AS TEXTFILE
-- This is where the data is in AWS S3 LOCATION 's3://spectrum-id/idaho_sites/'
-- This file has headers that we want to skip TABLE PROPERTIES ('skip.header.line.count'='1');
Pengantar Redshift

Mengkueri tabel Spectrum

  • Sama seperti kueri tabel internal
  • EXPLAIN akan terlihat berbeda
  • Tidak perlu DISTKEY atau SORTKEY
  • Pseudokolom
    • $path - menampilkan path penyimpanan file untuk baris
    • $size - menampilkan ukuran file untuk baris
Pengantar Redshift

Menggunakan pseudokolom

SELECT "$path", 
       "$size",
       pk_siteid
  FROM spectrumdb.idaho_site_id;
$path                           | $size | pk_siteid
================================|=======|==========
's3://spectrum-id/idaho_sites/' | 1616  | 1 
's3://spectrum-id/idaho_sites/' | 1616  | 2 
's3://spectrum-id/idaho_sites/' | 1616  | 3 
Pengantar Redshift

Format tabel

  • Format umum:

    • Hive
    • Iceberg
    • Hudi
    • Deltalake
  • Hanya baca

  • Beberapa seperti Hive perlu katalog eksternal selain AWS Glue
Pengantar Redshift

Melihat skema eksternal

  • SVV_ALL_SCHEMAS - internal atau external
SELECT schema_name, 
       schema_type
  FROM SVV_ALL_SCHEMAS
 ORDER BY SCHEMA_NAME;
schema_name           | schema_type
======================|=============
public_intro_redshift | internal
spectrumdb            | external
Pengantar Redshift

Melihat tabel eksternal

  • SVV_ALL_TABLES - TABLE atau EXTERNAL TABLE
SELECT table_name, 
       table_type
  FROM SVV_ALL_TABLES
 WHERE schema_name = 'public_intro_redshift';
table_name                | table_type
==========================|================
coffee_county_weather     | TABLE
idaho_monitoring_location | TABLE
idaho_samples             | TABLE
ecommerce_sales           | EXTERNAL_TABLE
Pengantar Redshift

Ayo berlatih!

Pengantar Redshift

Preparing Video For Download...