SQL Server 接続のトラブルシューティング
プレビュー
LakeFlow Connect はゲート付きパブリック プレビュー段階です。 プレビューに参加するには、Databricks アカウント チームにお問い合わせください。
注:
SQL Server コネクタは、Azure SQL Database と Amazon RDS for SQL Server をサポートします。
一般的なトラブルシューティング ステップ
パイプラインが失敗した場合は、失敗したステップをクリックし、エラー メッセージまたはコードにエラーの性質に関する十分な情報が提供されているかどうかを確認します。
パイプラインの詳細ページからクラスター ログを確認することもできます。 ログをスキャンしてエラーまたは例外を探します。 また、ログファイルをローカルにダウンロードして、より詳細な検査を行うこともできます。
データベースまたはテーブルで CDC が有効になっているかどうかを確認する
データベース<database-name>
で CDC が有効になっているかどうかを確認するには:
select is_cdc_enabled from sys.databases where name='<database-name>';
テーブル<schema-name>.<table-name>
で CDC が有効になっているかどうかを確認するには:
select t.is_tracked_by_cdc
from sys.tables t join sys.schemas s on t.schema_id = s.schema_id
where s.name='<schema-name>' and t.name='<table-name>';
変更追跡がデータベースまたはテーブルに対して有効になっているかどうかを確認する
データベースの <database-name>' で変更追跡が有効になっているかどうかを確認するには:
select ctdb.*
from sys.change_tracking_databases ctdb join sys.databases db
on db.database_id = ctdb.database_id
where db.name = '<MyDatabaseName>'
テーブル <schema-name>.<table-name>
の変更追跡が有効になっているかどうかを確認するには:
select s.name schema_name, t.name table_name, ct.*
from sys.change_tracking_tables ct join sys.tables t
on ct.object_id = t.object_id
join sys.schemas s on t.schema_id = s.schema_id
where s.name = '<MySchemaName>' and t.name = '<MyTableName>'
テーブルトークンの待機中にタイムアウト
ゲートウェイから情報が提供されるのを待機している間に、取り込みパイプラインがタイムアウトする可能性があります。 これは、次の理由が考えられます。
古いバージョンのゲートウェイを実行しています。
必要な情報を生成する際にエラーが発生しました。 ゲートウェイ ドライバーのログでエラーを確認します。
デフォルト認証: デフォルトの資格情報を設定できません
このエラーが表示された場合は、現在のユーザー資格情報の検出に問題があります。 次のものを置き換えてみてください。
w = WorkspaceClient()
で:
w = WorkspaceClient(host=input('Databricks Workspace URL: '), token=input('Token: '))
Databricks SDK for Python ドキュメントの「認証」を参照してください。
tech.replicant.common.ExtractorException: com.microsoft.sqlserver.JDBC.SQLServerException: 列名 'SERIAL_NUMBER' が無効です。
このエラーは、古いバージョンの内部テーブルを使用している場合に表示されることがあります。 接続されたデータベースで以下を実行します。
drop table dbo.replicate_io_audit_ddl_trigger_1;
PERMISSION_DENIED: クラスターを作成する権限がありません。 管理者に問い合わせてください。
Unrestricted cluster creation
権限を付与するには、Databricks アカウント管理者に問い合わせてください。
org.apache.spark.sql.catalyst.ExtendedAnalysisException (英語)
エラーメッセージ:
Ingestion pipeline error: “org.apache.spark.sql.catalyst.ExtendedAnalysisException: Cannot have multiple queries named `XYZ_snapshot_load` for `XYZ`. Additional queries on that table must be named. Note that unnamed queries default to the same name as the table.
問題:これは、同じ取り込みパイプラインによって同じ宛先スキーマに取り込まれている異なるソース スキーマ内のXYZ
という名前の複数のソース テーブルが原因で名前の競合が発生していることを示します。
解決策:複数のゲートウェイと取り込みパイプラインのペアを作成し、これらの競合するテーブルを異なる宛先スキーマに書き込みます。