u++の備忘録

redashのpythonデータソースでカラム名を指定する時に使える型

BIツールのredashでpythonデータソースを使う際、カラム名を指定するために以下の関数を用いる。

add_result_column(result, column_name, friendly_name, column_type)

redash.io

ここで4つ目の引数 "column_type" を指定した際に「この型はサポートしていません」というエラーが出た。GitHubソースコードを追って使える型を確認したので、過程を含め記録しておく。

結論:使える型

  • 'integer'
  • 'float'
  • 'boolean'
  • 'string'
  • 'datetime'
  • 'date'

過程

関数 "add_result_column()" は「redash/redash/query_runner/python.py」内で定義されている。サポートしていない型を指定した場合には、下記でエラーが投げられる。

        if column_type not in SUPPORTED_COLUMN_TYPES:
            raise Exception("'{0}' is not a supported column type".format(column_type))

github.com

"SUPPORTED_COLUMN_TYPES" は「redash/redash/query_runner/__init__.py」内で定義されている。文字列の完全一致が条件なので、例えば 'integer' を 'int' と指定するとエラーになる。

# Valid types of columns returned in results:
TYPE_INTEGER = 'integer'
TYPE_FLOAT = 'float'
TYPE_BOOLEAN = 'boolean'
TYPE_STRING = 'string'
TYPE_DATETIME = 'datetime'
TYPE_DATE = 'date'

SUPPORTED_COLUMN_TYPES = set([
    TYPE_INTEGER,
    TYPE_FLOAT,
    TYPE_BOOLEAN,
    TYPE_STRING,
    TYPE_DATETIME,
    TYPE_DATE
])

github.com