Tableau

【手順解説】MacでRedshiftに接続できない時の原因と対処法【Tableau経由】

はじめに

今回は、私(ヨナハ)が実際に業務でトラブったことをシェアしたいと思います。
状況としては、
・リモートデスクトップ(Linux)でRedshiftに接続することはできる。
・Macで「RedshiftをデータソースとするTableauファイル」が開けない。
という感じです。
会社でTableau Server / Onlineを利用するMacユーザーであれば、今後起こり得るトラブルなのでぜひ参考にしてみて下さい。

実行手順およびその結果

①Macでターミナルを開いて以下のコマンドを実行(psqlインストール)
$ brew install postgresql

※既にPostgreSQL(ポストグレエスキューエル)をインストールしている方はこの手順をスキップして下さい。
※この段階でエラーが出る方はHomebrewをインストールして下さい(参考
<解説>
PostgreSQLは通称ポスグレと呼ばれており、SQLを用いたデータベースの一つです。
また、HomebrewはMacでプログラムをインストールしたりするシステムです(雑

②psqlを用いて接続にトライ
$ psql -h (会社によって違う).redshift.amazonaws.com -d (データベース名) -U (接続ユーザー名) -p (ポート名)

<結果>
psql: error: could not connect to server: could not connect to server: Operation timed out
Is the server running on host “(会社によって違う).redshift.amazonaws.com” (接続先IPアドレス) and accepting
TCP/IP connections on port (接続先ポート)?
<解説>
psqlのオプションは以下の通りです。
-h (ホスト名):実行するサーバーのホスト名を指定。
-d (データベース名):接続するデータベースの名前を指定。
-U (接続ユーザー名):指定したユーザー名でデータベースへ接続。
-p (ポート名):サーバーが接続監視を行うポート名を指定。通常4桁。

③telnetでトライ
$ telnet (ホスト名) (ポート名)

<結果>
Trying (接続先IPアドレス)…
telnet: connect to address (接続先IPアドレス): Operation timed out
telnet: Unable to connect to remote host
<解説>
ホストに接続できないとのことなので、どうやら私が以前ホストを書き換えていた可能性が浮上した(全く記憶はないが
応答したIPアドレスがパブリックのものだったので、ドメインの解決に問題があると分かった。

④アドレスに直で繋いでみる
$ psql -h (②とは異なるホスト名) -d (データベース名) -U (接続ユーザー名) -p (ポート名)
→パスワードの要求が出たら入力。

<結果>
Password for user (接続ユーザー名):
psql (サーバー情報とか)
SSL connection (protocol、cipher、bitsの情報とかが色々)
Type “help” for help.
(データベース名)=> psql -h (会社によって違う).redshift.amazonaws.com -d (データベース名) -U (接続ユーザー名) -p (ポート名)
(データベース名)->
<解説>
②と異なり、大元のホスト名を指定して直で接続した。

⑤Redshiftのドメインがどこで解決されているかを調査
$ nslookup -h (会社によって違う).redshift.amazonaws.com

<結果>
Server: (サーバー名)
Address: (IPアドレス情報)
Non-authoritative answer:
(会社によって違う).redshift.amazonaws.com canonical name = (会社によって違う).compute.amazonaws.com.
Name: (会社によって違う).compute.amazonaws.com
<解説>
nslookupを用いてDNS情報を取得した。
→DNSとは「ドメイン(人間がわかりやすい住所)」と「IPアドレス(コンピュータで管理する住所)」の対応表のこと。
調べた結果、Redshiftのドメインがローカルで解決されていることを知った。
→IPアドレスがローカルのものだった。
ここで、hostsを書き換えている説が濃厚となった。

⑥hostsを確認
MacのFinderの検索窓で「hosts」と検索すれば、「hosts」というファイルが見つかるのでそれを開く

<結果>
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
(hosts名) (会社によって違う).compute.amazonaws.com
~
~
~
<解説>
hostsが正しくないことが分かった。
本来であれば最後の行が(hosts名)だけになるはずだからである。

⑦hostsを書き換えてDNSのキャッシュをクリアしpsqlに再接続
hostsの編集:ターミナル版とテキストエディット版
DNSのキャッシュをクリア:$ sudo killall -HUP mDNSResponder
psqlに再接続:$ psql -h (会社によって違う).redshift.amazonaws.com -d (データベース名) -U (接続ユーザー名) -p (ポート名)
(psqlは②と同じ)

<結果>
Last login: (日付と時間)
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
$ sudo killall -HUP mDNSResponder
Password:
$ psql h (会社によって違う).redshift.amazonaws.com -d (データベース名) -U (接続ユーザー名) -p (ポート名)
Password for user exture:
psql (12.2, server 8.0.2)
SSL connection (protocol、cipher、bitsの情報とかが色々)
Type “help” for help.
(データベース名)=>
<解説>
成功。

まとめ

今回の原因は「Redshiftの名前解決をVPNで行っていた」ということでした。
私と同じミスをした方の参考になれば幸いです。
最後まで目を通していただきありがとうございました。

コラム:Web解析から顧客体験分析(CXA)に前のページ

無料のWindows10仮想マシンをEdge/IE11検証用途で使う次のページ

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. Tableau

    Tableau : IF文の「集計」「非集計」の混在を解決

    こんにちは、エクスチュア渡部です。これから定期的にTableauやGo…

  2. Office365

    エクセルで「テーブル」を使うメリット① 「BIツールで使いやすい」

    データを扱ういろんな環境、ツールがありますが、今も現場で出番の多いエ…

  3. Tableau

    【TC19ブログ】Tableau Conference 2019 2日目レポート

    こんにちは!エクスチュア大崎です。昨日11…

  4. Tableau

    ツールヒントの中にVizを埋め込む理由・方法

    ツールヒントの中にVizを埋め込むとはこちらがツールヒントの中に埋め…

  5. Google BigQuery

    BigQueryのユーザー定義関数(UDF)をTableauで使う

    こんにちは、エクスチュアの渡部です。今回はTableauでstan…

  6. Tableau

    Tableau Viz紹介 : 10.4新機能を使ってダッシュボードを作ってみた

    ----・17/10/10(火)追記本ブログで紹介しているVi…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


カテゴリ
最近の記事
  1. 【dbts25】Snowflake×PostgreSQLのニ…
  2. TROCCO dbt連携編
  3. KARTEの「フレックスエディタ(β)」登場!ノーコードでこ…
  4. dbt Projects on Snowflake使ってみた…
  5. Cortex Analystを使ってみた
  1. IT用語集

    クローリング(Crawling)って何?
  2. Tableau

    TableauでTreasure Data上のデータへ接続する方法(2019/1…
  3. Adobe Analytics

    Adobe AnalyticsからDWHレポートをGoogle Cloud St…
  4. IT用語集

    インベントリ(Inventory)って何?
  5. ヒートマップ

    ユーザビリティの検証で気を付けたいこと、やってはいけないこと③
PAGE TOP