Skip to content
Last updated

Tableau Cloud Export Integration

Tableau Cloud(旧Tableau Online)とTreasure Dataを組み合わせることで、膨大なデータをインタラクティブに探索し、ビジネス組織全体でデータの発見を共有できます。

Tableau Cloudへのエクスポートのサンプルワークフローについては、Treasure Boxesを参照してください。

前提条件

  • Treasure Dataの基本的な知識
  • Tableau Cloudのライセンスとそのインストール
  • コネクタにはデータソースのパブリッシュ権限が必要です。クリエイターまたは管理者ユーザーロールが該当します。
  • Personal Access Tokenで認証する場合は、Personal Access Token名とシークレット

制限事項

  • 最大結果レコード数は250,000,000レコードです。 これを超えると、ログに次のメッセージが表示されます:Extract file records limit exceeded: 250000000.

  • Timestampの最小値は1000-01-01 00:00:00です。 これを超えると、ログに次のメッセージが表示されます:invalid date value.

  • 既存のData Sourceに大きなデータセットを追加すると、タイムアウトが発生する場合があります。 ジョブログに次のメッセージが表示されます:

    2019-04-10 19:20:41.460 +0000 [WARN] (0001:transaction): !!! Data Source Publish is timed out. This is a known issue of Tableau when you append a large extract file to existing Data Source.
    2019-04-10 19:20:41.460 +0000 [WARN] (0001:transaction): !!! Check Tableau Console for final result of the Publish.
  • ジョブは成功しますが、Tableau Consoleで最終結果を確認する必要があります(Data Sourceのレコード数で確認できます)。

  • Tableauのプロジェクト名は一意である必要があります。同じ名前のプロジェクトが複数ある場合、エクスポートは失敗します:Project Name must be unique, but found n projects with name: '<project_name>'

  • Personal Access Tokenを認証方法として選択した場合のトークンの有効期限。Personal Access Tokenは、15日間連続して使用されない場合に期限切れになります。15日ごとに頻繁に使用される場合、アクセストークンは1年後に期限切れになります。1年後、新しいトークンを作成する必要があります。期限切れのPersonal Access Tokenは、My Account Settingsページに表示されません。

  • PATで認証する場合、そのPATを使用して一度に1つのプロセスしか実行できません(ユーザー名とパスワードで認証する場合とは異なります)。最初のジョブがまだ実行中のときに同じPATを使用して2番目の認証を実行すると、最初のジョブの認証/承認が削除され、エラーが発生します。 ジョブログに次のメッセージが表示されます:

    2021-12-26 07:55:47.926 +0000 [WARN] (0001:transaction): Retrying 2/7 after 2 seconds. Message: javax.ws.rs.WebApplicationException: HTTP 401 Unauthorized
    ....
    2021-12-26 07:57:53.523 +0000 [ERROR] (main): org.embulk.util.retryhelper.RetryGiveupException: java.lang.NullPointerException

Treasure Data Integration の静的 IP アドレス

セキュリティポリシーで IP ホワイトリストが必要な場合は、接続を成功させるために Treasure Data の IP アドレスを許可リストに追加する必要があります。

リージョンごとに整理された静的 IP アドレスの完全なリストは、次のリンクにあります: https://api-docs.treasuredata.com/en/overview/ip-addresses-integrations-result-workers/

TD Consoleを使用して接続を作成する

クエリを実行する前に、Treasure Dataでデータ接続を作成および設定する必要があります。データ接続の一部として、統合にアクセスするための認証を提供します。

接続を作成するには2つの異なるプロセスがあります:

  • Tableauのユーザー名とパスワードを使用する
  • Personal Access Tokenを使用する

Tableauのユーザー名とパスワードで新しい認証を作成する

  1. TD Consoleを開きます。

  2. Integrations Hub > Catalogに移動します。

  3. Tableauを検索して選択します。

  4. Create Authenticationを選択します。

  5. 認証するために次の認証情報を入力します。

    ParameterDescription
    Hostサイトが存在するTableau Cloudホスト
    (例: 10az.online.tableau.com)
    UsernameTableau Cloudのユーザー名
    PasswordTableau Cloudのパスワード
  6. Continueを選択します。

  7. 接続の名前を入力します。

  8. Doneを選択します。

