Amazon RedshiftでのSQL文の作成

Amazon RedshiftでのSQL文の作成

  • オーケストレーション
  • クラウド
6分で読めます 更新日 Jul 18, 2025

ポイント: Amazon Redshift で SQL ステートメントを書くことは、データ分析のためにクエリエディタを利用する方法を説明し、集約や結果のエクスポートなどの基本的な SQL コマンドに焦点を当てます。また、クラウドデータウェアハウスとしての Amazon Redshift の機能についても説明します。

  • SQL コマンドを実行するためにクエリエディタを使用します。
  • 大規模データセットを管理するための Amazon Redshift の機能を理解します。

このチュートリアルでは、Amazon Redshift SQL ステートメントの書き方を示します。このトピックは大きく複雑なため、基本から始めます。

このチュートリアルでは、以下のことを示します:

  • クエリエディタの使用
  • グループ化を使用して行を集約する
  • 日付を年と月に変換する
  • 結果を CSV ファイルにエクスポートする

Amazon Redshift とは?

Amazon Redshift は、SQL ベースの Amazon Web Services クラウドデータウェアハウスです。大規模なデータセットと複雑なクエリを処理するように設計されています。データウェアハウジング、ビジネスインテリジェンス、ビッグデータ分析、機械学習、および Extract-Load-Transform ワークフローに最適です。

Redshift のコンポーネントには、以下が含まれます:

  • クラスターは、接続を管理し、クエリを調整するリーダーノードを中心に編成されたコンピュータノードです。
  • スライスは、効率的で大規模な並列処理のためにメモリ、処理、およびディスクスペースリソースを割り当てるノードの区分です。
  • データ配布方法論は、キー値に従ってまたはすべてのノードに均等にデータを割り当てます。
  • データのカラムストレージは、I/O(入出力)を削減し、より効率的なストレージのために垂直スタックで行われます。
  • 実行エンジンは SQL クエリをサポートし、データを取得し使用する最良の方法を計画します。
  • Spectrum は、Amazon S3 のデータを Redshift 環境に取り込むことなくクエリできる Amazon Redshift サービスです。
  • 統合データローディングは、さまざまな Amazon およびサードパーティのツールを使用します。
  • バックアップと復元は、回復力を追加します。
  • セキュリティは、アイデンティティとアクセスを制御し、パターン認識と事後の応答のためのログを提供します。
  • メンテナンスと監視は、この完全管理サービスに内在しており、あなたのチームの継続的な管理負担を軽減します。

Redshift クエリエディタ

クエリエディタを開くには、クラスター画面からエディタをクリックします。Redshift はデータベースへの接続のために認証情報を求めます。便利な機能の一つは、一時的な認証情報を生成するオプションがあるため、パスワードを覚えておく必要がないことです。Amazon AWS コンソールへのログインがあれば十分です。

以下に、停止状態から再開するクラスターがあります(Amazon の請求額を削減するため)。

ここに SQL ステートメントを書きます。一度に許可されるのは1つのステートメントのみで、Redshift は同時に1セットの結果しか表示できません。複数のステートメントを書くには、プラス(+)をクリックして追加のタブを追加します。

各クエリを実行すると、ジョブを提出して実行するのに数秒かかります。したがって、他の製品で期待されるような瞬時ではありません。

結果は下部に表示され、CSV、TXT、または HTML としてエクスポートできます。結果をチャート化することもできます。

テーブルスキーマを取得

このチュートリアルでは、天気データのテーブルを使用します。(S3 から Amazon Redshift にデータをロードするを参照してください。)これは、キプロスのパフォスに関する20年間の天気データです。4つの列があります:

  • dt_iso
  • temp
  • temp_min
  • temp_max

dt_dso の型は timestamp であり、主キーです。Redshift の素晴らしい点の一つは、日付をほぼ任意の形式でロードでき、Redshift がそれを理解することです。次に、Redshift は日付の任意の部分を印刷するための to_char() 関数を提供します。

テーブルスキーマを見るには、pg_table_def テーブルを照会します。

こちらがスキーマです。

    SELECT *

FROM pg_table_def

WHERE tablename = 'paphos'

AND schemaname = 'public';

こちらがスキーマです。

    schemaname,tablename,column,type,encoding,distkey,sortkey,notnull

public,paphos,dt_iso,timestamp without time zone,none,t,1,t

public,paphos,temp,real,none,f,0,f

public,paphos,temp_min,real,none,f,0,f

public,paphos,temp_max,real,none,f,0,f

SQL ステートメントを集約

このクエリは、5月から9月までの夏の月ごとの平均気温を計算します。注意してください:

  • to_char() は、YYYY年やMM月番号など、日付の任意の部分を抽出します。
  • 月を選択するために in() ステートメントを使用します。
  • オーダーステートメントは 1 を使用します。これは、クエリによって返された最初の列を使用することを意味します。これは、列名を入力する代わりの方法です。
  • 年と月でグループ化します。これは、年ごとの月の平均を計算するためです。
  • round() 関数を使用して、小数点以下2桁に丸めます。さもなければ、Redshift は小数点以下を多く表示します。
  • 他のデータベースと同様に、as ステートメントを使用して計算結果の列にエイリアスを付けます。そうでなければ、列には説明的な名前が付きません。ここでは、平均気温を aveTemp と呼びます。
    select round(avg(temp),2) as aveTemp,

                 to_char(dt_iso,'YYYY') as year,

                 to_char(dt_iso,'MM') as month

                 from paphos where

                 month in ('05','06','07','08','09')

                 group by year, month

                 order by 1 desc

こちらが結果です。これは、20年間のデータの最も暑い月を示しています。表示を短くするためにカットオフしています。例えば、20年間の中で、2010年8月が最も暑い月でした。

年ごとにグループ化し、日々の天気観測を元に年内の月を求めました。

avetemp 年 月
84.11 2010 8
83.12 2012 8
83.05 2012 7
82.9 2015 8
82.39 2017 7
82.04 2014 8
81.85 2007 7
81.73 2020 9
81.72 2013 8
81.72 2008 8
81.62 2000 7
81.61 2009 8
81.49 2017 8

結果を右側のボタンを使用して CSV 形式にエクスポートします。その後、スプレッドシートにインポートして、結果をより簡単に見ることができるようにし、色をつけたりします。

こちらが最も暑い年です。集約から月を削除することで得られます。

    select round(avg(temp),2) as aveTemp,

                 to_char(dt_iso,'YYYY') as year 

                                    from paphos 

                                                group by year

                 order by 1 desc

追加リソース

このようなチュートリアルの他のリソースを探すには、以下を探ってください:

これらの投稿は私自身の意見であり、必ずしもBMCの立場、戦略、または意見を代表するものではありません。

オーケストレーションの関連記事

The Briefを購読する

このオファーに登録することで、あなたはBMCのプライバシーポリシーを読み、同意したことを確認します。

ありがとう

あなたはThe Briefに登録されました
The Briefはメインフレームとエンタープライズオーケストレーション—BMC AMIとControl-M—および、両者に関するアナリストの研究、顧客の展開、イベントをカバーしています。