あなたのアマゾンredshiftデータにアクセスして、質問する方法



概要
この投稿では、Amazonを使用してAmazon Redshiftデータにアクセスしたり問い合わせたりする方法を参照してください.次の手順に従います.
  • RedShift倉庫インスタンスへの接続とデータをPythonで読み込む
  • データのクエリと解析結果の格納
  • RedshiftはPostgreSQLなどの他のデータベースと互換性があるので、Pythonpsycopg アクセスライブラリにアクセスし、クエリデータからRedshift.次に、クエリ結果をpandasのdata afameとして、SQLAlchemy 図書館
    この演習の目的は、あなたのredshiftデータから有用な洞察を得るためにPythonで利用可能な統計手法を活用することです.あなたが得ることができる洞察のいくつかは、あなたの顧客の製品行動のより良い理解を含みます.

    We also have a dedicated blog for manipulating and querying your Google BigQuery data using Python and R, in case you are interested.

    For this post, we assume that you have the data already loaded in your Redshift instance. In case you haven't, the best way to load your data to Redshift is to leverage Customer Data Infrastructure tools such as RudderStack. They allow you to collect your data across all the customer touch-points, and load them securely into Redshift -- or any other warehouse of your choice, with minimal effort.



    Pythonを使用して赤のデータに接続する
    Pythonを使用してredshiftデータにアクセスするには、まずインスタンスに接続する必要があります.前述のように、redshiftはPostgreSQLなどの他のデータベースソリューションと互換性があります.したがって、PostgreSQLデータをアクセスするために使用するツールを安全に使用することができます.
    を使用します.psycopg 注意してください.それは、そうするためにあなたの選択の他のライブラリと実験を自由に感じてください.
    import psycopg2
    con=psycopg2.connect(dbname= 'dbname', host='host',
    port= 'port', user= 'user', password= 'pwd')
    
    パイプラインの一部として上記のコードを使用し、エラーを処理する関数でラップすることを強く推奨します.必要なパラメータは、任意のデータベースに接続するための典型的です.
  • データベース名
  • ホスト名
  • ポート
  • ユーザ名
  • パスワード

  • Psycopgを使用して赤いシフトデータにクエリを実行する
    データベース接続が設定されると、redshiftデータの問い合わせを開始できます.SQLクエリを使用してデータの量を絞り込みます.
    こうするpsycopg , 次の手順を実行します.
  • データベース接続からカーソルを取得します.
  • cur = con.cursor()
    
  • テーブルからクエリを実行します.
  • cur.execute("SELECT * FROM `table`;")
    
  • O NCEクエリが正常に実行されると、psycopg そして、データベースからデータを取得する.更なるデータ分析のために、完全なデータセットを得るのは意味があります.したがって、次のコマンドを実行します.
  • cur.fetchall()
    
  • 最後に、カーソルと接続を閉じます.
  • cur.close()
    conn.close()
    
    ここで最も重要なビットは、データセットからレコードを取得するために実行するSQLクエリです.また、データの前処理の大きなチャンクを行うためにSQLを使用することができますし、データ解析をはるかに簡単にする適切なデータセットを設定します.
    たとえば、データベース内の複数のテーブルに結合することもできますし、必要に応じて新しいフィールドを作成するには、RedShiftサポートされている集約関数を使用できます.

    データ解析のための問い合わせデータの使用
    我々が正常に我々のredshiftデータを照会して、我々の分析のためにそれを取り込んだので、我々は我々が我々の処分で持っているデータ分析ツールを使ってそれに取り組む時間です.
    Pythonに関しては、データ解析のための最も人気のあるライブラリはNumPy ○○pandas :
  • NumPy は、主に数値計算のために使われるPythonライブラリです.
  • pandas は、Pythonで広く使われているデータ解析ライブラリです.これは、テーブルのような構造で動作するためのDataFrameと呼ばれる高性能データ構造を提供します.
  • どのような分析を行うにしたい場合は、これらの2つのライブラリのいずれかを使用して初期データを表現する必要があります.

    Numpyへのデータの読み込み
    それはあなたのデータをNumPy 角配列.私たちは新しいNumPy そして、クエリ結果を含むカーソルをパラメータとして渡します.
    次のコードをPythonコンソールで実行します.
    import numpy as np
    data = np.array(cur.fetchall())
    

    データをパンダにロードする
    の代わりにパンダを使用することもできますNumPy あなたのデータ分析のための.しかし、これに関しては、ステップが少し異なる.
    次のコードスニペットを参照してください.
    from sqlalchemy import create_engine
    import pandas as pd
    engine = create_engine('postgresql://scott:tiger@hredshift_host:<port_no>/mydatabase')
    data_frame = pd.read_sql('SELECT * FROM `table`;', engine
    
    上のコードで見られるように、私たちはSQLAlchemy そして、接続資格情報を使用してredshiftインスタンスに接続します.それから、我々はread_sql method を参照してください.最後に、我々は直接データグラムに結果を読み込むことができますし、我々の分析のためにそれを使用します.

    Rを使用している赤方偏移データにアクセスして、質問する方法?
    あなたの赤方偏移データをロードして、質問することは、Rで等しく簡単ですRPostgreSQL パッケージは、RedShiftインスタンスに接続し、クエリを実行します.
    rstudioでパッケージをインストールする方法を示します
    install.packages("RPostgreSQL")
    require("RPostgreSQL")
    
    
    次の手順は、redshiftインスタンスに接続する方法です.
    drv <- dbDriver("PostgreSQL")
    con <-dbConnect(drv,dbname="dbname",host="host",port=1234,
                    user="user",password="password")
    dbDisconnect(con)
    
    

    Note: It is important to close the connection once you are done with pulling the data out of the database.


    データの問い合わせとRデータフレームへのロードはとても簡単です.
    df_postgres <- dbGetQuery(con, "SELECT * from `table`")
    

    概要
    任意のデータ分析プロセスの最初のステップは、正しくデータを調達し、簡単に読み取り可能な形式でそれを格納することです.この記事では、Python/Rを使用してredshiftデータを読み込み、さらに詳細な分析に役立つデータを取得しました.
    このブログのAmazon Redshiftに注目しましたが、PostgreSQLのような他のデータベースにも適用できます.このポストでは、Psycopgを使用してredshiftインスタンスに接続しました.同じPythonコネクタをPostgreSQLインスタンスにも接続できます.
    CSVファイルのような他の形式とは対照的にデータベース内のデータを格納する利点の一つは、SQLを使用してクエリを実行する機能です.複雑なSQLクエリを実行することができますあなたのデータを効果的に処理し、あなたの時間と労力の詳細なデータ解析のための統計モデルを構築するための多くを保存します.

    無料でサインアップしてデータを送信する
    テストストリーム、ELT、および逆のETLパイプラインをテストします.5分未満でデータを送信するには、当社のHTTPソースを使用したり、お客様のウェブサイトやアプリケーションで私たちの12 SDKのいずれかをインストールします.Get Started