READ_FILE
stage からファイルを読み取り、その内容を生バイトとして返します。
READ_FILE は、ドキュメント、画像、モデル入力など、stage に配置されたアセットを下流のデータセットにパッケージ化したい場合に便利です。たとえば、学習データを Lance にアンロード (unload) する場合に使用できます。
構文
READ_FILE('@<stage>/<path-to-file>')
READ_FILE('@<stage>', '<path-to-file>')
引数
戻り値の型
BINARY
いずれかの引数が NULL の場合、結果は NULL になります。
使用上の注意
READ_FILEは stage からファイルを読み取ります。TiDB Cloud Lake サーバー上のローカルファイルは読み取りません。- 対象はディレクトリではなく、ファイルである必要があります。
- 呼び出し元には stage を読み取る権限が必要です。
例
完全な stage パスを使用してファイルを読み取ります。
SELECT TO_HEX(READ_FILE('@data/csv/prefix/ab.csv'));
結果:
31
stage 名と相対パスを組み合わせてファイルを読み取ります。
SELECT TO_HEX(READ_FILE('@data', 'csv/prefix/ab.csv'));
結果:
31
定数の stage と行ごとの相対パスを組み合わせて複数のファイルを読み取ります。
CREATE OR REPLACE TABLE read_file_rel_paths(path STRING);
INSERT INTO read_file_rel_paths VALUES
('csv/prefix/ab.csv'),
('csv/prefix/ab/cd.csv'),
(NULL);
SELECT path, TO_HEX(READ_FILE('@data', path))
FROM read_file_rel_paths
ORDER BY path;
結果:
+----------------------+--------------------------------+
| path | to_hex(read_file('@data',path)) |
+----------------------+--------------------------------+
| csv/prefix/ab.csv | 31 |
| csv/prefix/ab/cd.csv | 32 |
| NULL | NULL |
+----------------------+--------------------------------+