ブログ

Re:DashでIBM Cloud Db2 に接続してみた

初めに

オープンソースのBIツールであるRe:Dashから、IBM Cloud のDb2に接続してみた内容になっています。

Re:Dash では、標準でDb2の接続機能を持っています。
ただし、IBM CloudのDb2には、SSL接続する必要がありますが、標準でSSL接続には対応していないため、ソースコードの変更が必要になります。

※注意
投稿時の内容のため、バージョンアップ等で変わる可能性があります。また当内容を実施した結果の責任は負えませんので、ご了承ください。

ソースの変更

/redash/query_runner/db2.py の「configuration_schema」と「_get_connection」メソッドをを以下のように変更します。

    def configuration_schema(cls):
        return {
            "type": "object",
            "properties": {
                "user": {"type": "string"},
                "password": {"type": "string"},
                "host": {"type": "string", "default": "127.0.0.1"},
                "port": {"type": "number", "default": 50000},
                "dbname": {"type": "string", "title": "Database Name"},
         "sslcert": {"type": "string", "title": "SSL Certification"}
            },
            "order": ["host", "port", "user", "password", "dbname"],
            "required": ["dbname"],
            "secret": ["password"],
        }

    def _get_connection(self):
        self.connection_string = ""DATABASE={};HOSTNAME={};PORT={};PROTOCOL=TCPIP;UID={};PWD={};Security=Ssl;SSLServerCertificate={};".format(
            self.configuration["dbname"],
            self.configuration["host"],
            self.configuration["port"],
            self.configuration["user"],
            self.configuration["password"],
      self.configuration["sslcert"]
        )
        connection = ibm_db_dbi.connect(self.connection_string, "", "")

        return connection

Redashでの接続設定

ソースを変更後、Re:Dashを起動し、下記図のDb2接続設定画面で、接続に必要な情報を入力します。
「SSL Certification」には、証明書のパスを指定します。(事前にIBM Cloudから証明書のファイルをダウンロードして、Re:Dashを動かすサーバーに配置しておいてください)

image.png

pagetop