CData を使って Microsoft Fabric での NetSuite スキーマレプリケーションの問題を解決する方法



NetSuite は、Oracle が提供するクラウド ERP で、財務・人事・在庫管理・販売管理など、ビジネスのあらゆる業務を一元管理できるプラットフォームです。 Microsoft Fabric は、Lakehouse や Power BI などのツールを使ってデータの保存・処理・可視化を行えるモダンなデータプラットフォームです。 この2つのプラットフォームを接続するのは簡単そうに見えますが、実際にはそうではありません。 Fabric のネイティブ NetSuite コネクタには、カスタムフィールドの取得漏れ、SavedSearch でのエラー、不完全なスキーマレプリケーションといった深刻な制約があり、 データエンジニアは本来の作業ではなく、トラブルシューティングに時間を取られてしまいます。

CData JDBC Driver for NetSuite は、こうしたギャップを埋め、ネイティブコネクタの制約なしに NetSuite のスキーマを Microsoft Fabric Lakehouse へ完全にレプリケーションできます。

Microsoft Fabric ネイティブ NetSuite コネクタの課題

Microsoft Fabric のネイティブコネクタを使って NetSuite に接続するのは一見シンプルですが、実際にはさまざまな制約があります。スキーママッピングが正しく行われない場合があるほか、SavedSearch のサポートも限定的です。さらに、カスタムフィールドやカスタムテーブルが正しく取り込まれないことも多く、パイプラインのセットアップ段階で予期しないエラーが発生することもあります。

データエンジニアにとって、こうした課題は単なる作業の増加にとどまりません。レポートの数値に不整合が生じ、ステークホルダーからデータの信頼性を疑われるようになり、納期にも影響が出ます。結果として、チームは本来の開発作業ではなく調査・対応に追われることになります。

CData JDBC Driver は、ネイティブコネクタでは対応できない部分をカバーします。以下のステップで設定していきましょう。

ステップ 1: CData JDBC Driver for NetSuite を入手する

  1. CData JDBC Driver for NetSuite をダウンロードしてインストールします
  2. インストールが完了したら、cdata.jdbc.netsuite.jarcdata.jdbc.netsuite.lic の2つのファイルがあることを確認します

ステップ 2: NetSuite でトークンベース認証を有効にする

  1. NetSuite アカウントにログインします
  2. Setup から Company を選択し、Enable Features を開きます
  3. SuiteCloud タブで Token-Based AuthenticationREST Web Services を有効にします
  4. Integrations に移動し、Manage Integrations から New を選択します
  5. 以下の内容で新しいインテグレーションを作成します:
    • わかりやすい名前を入力します
    • Token-Based Authentication を有効にします
    • Save をクリックします
    • 表示された Consumer KeyConsumer Secret をコピーします。これらが OAuthClientId と OAuthClientSecret になります
  6. Users/Roles から Access Token を選択し、New をクリックします
    • Application NameUserRoleToken Name を入力します
    • Save をクリックし、表示された Token IDToken Secret をすぐにコピーします

    注意: これらの値は一度しか表示されず、後から取得することはできません

ステップ 3: Microsoft Fabric をセットアップする

  1. Microsoft Fabric アカウントにサインインします
  2. New Workspace を作成し、Lakehouse を選択します
  3. Lakehouse に名前を付け(例: NetSuiteLakehouse)、Create をクリックします

ステップ 4: CData Driver ファイルを Lakehouse にアップロードする

  1. 先ほど作成した Lakehouse を開きます
  2. Files に移動し、Upload から Upload files を選択します
  3. 以下の2つのファイルをアップロードします:
    • cdata.jdbc.netsuite.jar
    • cdata.jdbc.netsuite.lic
  4. 必要に応じて以下のコードで確認できます(任意):
  5. import jpype
    
    jar = "/lakehouse/default/Files/cdata.jdbc.netsuite.jar"
    lic = "/lakehouse/default/Files/cdata.jdbc.netsuite.lic"
    
    if not jpype.isJVMStarted():
        jpype.startJVM(classpath=[jar, lic])
    
    print("JVM started with driver and license")

ステップ 5: NetSuite データを Fabric にセットアップ・接続・レプリケーションする

CData JDBC Driver のアップロードと NetSuite の認証情報の準備が完了したら、 Microsoft Fabric 上ですべてをまとめていきましょう。 ワークスペースを開き、新しい Notebook を作成します。

まず、セルで以下を実行して必要なライブラリをインストールします:

!pip install jaydebeapi
!pip install JPype1
!pip install pandas

ライブラリのインストールが完了したら、NetSuite に接続する前に、 すべてのインポートと Spark セッションが正しく動作していることを確認します。

# Cell 1 - Verify everything works
import jaydebeapi
import pandas as pd
from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()
print("All imports successful")
print("Current DB:", spark.catalog.currentDatabase())

確認ができたら、CData JDBC Driver を使って NetSuite に接続します。 プレースホルダーの値を実際の NetSuite 認証情報に置き換えてください。接続後、ドライバーが NetSuite の完全なスキーマ(すべての標準テーブル、カスタムフィールド、SavedSearch を含む)を自動検出します。

#Cell 2 - Connect to NetSuite and schema discovery
import jaydebeapi

# Connect to NetSuite
jar_path = "/lakehouse/default/Files/cdata.jdbc.netsuite.jar"

url = (
    "jdbc:netsuite:"
    "AccountId=YOUR_ACCOUNT_ID;"
    "RoleId=3;"
    "AuthScheme=Token;"
    "OAuthClientId=YOUR_CLIENT_ID;"
    "OAuthClientSecret=YOUR_CLIENT_SECRET;"
    "OAuthAccessToken=YOUR_ACCESS_TOKEN;"
    "OAuthAccessTokenSecret=YOUR_ACCESS_TOKEN_SECRET;"
    "RTK=YOUR_RTK_KEY;"
)
conn = jaydebeapi.connect(
    "cdata.jdbc.netsuite.NetSuiteDriver",
    url, {}, jar_path
)
print("NetSuite Connected!")

# Schema Discovery
cursor = conn.cursor()
cursor.execute("SELECT * FROM sys_tables")
tables = cursor.fetchall()

print(f"\n Total tables discovered: {len(tables)}")
print("\n--- Sample Tables ---")
for t in tables[:10]:
    print(f"  {t[2]} ({t[3]})")

print("\n--- All Table Names ---")
for t in tables:
    print(f"  {t[2]}")

cursor.close()

この時点で、NetSuite のすべてのテーブルが出力に一覧表示されます。Employee から NetSuite 実装固有のカスタムテーブルまで、あらゆるテーブルが含まれています。レプリケーションされたデータを使って、Microsoft Fabric Lakehouse 上で Power BI のダッシュボードやレポートを作成できます。

CData JDBC Driver for NetSuite を今すぐお試しください

CData JDBC Driver for NetSuite の 30日間の無償トライアルをダウンロードして、NetSuite の完全なスキーマを Microsoft Fabric Lakehouse にレプリケーションしてみましょう。 ご質問がある場合は、CData コミュニティ または サポートチームまでお気軽にお問い合わせください。