LoginSignup
2
1

More than 1 year has passed since last update.

PowerBIからRedshift Serverlessに接続する

Last updated at Posted at 2023-02-15

はじめに

PowerBIからインターネット経由でRedshiftに接続してみます。

なかなか良い手順がネットで拾えなかったのとRedshiftのパスワードをSHA256でsalt付きで生成する方法も見つからなかったので合わせてメモしておきます。

ちなみにRedshift Serverlessと書きましたがRedshift Spectrum(つまりS3へのクエリも)への接続も確認できました。

Redshiftの設定

インターネット経由でRedshiftに接続するにはパブリックアクセスを有効にする必要があります。

ネットワークとセキュリティの右側にある編集ボタンをクリックします。

image.png

「[パブリックにアクセス可能]をオンにする」にチェックします。

image.png

反映まで少し時間がかかります。私の場合は2,3分程度でした。

ユーザとグループの作成、権限付与

Redshift QueryEditorを使ってユーザ・グループを作っていきます。

まずはグループを作って権限を付けていきます。今回はXXXスキーマへのSELECT権限だけを付けました。

CREATE GROUP powerbi_group;

GRANT usage on schema XXX to group powerbi_group;

GRANT select on ALL TABLES IN SCHEMA XXX TO group powerbi_group;

次にユーザを作ってグループに所属させていくわけですが、今回はSHA256でSalt付でパスワード生成してみたいと思います。P@ssw0rdというところはお好きなパスワードに変えて実行してください。

import random
import binascii
from hashlib import sha256


def generate_salt(digit_num):
    DIGITS_AND_ALPHABETS = "0123456789abcdef"
    return "".join(random.choices(DIGITS_AND_ALPHABETS, k=digit_num))

salt = generate_salt(64)
salt_binary = binascii.unhexlify(salt)
print('sha256|',sha256(b"P@ssw0rd" + salt_binary).hexdigest(),'|',salt, sep='')

こんな文字列が出力されると思います。

sha256|7d15a616d178444ef8f7b52aec5b04dd81eed2b9ecc48ca7b68816c6765ac94c|7be5dc609f1d337eaf61187274dcfc4a82effea558bd2ffbacd384e230960e6e

この文字列を使ってCREATE USER文をつくっていきます。

CREATE USER powerbi PASSWORD 'sha256|7d15a616d178444ef8f7b52aec5b04dd81eed2b9ecc48ca7b68816c6765ac94c|7be5dc609f1d337eaf61187274dcfc4a82effea558bd2ffbacd384e230960e6e' in group powerbi_group

PowerBIから接続する

PowerBIを開き「データを取得」→「詳細」をクリックしRedshiftを選択します。

image.png

RedshiftのServer, Databaseを設定します

image.png

「ユーザー名」と「パスワード」を入力します

image.png

テーブルをクリックしてデータがプレビューできていれば権限の設定もばっちりです。

image.png

今回は扱うデータが多いのでDirect Queryを選択しました。
image.png

あとはこんな感じでいつも通りグラフを作っていきます

image.png

参考

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1