Хранилище Apache Drill S3 с API - PullRequest
       6

Хранилище Apache Drill S3 с API

0 голосов
/ 03 сентября 2018

Мы пытаемся создать плагин хранилища, используя API Apache Drill Rest. У меня есть файл, в котором перечислены мои настройки:

**s3.config**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
{
  "type": "file",
  "enabled": true,
  "connection": "s3a://AWS_ACCESS_KEY_ID:AWS_SECRET_KEY@BUCKET_NAME",
  "config": {
    "fs.s3a.access.key": "AWS_ACCESS_KEY_ID",
    "fs.s3a.secret.key": "AWS_SECRET_KEY"
  },
  "workspaces": {
    "root": {
      "location": "/data",
      "writable": true,
      "defaultInputFormat": null,
      "allowAccessOutsideWorkspace": false
    },
    "tmp": {
      "location": "/tmp",
      "writable": true,
      "defaultInputFormat": null,
      "allowAccessOutsideWorkspace": false
    }
  },
  "formats": {
    "parquet": {
      "type": "parquet"
    }
  }
}

Когда я публикую эти данные, используя скручивание по API сверления, ниже я получаю сообщение об ошибке:

Unexpected token (END_OBJECT), expected FIELD_NAME: missing property 'type' that is to contain type id  (for class org.apache.drill.common.logical.StoragePluginConfig)

Мой запрос на скручивание выглядит так:

curl -v --write-out %{http_code} -H "Content-Type: application/json" -X POST  --data "@s3.config" http://localhost:8047/storage/s3.json

1 Ответ

0 голосов
/ 03 сентября 2018

У вас неверное тело запроса, вы пропустили свойство имени плагина "name" и само свойство "config". Попробуйте этот конфиг:

{
  "name":"s3",
  "config": {
    "type": "file",
    "enabled": true,
    "connection": "s3a://AWS_ACCESS_KEY_ID:AWS_SECRET_KEY@BUCKET_NAME",
    "config": {
      "fs.s3a.access.key": "AWS_ACCESS_KEY_ID",
      "fs.s3a.secret.key": "AWS_SECRET_KEY"
    },
    "workspaces": {
      "root": {
        "location": "/data",
        "writable": true,
        "defaultInputFormat": null,
        "allowAccessOutsideWorkspace": false
      },
      "tmp": {
        "location": "/tmp",
        "writable": true,
        "defaultInputFormat": null,
        "allowAccessOutsideWorkspace": false
      }
    },
    "formats": {
      "parquet": {
        "type": "parquet"
      }
    }
  }
}

Подробнее: https://drill.apache.org/docs/rest-api-introduction/#post-/storage/{name}.json

...