Work in Progress: This page is under development. Use the feedback button on the bottom right to help us improve it.

FileSystem

Read from or write to object stores and filesystems. Supports S3, GCS, Azure Blob, and local filesystem.

Quick Example

apiVersion: laminar.io/v1
kind: Table
spec:
  name: log_files
  connector: filesystem
  config:
    tableType:
      path: s3://my-bucket/logs/
      compressionFormat: gzip
      regexPattern: ".*\\.json\\.gz$"
      storageOptions:
        s3.region: us-east-1
  schema:
    format:
      json: {}
    fields:
      - field_name: timestamp
        field_type:
          type:
            primitive: DateTime
        nullable: false
      - field_name: message
        field_type:
          type:
            primitive: Utf8
        nullable: false

Configuration

Required

PropertyTypeDescription
tableType.pathstringURI of folder to read from (s3://, gs://, az://, or local)
tableType.compressionFormatstringnone, zstd, or gzip

Optional

PropertyTypeDescription
tableType.regexPatternstringRegex pattern to filter files
tableType.storageOptionsobjectCloud storage credentials

JSON Schema Reference

Connection Table Schema
{
  "type": "object",
  "properties": {
    "tableType": {
      "oneOf": [
        {
          "title": "Source",
          "type": "object",
          "properties": {
            "path": {"type": "string"},
            "compressionFormat": {"enum": ["none", "zstd", "gzip"]},
            "regexPattern": {"type": "string"},
            "storageOptions": {"type": "object"}
          },
          "required": ["path", "compressionFormat"]
        },
        {
          "title": "Sink",
          "type": "object",
          "properties": {
            "path": {"type": "string"},
            "storageOptions": {"type": "object"},
            "rollingPolicy": {
              "type": "object",
              "properties": {
                "fileSizeBytes": {"type": "integer"},
                "intervalSeconds": {"type": "integer"},
                "inactivitySeconds": {"type": "integer"}
              }
            },
            "fileNaming": {
              "type": "object",
              "properties": {
                "prefix": {"type": "string"},
                "suffix": {"type": "string"},
                "strategy": {"enum": ["serial", "uuid", "uuidV7", "ulid"]}
              }
            }
          },
          "required": ["path"]
        }
      ]
    }
  },
  "required": ["tableType"]
}