Trino データ型とキャスト
Trino を介してプロジェクトをクエリする方法は、Explorer の SQL エディタ、Trino コンシューマー、または外部ツールを使用する方法など様々です
目的
Trino を介してプロジェクトをクエリする方法は、Explorer の SQL エディタ、Trino コンシューマー、または外部ツールを使用する方法など様々です。操作する型は Lakehouse Manager で見る論理型ではなく、Trino 型です。ほとんどの場合、両者は一致しますが、いくつかのケースでは INSERT 時の明示的な CAST が必要です。
データ型:Lakehouse から Trino へ
以下の表は、各 Lakehouse 型を Trino 型にマッピングしたものです:
列の正確な Trino 型、長さや精度を含むものは、テーブルが 作成 されたときのものです。疑問がある場合は SHOW CREATE TABLE <catalog>.<schema>.<table>; を実行してください。INSERT 内の CAST は、Lakehouse Manager で見る論理型ではなく、その型をターゲットにする必要があります。
隠示的な強制変換(CAST 不要)
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 構文ではありません。INTEGER のエイリアスとして INT は 列宣言 で受け入れられますが、型付きリテラル 形式 TYPE 'value' では受け入れられません。
整数を挿入するには、次のいずれかを使用します:
同じ列を読み取ることは、SELECT で型付きリテラルが評価されないため、エラーを引き起こしません。INT 'x' 形式のみがパーサを破壊します。
VARCHAR 挿入時の TYPE_MISMATCH のトラブルシューティング
CAST(x AS VARCHAR) は無制限の VARCHAR を生成し、Iceberg 文字列列と互換性があります。TYPE_MISMATCH がまだ発生する場合は、以下の点を順に確認してください:
- ターゲット列は無制限ではない可能性があります。 テーブルが
VARCHAR(50)を使用して Trino を介して作成された場合、コネクタはその長さ制約を保持します。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 文、および正確なエラーメッセージを収集した後、サポートチケットを開いてください。その情報だけで、不良な列を特定できます。
さらに学ぶ
トレーニングや技術的なサポートが必要な場合は、営業担当者にお問い合わせください、または このリンク をクリックして、プロフェッショナルサービスの専門家にプロジェクトのカスタム分析を依頼する見積もりを取得してください。
Data Platform を構築するチームと直接やり取りし、質問をする、フィードバックを提供する、専用の Discord チャネル で交流する。
OVHcloud サービスについてサポートが必要な場合は、ヘルプセンター でリクエストを作成してください。
ユーザーコミュニティ に参加する。

