Trino データ型とキャスト
Trino を介してプロジェクトをクエリする方法は、Explorer の SQL エディタ、Trino コンシューマー、または外部ツールを使用する方法です
目的
Trino を介してプロジェクトをクエリする方法は、Explorer の SQL エディタ、Trino コンシューマー、または外部ツールを使用する方法です。操作する型は Trino 型 であり、Lakehouse Manager で見る論理型ではありません。ほとんどの場合、両者は一致しますが、いくつかのケースでは CAST を INSERT 時間に明示的に行う必要があります。
データ型:Lakehouse から Trino へ
以下の表は、各 Lakehouse 型を Trino 型にマッピングしたものです:
列の正確な Trino 型、長さや精度を含む場合は、テーブルが 作成 されたときのものです。疑問がある場合は SHOW CREATE TABLE <catalog>.<schema>.<table>; を実行してください。CAST の INSERT は、Lakehouse Manager で見る論理型ではなく、その型をターゲットにする必要があります。
明示的なキャストが不要な暗黙的な強制
Trino はこれらの型を自動的に拡張するため、ソース値を直接挿入できます:
INTEGER→BIGINTREAL→DOUBLEDECIMAL→ より広いDECIMALVARCHAR(n)→ 無制限のVARCHAR:'foo'のようなリテラルはVARCHAR(3)であり、Iceberg 文字列に変換されますDATE→TIMESTAMP
明示的に書く必要があるキャスト
Trino はこれらを自動的に強制しません。CAST を持たない INSERT は TYPE_MISMATCH を返します:
VARCHAR→ 数値または日付:CAST('1' AS INTEGER),CAST('2026-05-26' AS DATE)- 数値 →
VARCHAR:CAST(x AS VARCHAR) TIMESTAMP↔TIMESTAMP WITH TIME ZONE(タイムゾーン認識の変更)DECIMAL(p1, s1)→DECIMAL(p2, s2)精度またはスケールが異なり、切り捨てが可能な場合- 複雑な型:異なる構造を持つ
ROW値の間には強制がありません。ROW(...)フィールドをフィールドごとに再構築する必要があります
タイプ付き値の挿入
有効なリテラル形式を使用する
INT '1' は 有効な Trino 構文ではありません。INT は 列宣言 で INTEGER のエイリアスとして受け入れられますが、タイプ付きリテラル 形式 TYPE 'value' では受け入れられません。
整数を挿入するには、次のいずれかを使用します:
同じ列を読み取ることは、SELECT でタイプ付きリテラルが評価されないため、エラーを引き起こしません。INT 'x' 形式のみがパーサーを破壊します。
VARCHAR 挿入時の TYPE_MISMATCH のトラブルシューティング
CAST(x AS VARCHAR) は無制限の VARCHAR を生成し、Iceberg 文字列列と互換性があります。TYPE_MISMATCH がまだ発生する場合は、以下の順序で確認してください:
- ターゲット列は無制限ではない可能性があります。 テーブルが
VARCHAR(50)を介して作成された場合、コネクタはその長さ制約を保持します。DESCRIBE catalog.schema.table;またはSHOW CREATE TABLE catalog.schema.table;で確認してください。列がvarchar(50)の場合は、CAST(x AS VARCHAR(50))にキャストしてください。 - 列の順序または数。 明示的な列リストがない場合、Trino は位置に基づいて値をマッピングし、ダウンストリームの列が一致しなくなると
TYPE_MISMATCHを発生させます。エラーは時々間違った式を指します。常に以下を好みます: - 複雑な型。
CAST(... AS VARCHAR)はROW、ARRAYまたはMAPに対して失敗します。フィールドごとに変換するか、json_format(CAST(... AS JSON))を使用してください。 - 生成列とタイムスタンプ。
VARCHARはTIMESTAMPまたはDATEに暗黙的に強制されません。VARCHARにあるように見えるTYPE_MISMATCHは、実際には同じVALUES句の別の列から来る可能性があります。
不一致が続く場合は、SHOW CREATE TABLE、完全な INSERT 文、および正確なエラーメッセージをサポートチケットを開く前に収集してください。その情報だけで、不良な列を特定できます。
さらに深く掘り下げる
トレーニングや技術的なサポートを受けてソリューションを実装するには、営業担当者に連絡するか、Professional Services ページにアクセスして見積もりを依頼し、専門家にプロジェクトを分析してもらってください。
質問をする、フィードバックを送信する、および Data Platform を構築するチームと直接交流するには、専用の Discord チャネル を利用してください。
OVHcloud サービスについてサポートが必要な場合は、Help Centre でリクエストを作成してください。
コミュニティ に参加してください。

