跳到主要内容
版本:Next
fileINPUTBUFFERPROCESSOROUTPUT

文件(File)

文件输入(Input)通过 DataFusion 读取 JSON / CSV / Parquet / Avro / Arrow 文件。它支持本地路径与云对象存储(S3、GCS、Azure、HTTP、HDFS),并可选地对文件数据执行 SQL,或与 Ballista 分布式引擎集成。

配置​

FieldTypeRequiredDefault描述
typestringyes—文件格式: json / csv / parquet / avro / arrow
pathstringyes—文件路径或对象存储 URL
storeobjectno—对象存储配置(带标签的枚举),见下表
queryobjectno—对文件数据执行的 SQL,见下表
ballistaobjectno—分布式查询配置,见下表

注意:代码中的字段名是 store(而不是旧文档中的 object_store)。文件格式由顶层的 type 字段指定。

store​

store 是一个带标签的枚举(tagged enum,通过 type 字段区分)。

S3​

FieldTypeRequiredDefault描述
typestringyes—"s3"
bucket_namestringyes—S3 存储桶名称
access_key_idstringyes—AWS 访问密钥 ID
secret_access_keystringyes—AWS 秘密访问密钥
endpointstringno—自定义端点(MinIO 等)
regionstringno—AWS 区域
allow_httpbooleannofalse是否允许 HTTP(非 TLS)连接

GCS (gs)​

FieldTypeRequired描述
typestringyes"gs"
bucket_namestringyesGCS 存储桶名称
urlstringno自定义端点
service_account_pathstringno服务账号 JSON 密钥文件的路径
service_account_keystringno服务账号 JSON 原始内容

Azure (az)​

FieldTypeRequired描述
typestringyes"az"
accountstringyes存储账号名称
container_namestringyes容器名称
endpointstringno端点
urlstringnoBlob 端点 URL
access_keystringno存储访问密钥

HTTP​

FieldTypeRequired描述
typestringyes"http"
urlstringyesHTTP 端点 URL

HDFS​

FieldTypeRequired描述
typestringyes"hdfs"
urlstringyesHDFS namenode URL
ha_configmap<string, string>no高可用配置

query​

FieldTypeRequiredDefault描述
querystringyes—SQL 查询语句
tablestringno"flow"文件数据注册所使用的表名

ballista​

FieldTypeRequired描述
remote_urlstringyesBallista 服务器 URL

示例​

input:
type: "file"
input_type:
type: "json"
path: "/data/sensor_data.json"
input:
type: "file"
input_type:
type: "parquet"
path: "s3://my-bucket/data/sensor_readings.parquet"
store:
type: "s3"
region: "us-west-2"
bucket_name: "my-bucket"
access_key_id: "${AWS_ACCESS_KEY_ID}"
secret_access_key: "${AWS_SECRET_ACCESS_KEY}"
input:
type: "file"
input_type:
type: "csv"
path: "/data/sensors.csv"
query:
query: "SELECT sensor_id, AVG(temperature) as avg_temp FROM flow GROUP BY sensor_id"
table: "sensor_data"
input:
type: "file"
input_type:
type: "parquet"
path: "s3://analytics/data.parquet"
store:
type: "s3"
endpoint: "http://localhost:9000"
region: "us-east-1"
bucket_name: "analytics"
access_key_id: "minioadmin"
secret_access_key: "minioadmin"
allow_http: true
input:
type: "file"
input_type:
type: "csv"
path: "az://my-container/data/input.csv"
store:
type: "az"
account: "mystorageaccount"
container_name: "my-container"
access_key: "${AZURE_STORAGE_ACCESS_KEY}"