Skip to content
Last updated

Zuora Import Integration

Zuoraのデータソースオブジェクト(アカウントや請求書など)をTreasure Dataにインポートできます。インポートのモードは以下の通りです:

  • base
  • fetch-related

fetch-relatedインポートでは、事前に結合されたすべてのオブジェクトを含むFullオブジェクトのインポートを指定できます。

前提条件

  • Treasure Dataの基本知識
  • Zuoraの基本知識

制限事項

  • Zuora Import IntegrationはZuora SOAP APIを内部的に使用しています。このAPIはZuora USデータセンターのお客様が利用可能です。
  • Zuora EUデータセンターのお客様でこの統合機能を利用したい場合は、カスタマーサクセス担当者にお問い合わせください。

TD Consoleを使用する

新しい接続を作成する

  1. Integrations Hub > Catalogに移動し、Zuoraを検索します。

  2. Zuoraを選択します。

  3. Zuoraのログイン情報を入力し、Nextを選択して接続名を指定します:

新しい転送を作成する

接続を作成すると、自動的にAuthentications(認証)ページに移動します。作成した接続を探してNew Transferを選択します。

情報の詳細を入力し、Nextを選択します。

Fetch related objects: Zuoraのほとんどのデータソースは関連するビジネスオブジェクトを提供しており、ネストされたクエリを構築する必要がなくなり、パフォーマンスが向上します。関連するビジネスオブジェクトデータが必要な場合は、チェックボックスにチェックを入れてクエリしたいデータソースを選択します。

API Version (default v85): Zuora SOAP APIバージョン。v85以降をサポートしています。

Duration to import: このオプションでは、インポートの'start_date'に基づいて'end_date'を選択できます。

  • Start dateが02/07/2017, 12:00 AMに設定され、Number of Unitが1 DAYの場合、データ転送には02/08/2017, 12:00 AMまでのすべてのデータが含まれます。

この例では、'end_date'は次のように計算されます:

'start_date' + 'number_of_unit' = 'end_date'
02/07/2017, 12:00AM + 1 DAY = 02/08/2017, 12:00AM
  • 転送がスケジュールされている場合、'start_date'は前回のインポート以降の新しい'end_date'に基づいて常に変化します(前述のように計算されます)。
  • incrementalが選択されていない場合、インポートは'start_date'から現在までとなります。
  • ユーザーのタイムゾーンが保持されます。

'start_date'を変更したい場合は、転送を再作成することを強くお勧めします。既存の転送を編集しても'start_date'には影響しません。

データをプレビューします。何か変更したい場合はAdvanced Settingsを選択し、そうでなければNextを選択します。

データを転送するデータベースとテーブルを選択します:

データ転送のスケジュールを指定し、Start Transferをクリックします:

My Input Transfersタブの下に、進行中の新しいデータ転送が表示され、対応するジョブがJobsセクションに表示されます。

Command Lineを使用する

'td' command v0.11.9以降をインストールする

最新のTD Toolbeltをインストールできます。

$ td --version
0.15.0

設定ファイルを作成する

Zuoraアカウントのアクセス情報を使用して、次の例のように設定ファイル(例: load.yml)を準備します。

in:
  type: zuora
  username: xxxxxxxx
  password: xxxxxxxx
  base_object: Account #(required if fetch_related = false, see Appendix B)
  data_source: Account #(required if fetch_related = true, see Appendix C)
  fetch_related: true #(optional, default: false)
  from_timestamp: 12-05-2016T11:00:00.000Z
  incremental: true #(optional, default: true)
  duration: { unit: DAY, num: 1 } #(required if `incremental: true`)
out:
  mode: replace

この例では、Zuora Accountデータソースをダンプしています:

  • username と password: ログイン情報

  • describe_api_verion: Zuora Describe APIバージョン。Zuora Describe APIを参照してください

  • base_object: インポートしたいZuora SOAP(Base)オブジェクトの名前。fetch_related: falseの場合は必須です

    • 利用可能なbaseオブジェクトのリストについては、Appendixを参照してください。
  • data_source: インポートしたいZuoraデータソースの名前。fetch_related: trueの場合は必須です

    • 利用可能なデータソースのリストについては、Appendixを参照してください。
  • fetch_related: baseまたはfullオブジェクト(すべての事前結合されたオブジェクトを含む)のインポートを選択できます。デフォルトはfalseです

  • from_timestamp: データがインポートされる開始時刻。フォーマットは: yyyy-MM-dd'T'HH:mm:ss.SSS'Z'

  • incremental: データインポートを継続的に行うか1回のみ行うか。デフォルトはtrueです。trueの場合、durationが必須です

  • duration: データがインポートされる期間。対象オブジェクトのUpdatedDateフィールドによって決定されます。unitには3つのオプションがあります: DAY、HOUR、MIN。デフォルトはDAYです。

