以前は1〜2週間おきにリリースされていたTrinoですが、今回はなんと約4ヶ月ぶりのリリースでした。間が空いただけあって修正内容も多いのですが、コネクタの修正はLakehouseコネクタが追加された以外はIcebergやDelta Lakeコネクタ中心でそれほどでもなさそう。書き込みデータ量を制限できるようになっているのはユースケースによっては便利そうです。
原文はこちら: https://trino.io/docs/current/release/release-477.html
General
- Hive、Iceberg、Delta Lake、Hudiテーブルを統一的に扱うことができるLakehouseコネクタを追加 (#25347)
ALTER MATERIALIZED VIEW ... SET AUTHORIZATIONをサポート (#25910)- テーブル作成時およびカラム追加時にカラムのデフォルト値の指定をサポート (#25679)
ALTER VIEW ... REFRESHをサポート (#25906)- テーブルブランチの管理とクエリをサポート (#25751, #26300, #26136)
- スパースベクター用の
cosine_distance()関数を追加 (#24027) - 破壊的変更: 10進数値の算術演算における精度とスケールの推論を改善。
deprecated.legacy-arithmetic-decimal-operatorsコンフィグレーションプロパティをtrueに設定することで従来の動作に戻すことも可能 (#26422) - 破壊的変更: HTTP server event listenerプラグインをサーババイナリ配布およびDockerコンテナから削除 (#25967)
- 破壊的変更: クラスタ内のすべてのノードに同じカタログがデプロイされていることが必須になった (#26063)
- クエリによって書き込まれるデータ量の制限を設定できる
query.max-write-physical-sizeコンフィグレーションプロパティとquery_max_write_physical_sizeセッションプロパティを追加 (#25955) - 認可に関する情報を提供する
system.metadata.tables_authorization,system.metadata.schemas_authorization,system.metadata.functions_authorizationテーブルを追加 (#25907) - リソースグループに物理データスキャンのトラッキングを追加 (#25003)
system.runtime.tasksテーブルにinternal_network_input_bytesカラムを追加 (#26524)to_geojson_geometry関数でGeometry型をサポート (#26451)system.runtime.tasksテーブルからraw_input_bytesとraw_input_rowsカラムを削除 (#26524)- 読み込みに失敗したカタログを
system.metadata.catalogsに含めないように変更 (#26493) discovery.typeコンフィグレーションプロパティを追加。announce、dns、airlift-discoveryを指定可能で、KubernetesのようなすべてのworkerにDNS名を提供する環境ではdnsを指定することでノード検出の設定を簡素化できる (#26119)row_number,rank,dense_rankとORDER BY ... LIMITを含む特定のクエリのメモリ使用量を改善 (#25946)GROUP BYを含むクエリのメモリ使用量を改善 (#25879)DISTINCTまたはORDER BY句を持つ集約を含むクエリに必要なメモリを削減 (#26276)- ノード数の少ないクラスタでのシンプルなクエリのパフォーマンスを改善 (#26525)
- 低速なデータソースをクエリし、クエリが早期にターミネートまたはキャンセルされた場合のクラスタの安定性を改善 (#26602)
- スピル時の結合と集約の信頼性を改善 (#25892, #25976)
GROUP BYを含むクエリのスピルファイルのクリーンアップを確実に実行されるよう修正 (#26141)- 結合を含むクエリのout-of-memoryエラーを削減 (#26142)
- スピルが有効な場合の
GROUP BYを含むクエリの不正な結果を修正 (#25892) GROUP BY AUTOで他の式に集約が存在する場合のエラーを修正 (#25987)ST_Contains,ST_Intersects,ST_Distance関数を使用した結合を含むクエリの不正な結果を修正 (#26021)- クライアントスプーリングプロトコルが有効な場合のout-of-memoryエラーを修正 (#25999)
ORDER BY句を含む集約を持つGROUP BYクエリを実行時のJVM out-of-memoryエラーによるワーカーのクラッシュを修正 (#26276)SET SESSION AUTHORIZATIONでユーザを指定した際の認可に元のユーザのグループが使用される問題を修正 (#26344)geometry_to_bing_tilesがジオメトリ領域全体をカバーせず、タイルが完全にカバーされない問題を修正 (#26459)ARRAY型内にネストされたROW値で集約する際のメモリ使用量が過剰にカウントされる問題を修正 (#26405)EXPLAIN ANALYZEでの物理入力メトリクスのアカウンティングを改善 (#26637)
Web UI
- Preview Web UIにクエリ詳細ページを追加 (#25554)
- Preview Web UIにクエリJSONページを追加 (#26319)
- Preview Web UIにクエリライブプランフローページを追加 (#26392)
- Preview Web UIにクエリ参照ページを追加 (#26327)
- Preview Web UIにクエリステージビューを追加 (#26440)
- Preview Web UIにクエリライブプランフローページを追加 (#26610)
- 外部ネットワークアクセスのないTrinoクラスタでのUIレスポンスを改善 (#26031)
CLI
- クエリ履歴で
Alt+↑またはAlt+↓によるキーボードナビゲーションをサポート (#26138)
Delta Lake connector
- 認証情報なしでのGCSの使用をサポート (#25810)
s3.socket-read-timeoutコンフィグレーションプロパティをs3.socket-timeoutにリネーム (#26263)EXPLAIN ANALYZE VERBOSE出力にファイルシステムキャッシュから読み取られたデータのメトリクスを追加 (#26342)- Alluxio使用時のリソース使用率を改善 (#26121)
- ネイティブファイルシステムリソースを可能な限り早期に解放することでリソース使用率を改善 (#26085)
azure.multipart-write-enabledコンフィグレーションオプションがtrueに設定されている場合のAzureでの書き込み集約クエリのスループットを改善 (#26225)- S3スロットリングによるクエリの失敗を低減 (#26407)
- 異常に大きなParquetフッタをデコードする際のout-of-memoryエラーによるworkerのクラッシュを回避 (#25973)
- 古いバージョンのPyArrowで生成されたParquetファイルを読み取る際の不正な結果を修正 (#26058)
- Deletion vectorが有効な場合の不正なチェックポイントファイルの書き込みを修正 (#26145)
variantカラムにnull値を含むテーブルを読み取る際のエラーを修正 (#26016, #26184)- Parquetファイルから
decimal数値を読み取る際、宣言された精度がParquetメタデータで記述された精度と異なる場合の不正な結果を修正 (#26203) - テーブルがDeletion vectorを使用し、そのパーティションパスに特殊文字が含まれている場合の不正な結果を修正 (#26299)
Exasol connector
Hive connector
- 認証情報なしでのGCSの使用をサポート (#25810)
- Esri JSON形式を使用したテーブルの読み取りをサポート (#25241)
- テキストファイル形式で
extended_boolean_literalをサポート (#21156) EXPLAIN ANALYZE VERBOSEの出力にファイルシステムキャッシュから読み取られたデータのメトリクスを追加 (#26342)- Twitter Elephant Bird Protobufデシリアライゼーションをサポート (#26305)
s3.socket-read-timeoutコンフィグレーションプロパティをs3.socket-timeoutにリネーム (#26263)azure.multipart-write-enabledコンフィグレーションオプションがtrueの場合のAzureでの書き込み集約クエリのスループットを改善 (#26225)- S3スロットリングによるクエリの失敗を低減 (#26407)
- 異常に大きなParquetフッタをデコードする際のout-of-memoryエラーによるworkerのクラッシュを回避 (#25973)
- Alluxio使用時のリソース使用率を改善 (#26121)
- 古いバージョンのPyArrowで生成されたParquetファイルを読み取る際の不正な結果を修正 (#26058)
- 日付パーティションプロジェクションで
partition_projection_formatカラムプロパティで指定したフォーマットが使われない問題を修正 (#25642) - Parquetファイルから
decimal数値を読み取る際、宣言された精度がParquetメタデータで記述された精度と異なる場合の不正な結果を修正 (#26203) - テキストファイルを含むテーブルのphysical input read timeのメトリクスを修正 (#26612)
- クォートとエスケープが無効になっているHive OpenCSVテーブルの読み取りをサポート (#26619)
HTTP Event Listener
http-event-listener.connect-http-methodコンフィグレーションプロパティを通じて使用するHTTPメソッドの設定をサポート (#26181)
Hudi connector
parquet.max-read-block-row-countコンフィグレーションプロパティまたはparquet_max_read_block_row_countセッションプロパティを使用してParquetファイル読み取りのバッチサイズを設定可能に (#25981)- 認証情報なしでのGCSの使用をサポート (#25810)
s3.socket-read-timeoutコンフィグレーションプロパティをs3.socket-timeoutにリネーム (#26263)- Alluxio使用時のリソース使用率を改善 (#26121)
azure.multipart-write-enabledコンフィグレーションオプションがtrueの場合のAzureでの書き込み集約クエリのスループットを改善 (#26225)- S3スロットリングによるクエリの失敗を低減 (#26407)
- 異常に大きなParquetフッタをデコードする際のout-of-memoryエラーによるworkerのクラッシュを回避 (#25973)
- 古いバージョンのPyArrowで生成されたParquetファイルを読み取る際の不正な結果を修正 (#26058)
- Parquetファイルから
decimal数値を読み取る際、宣言された精度がParquetメタデータで記述された精度と異なる場合の不正な結果を修正 (#26203)
Iceberg connector
SIGV4を独立した認証スキームとしてサポート。iceberg.rest-catalog.securityコンフィグレーションプロパティをSIGV4に設定することで有効化可能。iceberg.rest-catalog.sigv4-enabledコンフィグレーションプロパティは廃止 (#26218)- 認証情報なしでのGCSの使用をサポート (#25810)
compression_codecテーブルプロパティを通じてテーブル読み取り用の圧縮コーデックを設定可能に。compression_codecセッションプロパティは廃止 (#25755)EXPLAIN ANALYZE VERBOSEの出力にファイルシステムキャッシュから読み取られたデータのメトリクスを追加 (#26342)s3.socket-read-timeoutコンフィグレーションプロパティをs3.socket-timeoutにリネーム (#26263)expire_snapshotsプロシージャのパフォーマンスを改善 (#26230)remove_orphan_filesプロシージャのパフォーマンスを改善 (#26326, #26438)$filesメタデータテーブルでのクエリのパフォーマンスを改善 (#25677)- タスクリトライが有効な場合のIcebergテーブルへの書き込みのパフォーマンスを改善 (#26620)
remove_orphan_filesプロシージャのメモリ使用量を削減 (#25847)azure.multipart-write-enabledコンフィグレーションオプションがtrueの場合のAzureでの書き込み集約クエリのスループットを改善 (#26225)- S3スロットリングによるクエリの失敗を低減 (#26407)
- 異常に大きなParquetフッタをデコードする際のout-of-memoryエラーによるworkerのクラッシュを回避 (#25973)
- Alluxio使用時のリソース使用率を改善 (#26121)
- Icebergテーブルへの書き込みで生成されるメタデータ量を削減 (#15439)
REFRESH MATERIALIZED VIEWのパフォーマンスリグレッションとクエリが失敗する可能性のある潜在的な問題を修正 (#26051)- 古いバージョンのPyArrowで生成されたParquetファイルを読み取る際の不正な結果を修正 (#26058)
- トップレベルパーティションカラムにnull値が含まれている場合の
optimize_manifestsプロシージャのエラーを修正 (#26185) - Parquetファイルから
decimal数値を読み取る際、宣言された精度がParquetメタデータで記述された精度と異なる場合の不正な結果を修正 (#26203) - パーティション化テーブルで
OPTIMIZE_MANIFESTSを実行する際のcoordinatorのout-of-memoryエラーを修正 (#26323)
Kafka Event Listener
kafka-event-listener.max-request-sizeコンフィグレーションプロパティでの最大リクエストサイズの設定をサポート (#26129)kafka-event-listener.batch-sizeコンフィグレーションプロパティでのバッチサイズの設定をサポート (#26129)
Memory connector
MongoDB connector
- 異なる要素型を持つ配列型を読み取る際のエラーを修正 (#26585)
MySQL Event Listener
mysql-event-listener.terminate-on-initialization-failureが無効な場合、Trino起動時のエラーを無視 (#26252)
OpenLineage Event Listener
trino_query_contextファセットにユーザーを識別するためのフィールドを追加 (#26074)trino_metadataファセットにquery_idフィールドを追加 (#26074)openlineage-event-listener.job.name-formatコンフィグレーションプロパティでジョブファセット名をカスタマイズ可能に (#25535)
PostgreSQL connector
SPI
Type.getObjectValueからConnectorSessionを削除 (#25945)- 未使用の
NodeManager.getEnvironmentメソッドを削除 (#26096) @Experimentalアノテーションを削除 (#26200)- 非推奨の
ConnectorPageSource.getNextPageメソッドを削除 (#26222) EventListener#splitCompletedのサポートを削除 (#26436)ConnectorMetadata.refreshMaterializedViewを削除 (#26455)- 未使用の
CatalogHandleクラスを削除 (#26520) ConnectorMetadata.beginRefreshMaterializedViewとConnectorMetadata.finishRefreshMaterializedViewのシグネチャを変更。他のカタログのテーブルハンドルはこれらのメソッドに渡されなくなった (#26454)ConnectorContext.getCurrentNodeを追加し、NodeManager.getCurrentNodeを非推奨に (#26096)ConnectorMetadata.delegateMaterializedViewRefreshToConnectorを非推奨に (#26455)io.trino.spi.eventlistener.QueryStatisticsからtotalBytesとtotalRowsを削除 (#26524)