Personal Access Tokenで新しい認証を作成する

  1. Tableau Cloudサーバーにログインし、My Account Settingsに移動します。

  2. Settingsタブから Personal Access Token名を入力し、Create new tokenを選択します。

  3. Personal Access Token名/Personal Access Tokenシークレットをコピーして保存します。

TD Consoleにログインする

  1. TD Consoleを開きます。

  2. Integrations Hub > Catalogに移動します。

  3. Tableauを検索して選択します。

  4. Create Authenticationを選択します。

  5. 認証するために次の認証情報を入力します。

    ParameterDescription
    Hostサイトが存在するTableau Cloudホスト
    (例: 10az.online.tableau.com)
    Auth methodPersonal Access Token
    Personal Access Token NameTableau CloudのPersonal Access Token名
    Personal Access Token SecretTableau CloudのPersonal Access Tokenシークレット
  6. Continueを選択します。

  7. 接続の名前を入力します。Doneを選択します。

クエリを定義する

  1. Data Workbench > Queriesに移動します。
  2. New Queryを選択します。
  3. クエリを実行して結果セットを検証します。

ワンタイムクエリのCLI使用方法

JSON形式の設定(新しく、推奨)

td queryコマンドの-r / —resultオプションを使用して、Tableauの結果出力先を追加します:

Password Authentication

td query \
  -d mydb \
  -r '{
    "type": "tableau",
    "host": "company.online.tableau.com",
    "auth_method": "password",
    "username": "my_user",
    "password": "passw0rd",
    "ssl": true,
    "ssl_verify": false,
    "server_version": "online",
    "datasource": "my_ds",
    "site": "MarketingTeam",
    "project": "",
    "mode": "replace",
    "chunk_size_in_mb": 50,
    "timezone": "America/Los_Angeles"
  }' \
  'SELECT * FROM access'

Personal Access Token Authentication

td query \
  -d mydb \
  -r '{
    "type": "tableau",
    "host": "company.online.tableau.com",
    "auth_method": "pat",
    "pat_name": "pat_name",
    "pat_secret": "pat_secret",
    "ssl": true,
    "ssl_verify": false,
    "server_version": "online",
    "datasource": "my_ds",
    "site": "MarketingTeam",
    "project": "",
    "mode": "replace",
    "chunk_size_in_mb": 50,
    "timezone": "America/Los_Angeles"
  }' \
  'SELECT * FROM access'