ZuoraのいくつかのLimited Availabilityオブジェクトには、追加の設定が必要です。以下はBilling Preview Runの追加設定のリストです:

  • from_timestamp : Billing Preview Runで使用する場合、これはプレビュー実行のTarget Dateです。
  • include_evergreen_sub : エバーグリーンサブスクリプションを含めるかどうかを示します。デフォルトは'false'です
  • batch : このプレビュー実行に含める顧客バッチを指定します
  • assume_renewal : アカウントの更新を想定するかどうか。有効な値はAll、None、またはAutorenewです。デフォルトは'None'です。
  • charge_type_to_exclude : 予測実行から除外する課金タイプ。可能な値: OneTime、Recurring、Usage、およびこれらの値のカンマ区切りの組み合わせ。

利用可能なoutモードの詳細については、Appendixを参照してください。

インポートするデータをプレビューする

td connector:previewコマンドを使用して、インポートされるデータをプレビューできます。

td connector:preview load.yml

ロードジョブを実行する

ロードジョブを送信します。データサイズによっては数時間かかる場合があります。ユーザーはデータが保存されるデータベースとテーブルを指定する必要があります。

Treasure Dataのストレージは時間で分割されているため、--time-columnオプションを指定することをお勧めします(データパーティショニングも参照してください)。オプションが指定されていない場合、Data Connectorは最初のlongまたはtimestamp型のカラムをパーティショニング時間として選択します。--time-columnで指定するカラムの型は、longまたはtimestamp型のいずれかである必要があります。

データに時間カラムがない場合は、add_timeフィルターオプションを使用して追加できます。詳細はadd_timeフィルタープラグインを参照してください。

td connector:issue load.yml \
--database td_sample_db --table td_sample_table \
--time-column updated_date

connector:issueコマンドは、database(td_sample_db)table(td_sample_table) がすでに作成されていることを前提としています。TD内にデータベースまたはテーブルが存在しない場合、コマンドは失敗します。そのため、データベースとテーブルを手動で作成するか、td connector:issueコマンドで--auto-create-tableオプションを使用してデータベースとテーブルを自動作成してください。

td connector:issue load.yml \
--database td_sample_db --table td_sample_table \
--time-column updated_date --auto-create-table

「Partitioning Key」に時刻フォーマット列を割り当てるには、「--time-column」オプションを使用します。

Scheduled execution

定期的なZuoraインポートのために、定期的なData Connector実行をスケジュールできます。Treasure Dataのスケジューラーの負荷分散と操作は、高可用性を実現するために最適化されています。Treasure Dataのスケジューラーを使用することで、ローカルデータセンターにcronデーモンを配置する必要がなくなります。

Create the schedule

td connector:createコマンドを使用して新しいスケジュールを作成できます。スケジュールの名前、cron形式のスケジュール、データが保存されるデータベースとテーブル、Data Connector設定ファイルを指定します。これらの値は必須です。

td connector:create \
daily_zuora_import \
"10 0 * * *" \
td_sample_db \
td_sample_table \
load.yml

'cron'パラメータは、'@hourly'、'@daily'、'@monthly'の3つのオプションも受け入れます。

デフォルトでは、スケジュールはUTCタイムゾーンで設定されます。-tまたは--timezoneオプションを使用して、タイムゾーンでスケジュールを設定できます。--timezoneオプションは、'Asia/Tokyo'、'America/Los_Angeles'などの拡張タイムゾーン形式のみをサポートすることに注意してください。PST、CSTなどのタイムゾーン略語はサポートされておらず、予期しないスケジュールにつながる可能性があります。

List the Schedules

td connector:listでスケジュールエントリのリストを確認できます。

$ td connector:list

Show the Setting and History of Schedules

td connector:showは、スケジュールエントリの実行設定を表示します。

td connector:show daily_zuora_import

