Amazon Redshift – schnelles leeren einer Tabelle

Eine  Tabelle kann man ja prinzipiell auf 3 Arten leeren …

  1. mit Drop Table … wobei dann die ganze Tabelle weg ist … Wenn man aber wieder Daten schnell importieren möchte ohne ein Analyse Compression ist es besser, wenn die Tabelle mit den spezifischen Einstellungen noch da ist.
  2. mit delete from table: Beim Leeren über delete wird ein table scan durchgeführt, davon ist bei sehr großen Tabellen abzuraten
  3. mit truncate table: Idealerweise sollte man Tabellen immer über truncate leeren, da hierbei auf einen table scan verzichtet wird und somit die Tabelle schnell geleert wird.

Amazon Redshift – Abbrechen einer SQL-Abfrage

Amazon Redshift SQL-Query’s gehen oft über sehr große Datenmengen … da kann es schon mal vorkommen, dass man einen Join falsch setzt und dadurch ein irre großes Resultset bekommt das dann ewig dauert … glücklicherweise kann man SQL-Abfragen bei Redshift wie folgt abbrechen:

1. Heraus finden der Process-ID der entsprechenden SQL-Query

select pid, trim(user_name), starttime, substring(query,1,20) from stv_recents where status=’Running‘;

pid    | btrim      | starttime                  | substring 
-------+------------+----------------------------+---------------------- 
18764  | masteruser | 2013-03-28 18:39:49.355918 | select sellerid, fir 
(1 row)

2. Abbrechen der Abfrage über Cancel

cancel 18764;

Aktuelle Limits von Amazon Redshift

Hier mal die aktuellen Limits von Amazon Redshift im Überblick:

  • max. 64 Datenbanken im Cluster
  • max. Anzahl Zeichen pro Datenbank-Name = 64, mit nur kleinen Buchstaben
  • max. 9900 Tabellen im Cluster
  • max. Anzahl Zeichen pro Tabellen-Name = 127
  • max. 1600 Spalten pro Tabelle
  • max. 400 Sortkey-Spalten pro Tabelle im Rahmen eines Multi-Column Sortkeys
  • max. Anzahl Schema pro Datenbank …? You can create 57 schemas (+ 7 system schemas we already have in there)…. oder mehr? … siehe hier: https://forums.aws.amazon.com/thread.jspa?messageID=466560&#466560
  • By default, you can have a maximum of 16 XL nodes per data warehouse cluster or 16 8XL nodes per data warehouse cluster. You can request a higher limit via this Node Limit Increase form.

Amazon RedShift Zugriff via JDBC mit SQLWorkbench

Amazon Redshift basiert auf einem stark modifizierten PostgreSQL 8.0.2 Kernel so dass man mit dem offiziellem PostgreSQL JDBC oder ODBC Treiber arbeiten kann, allerdings sollten nur die Treiber der 8.x PostgreSQL Versionen und nicht die der 9.x PostgreSQL Versionen verwendet werden.

 

 

Damit können nun alle Tools die mit ODBC oder JDBC arbeiten direkt auf die RedShift-Datenbank konnektieren.

Sehr gut für einen ersten Test und Einstieg eignet sich SQLWorkbench (http://www.sql-workbench.net/).