ParameterDescription
auth_methodサポートする認証方法([password, pat]、デフォルト:password)
usernameTableau Cloudのユーザー名(auth_methodがpasswordの場合は必須)
passwordTableau Cloudのパスワード(auth_methodがpasswordの場合は必須)
pat_namePersonal Access Token名(auth_methodがpatの場合は必須)
pat_secretPersonal Access Tokenシークレット(auth_methodがpatの場合は必須)
hostサイトが存在するTableau Cloudホスト(例:10ay.online.tableau.com
datasourceターゲットのTableau DataSource名
siteサインインするサイトのURL。site属性に使用する値を決定するには、Tableau Cloudにサインインし、URLの/site/の後に表示される値を確認します。たとえば、次のURLでは、siteの値はMarketingTeamです:https://online.tableau.com/#/site/MarketingTeam/workbooks Tableau Serverの[REST APIリファレンス](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#Sign_In?TocPath=API%2520Reference
ModeReplace- 毎回Data Sourceを置き換える Append- 既存のData Sourceに追加する(デフォルトはAppend)
chunk_size_in_mb毎回アップロードされるチャンクファイルサイズ(MB)、デフォルト:100、最小:50、最大:512
read_timeout_millisレスポンスを待つ時間(最大:7200000)。ミリ秒単位の値
timezoneTimestampデータタイプからTableau DateTimeデータタイプに変換するためのタイムゾーン、デフォルト:UTC

URL形式(非推奨、Personal Access Token認証では使用不可)

次の例のように、Tableauの結果出力先をJSON形式からURL形式に変更します:

$ td query -d mydb -r 'tableau://username:password@host/datasource?mode=replace&site' 'SELECT * FROM access'

既存の出力設定をTableau Hyperに移行する

TableauはHyperと呼ばれる技術でデータエンジンを更新しました。これを活用するには、既存のTreasure Data出力設定を更新する必要があります。新しいTreasure Data設定は自動的に最新バージョンを使用します。

既存の設定をアップグレードする

  1. Queriesに移動し、スケジュールされたクエリを選択します。
  2. Query EditorでExport Resultsターゲットをクリックします。
  3. 保存されているTableau接続を選択します。
  4. Site IDの値を入力します。これはTableau Cloudで必須です。
  5. Data Source Typeに'hyper'を選択します。
  6. Doneをクリックして設定を保存します。

レガシーTableauから現在のTableauに移行する際、タイムゾーン設定を変更する必要はありません。デフォルト値(UTC)のままにすることができます。この記事のtimezoneも参照してください。

TD Consoleを使用したワンタイムクエリ

TD Consoleのクエリエディタに移動し、クエリを入力します。次のサンプルクエリは、アクセスログのサンプルデータセットを使用し、1日あたりのHTTPメソッドの分布を計算します。

HIVE

-- HiveQL
SELECT
  CAST(TD_TIME_FORMAT(time, "yyyy-MM-dd 00:00:00") AS TIMESTAMP) AS `dates`,
  method AS `Method`,
  COUNT(1) AS `Count`
FROM
  www_access
GROUP BY
  TD_TIME_FORMAT(time, "yyyy-MM-dd 00:00:00"),
  method

PRESTO

-- Presto
SELECT
  CAST(TD_TIME_FORMAT(time, 'yyyy-MM-dd 00:00:00') AS TIMESTAMP) AS "dates",
  method AS "Method",
  COUNT(1) AS "Count"
FROM
  www_access
GROUP BY
  TD_TIME_FORMAT(time, 'yyyy-MM-dd 00:00:00'),
  method

Treasure DataはDatetimeカラムをString型からTableauのTIMESTAMP型にキャストしています。

Tableauはタイムスタンプの小数秒をサポートしていません。クエリでTIMESTAMP型にキャストする前に、小数秒を削除してください(たとえば、subtr()関数を使用して)。

保存された接続を選択する

Choose Integrationダイアログが表示されます。既存のTableau Cloud接続を選択します。保存された統合がまだ設定されていない場合は、Sources Catalog内で新しい接続を作成する方法について次のステップに従ってください。

追加設定

Tableau接続を作成するか既存の接続を選択すると、次のConfigurationポップアップが表示されます。

ParametersDescriptionDefault values
Datasource NameTableau Cloud上の宛先Data Sourceの名前
Site IDサインインするサイトのURL。site属性に使用する値を決定するには、Tableau Cloudにサインインし、URLの/site/の後に表示される値を確認します。たとえば、次のURLでは、siteの値はMarketingTeamです:https://online.tableau.com/#/site/MarketingTeam/workbooks これはTableau Cloudで必須です。
Project NameTableau Cloudに移動してプロジェクトのリストを取得します。Default
Modereplace 毎回Data Sourceを置き換える、append 既存のData Sourceに追加するappend
Chunk File Size In MBアップロード前にextractファイルはチャンクに分割されます。このオプションは各チャンクのファイルサイズを定義します(最小:100、最大:1024)。200
HTTP read timeout in millisecondsレスポンスを待つ時間(最大:7200000)。ミリ秒単位の値。7200000
TimezoneTimestamp(タイムゾーン非依存)からTableau DateTime(タイムゾーン依存)に変換する際に使用するタイムゾーンID。UTC

Append Modeは、Tableauの仕様により、既存のデータソースに挿入されたデータをエクスポートする際に新しいカラムを無視します。https://onlinehelp.tableau.com/current/pro/desktop/en-us/extracting_addfromfile.html

  1. すべてのフィールドを入力したら、クエリをSubmitします。システムはクエリを実行し、Tableau Data Extractファイル(.tdeまたは.hyper)を作成し、extractファイルをTableau Cloudにアップロードします。
  2. Tableau Cloudに移動し、左上のバーのData Sourcesをクリックします。TDEファイルを含むデータソースのリストを表示できます。
  3. New Workbookを選択して、ブラウザからチャートとダッシュボードを作成します。左側のナビゲーションからディメンションとメジャーを右上のナビゲーションにドラッグアンドドロップしてグラフを作成します。Saveを選択して結果を保存します。

パスワードからPersonal Access Tokenへの認証の移行

Tableau CloudコンソールでMFAを有効にすると、ユーザー名/パスワードを使用して認証できなくなります。TableauにはPersonal Access Token認証が必要です。Password Authentication方式を使用していたすべての接続をPersonal Access Token Authentication方式に移行する必要があります。

Personal Access Token認証方式への接続変更

  1. TD consoleにログインし、Authenticationに移動します。

  2. Auth methodをPasswordからPersonal Access Tokenに変更し、トークン名/シークレットを入力します。

  3. この接続を使用して、Personal Access Token名/シークレットでTableauにデータをエクスポートできます。

保存されたクエリをPersonal Access Token認証方式に更新する

  1. 保存されたクエリのコネクタをPassword AuthenticationからPersonal Access Token Authenticationに変更します。

  2. Data Workbench > Queriesに移動します。

  3. 保存されたクエリを選択し、Cloneを選択します。クエリの新しい名前を入力します。

  4. クエリエディタから、Export Resultを選択し、ステップ1で編集した接続を選択します。エクスポート設定を再度完了します。

  5. TD consoleのクエリに移動し、古いクエリを削除します。

オプション

Tableauへの結果出力は様々なオプションをサポートしています。オプションは、CLIまたはREST API、またはサポートされている場合はConsoleでURLパラメータとして指定できます。オプションは通常互いに互換性があり、組み合わせることができます。該当する場合、デフォルトの動作が示されています。

sslオプション

sslオプションは、Tableauサーバーへの接続にSSLを使用するかどうかを決定します。'true'の場合、SSLが使用されます。このオプションが指定されていない場合、ssl=trueがデフォルトです。

tableau://username:password@host/?ssl=true

ssl_verifyオプション

ssl_verifyオプションは、SSL通信に証明書検証を要求するかどうかを決定します。'true'の場合、証明書検証が必要です。このオプションが指定されていない場合、ssl_verify=trueがデフォルトです。

tableau://username:password@host/?ssl=true&ssl_verify=true

証明書検証を無効にすることは、TableauサーバーのSSL証明書が自己署名の場合に便利です。

Timezone

  1. タイムゾーンに依存しないタイムスタンプ値(例:1548979200)から、日、時、分などを含むTableau DateTimeに変換するには、コネクタはターゲットタイムゾーンを知る必要があります。
  2. クエリにTIMESTAMPカラムが含まれている場合、またはdatetimeカラムをTIMESTAMPにキャストする場合、値はDateTimeとしてTableauサーバーにエクスポートされます。変換があるため、必要なターゲットタイムゾーンを指定する必要があります。
  3. Treasure Dataはdatetime値をUTCタイムゾーンを使用して保存します。ほとんどの場合、値を別のタイムゾーンに変換したい場合を除き、Treasure Dataからの値を保持するために、タイムゾーン設定をデフォルト(UTC)のままにします。

デフォルトのUTC以外のタイムゾーンを設定する例は次のとおりです:

CLIから

$ td query "..." -r '{ "type": "tableau", ..., "timezone": "America/Los_Angeles" }'

TD Workflowの一部として

host: "company.online.tableau.com"ssl: truessl_verify: trueusername: "my_user"password: "passw0rd"
datasource: "my_ds"site: "my_company"project: "Default" server_version: "online"
timezone: "America/Los_Angeles"

(オプション)Workflowでエクスポート結果を設定する

Treasure Workflow内で、データをエクスポートするためにデータコネクタの使用を指定できます。

詳細については、Using Workflows to Export Data with the TD Toolbeltを参照してください。

Password Authentication方式のワークフロー例

_export:
  td:
    database: tableau_db

+tableau_export_task:
  td>: export_tableau.sql
  database: ${td.database}
  result_connection: new_created_tableau_auth
  result_settings:
    datasource: "datasource"
    site: "site"
    project: "project"
    targetType: "hyper"
    chunkSizeInMb: 100
    timezone: "UTC"

Personal Access Token Authentication方式のワークフロー例

_export:
  td:
    database: tableau_db

+tableau_export_task:
  td>: export_tableau.sql
  database: ${td.database}
  result_connection: new_created_tableau_auth
  result_settings:
    datasource: "datasource"
    site: "site"
    project: "project"
    targetType: "hyper"
    chunkSizeInMb: 100
    timezone: "UTC"