Delete the Schedule

td connector:deleteはスケジュールを削除します。

$ td connector:delete daily_zuora_import

Available Base Object

Base ObjectBase ObjectBase Object
AccountInvoiceItem.ProductRatePlanChargeTier
AccountingCodeInvoiceItemAdjustmentRatePlan
AccountingPeriodInvoicePaymentRatePlanCharge
BillingRunPaymentRatePlanChargeTier
BillingPreviewRunPaymentMethodRefund
ChargeMetricsPaymentMethodTransactionLogRefundInvoicePayment
ContactPaymentTransactionLogRefundTransactionLog
CreditBalanceAdjustmentProductSubscription
FeatureProductFeatureSubscriptionProductFeature
InvoiceProductRatePlanTaxationItem
InvoiceAdjustmentProductRatePlanChargeUsage

Available Data Source

Data SourceData SourceData Source
AccountPaymentRatePlanChargeTier
AccountingCodePaymentGatewayReconciliationEventLogRevenueChargeSummaryItem
BillingRunPaymentMethodRevenueEventItem
ContactPaymentMethodTransactionLogRevenueEventItemCreditMemoItem
ChargeMetricsPaymentPartRevenueEventItemDebitMemoItem
CreditBalanceAdjustmentPaymentPartItemRevenueEventItemInvoiceItem
InvoicePaymentReconciliationLogRevenueEventItemInvoiceItemAdjustment
InvoiceAdjustmentPaymentTransactionLogRevenueScheduleItem
InvoiceItemAdjustmentProcessedUsageRevenueScheduleItemInvoiceItem
InvoicePaymentProductRevenueScheduleItemInvoiceItemAdjustment
JournalEntryItemProductRatePlanChargeTierRevenueScheduleItemCreditMemoItem
OrderRatePlanRevenueScheduleItemDebitMemoItem
OrderActionRatePlanChargeSubscription
OrderQuantityRatePlanChargeTierSubscriptionProductFeature
OrderMrrRefundUpdaterDetail (PaymentMethodUpdate)
OrderTcbRefundInvoicePaymentUsage
OrderTcvRefundTransactionLog

Configure excluded fields for Base Object

Base Objectのデータをインポートする場合、一部の特殊なフィールドはデフォルトで除外されます。これは、Zuoraによって各Base Objectに適用される制限または制約によるものです。

例:RatePlanCharge DiscountAmountは、次のフィールドと一緒にクエリできません:Price、IncludedUnits、DiscountPercentage、OveragePrice。プラグインはデフォルトでこれらのフィールドを除外します。Advanced Configuration UIで除外フィールドのリストを変更できます。Advanced ConfigurationはBase Objectの除外フィールドのリストを自動的に入力します。

除外フィールドを変更する手順:

  1. Base Objectプレビュー画面で、Advanced Settingsを選択します。
  2. Advanced Settingsには、事前定義された除外フィールドのリストが含まれています(存在する場合)。フィールドを置き換えたり変更したりすることもできます。ただし、一部のフィールドは一緒に含めることができないことに注意してください。

除外フィールド設定はBase Objectターゲットでのみ機能し、Data Sourceターゲットでは無視されます

Customize timestamp column

Timestamp column

Timestamp列は、データコネクタが時間範囲フィルタを適用するために使用するZuoraオブジェクト列です。列はデフォルトでUpdatedDateまたはプラグイン内部設定で事前設定された列になります。

Zuora ObjectIncremental Column
PaymentGatewayReconciliationEventLogCreatedDate
PaymentMethodTransactionLogTransactionDate
PaymentReconciliationLogCreatedDate
PaymentTransactionLogTransactionDate
RefundTransactionLogTransactionDate

前の表にリストされていない、サポートされているその他すべてのZuoraオブジェクトは、デフォルトの列UpdatedDateを使用します。

Customize timestamp column

異なる列をtimestamp列として使用したい場合があります。Advanced Configuration画面のTimestamp列設定を通じて列を指定できます。

パラメータ値は、Zuora ZOQLフィルタと同じ形式で、ObjectName.ColumnNameの形式になります。例:RatePlanCharge.UpdatedAt、RatePlan.UpdatedAt、RatePlanChargeTier.UpdatedAt。

timestamp列として使用される列は、ZuoraでDateTime型データタイプを持つ必要があります。