OrientDB ETL не импортирует CSV - PullRequest
       16

OrientDB ETL не импортирует CSV

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

Я совершенно новый пользователь OrientDB и оцениваю его для использования моей командой. Я не могу импортировать мой файл CSV. CSV - очень простой файл:

fld1,fld2,fld3
a,b,c
d,e,f
g,h,i

Файл конфигурации JSON содержит следующее:

{
  "config": {
    "log": "debug"
  },
  "begin": [],
  "source": { "file": { "path": "../databases/metjsd.csv" } },
  "extractor": { "csv": {} },
  "transformers": [
    {
      "vertex": { "class": "metjsd" },
      "log" : {}
    }
  ],
  "loader": {
    "orientdb": {
       "dbURL": "plocal:../databases/demodb",
       "dbAutoCreateProperties": true,
       "dbUser": "Admin",
       "dbPassword": "Admin",
       "classes": [
         {"name": "metjsd", "extends": "V"}
       ]
     }
  },
  "end": []
  }

Скрипт, который я запускаю в командном окне:

oetl metjsd.json

Это Community Edition 3.0.7 для Windows. Команда выше - это файл oetl.bat.

Некоторые вещи, которые я пробовал:

  • Удаление всех отдельных элементов в файле конфигурации JSON, которые я считаю несущественными, до такой степени, что это выглядит так:

    { "source": {"file": {"path": "../databases/metjsd.csv"}}, "Extractor": {"CSV": {}}, "трансформаторы": [ { "vertex": {"class": "metjsd"}, } ], "загрузчик": { "orientdb": { "dbURL": "plocal: ../ database / demodb", "классы": [ {"name": "metjsd", "extends": "V"} ] } }

  • Когда я меняю dbURL на другое имя, создается новая база данных, поэтому я знаю, что JSON-скрипт читается.

  • Когда я изменяю путь к исходному файлу на файл, который не существует, возвращается ошибка, указывающая на отсутствующий файл, а также на то, что файл JSON читается.

  • Не имеет значения, создаю ли я класс вершины назначения - данные не импортируются.

  • При добавлении отладки в файл конфигурации JSON не отображается отладочная информация.

Результат каждый раз один и тот же - одна строка, показывающая номер версии ETL, но больше ничего. Нет отладочной информации. Нет вывода журнала. Просто так:

C:\Users\John\Downloads\orientdb-3.0.7\orientdb-3.0.7\bin>oetl metjsd.json
OrientDB etl v.3.0.7 - Veloce (build eba5b2a2d63bf1b013db11db277226fcc4b9a34c, branch 3.0.x) https://www.orientdb.com

Я пробовал это на двух машинах Windows с одинаковыми результатами.

Все, что я вижу как очень начинающий пользователь, указывает на то, что служба OrientDB и база данных в порядке. Основные операции в OrientDB Studio работают как ожидалось.

Может кто-нибудь увидеть что-то не так или отсутствует в файле конфигурации JSON? Что еще я могу проверить?

Дополнение от 13 сентября 2008 г.

Ниже приведены исправленные файл CSV и файл конфигурации, которые я использую в соответствии с приведенным ниже запросом:

"fld1","fld2","fld3"
"a","b","c"
"d","e","f"
"g","h","i"


{
"config":{
  "log":"debug"
  },
  "begin": [],
  "source": { "file": { "path": "C:\Users\john.demar\Downloads\orientdb-3.0.7\orientdb-3.0.7\databases\metjsd.csv" } },
  "extractor": { "csv": {} },
  "loader": {
    "orientdb": {
        "dbURL": "remote:localhost/john",
        "serverUser":"root",
        "serverPassword":"orientdb",
        "dbType":"document",
        "dbAutoCreateProperties":true,
        "classes": [
          {"name": "metjsd"}
         ]
     }
  },
  "end": []
}

Ответы [ 2 ]

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

Проблема заключалась в том, что в разделе Loader отсутствовал параметр "class". Трансформер не нужен, что соответствует моему сценарию, потому что я не знаю, какие свойства могут войти.

В документации не указано, что свойство "class" является обязательным. Во всех примерах, которые я нашел, использовалось свойство «classes», и использование одного этого казалось подходящим, потому что класс был создан, просто без свойств и без импорта файлов. Добавление свойства "class" создало класс со всеми его свойствами.

Этот файл конфигурации наконец заработал:

{
"config":{
  "log":"debug"
  },
  "begin": [],
  "source": { "file": { "path": "C:\jsd\orientdb-3.0.7\databases\metjsd.csv" } },
  "extractor": { "csv": {}},
  "loader": {
    "orientdb": {
        "dbURL": "remote:localhost/john",
        "serverUser":"root",
        "serverPassword":"orientdb",
        "dbType":"document",
        "dbAutoCreateProperties":true,
        "class": "metjsd"
     }
  },
  "end": []
}
0 голосов
/ 19 сентября 2018

Эта конфигурация работает для меня. Загружает каждую строку как вершину класса metjsd. Вы не предоставили трансформатор в вашей конфигурации.

{
"config":{
  "log":"debug"
  },
  "begin": [],
  "source": { "file": { "path": "C:\Users\john.demar\Downloads\orientdb-3.0.7\orientdb-3.0.7\databases\metjsd.csv" } },
  "extractor": { "csv": {} },
  "transformers": [
   {
     "vertex": { "class": "metjsd" },
     "log" : {}
   }
 ],
  "loader": {
    "orientdb": {
        "dbURL": "remote:localhost/john",
        "dbUser": "admin",
       "dbPassword": "admin",
        "serverUser":"root",
        "serverPassword":"orientdb",
        "dbType":"graph",
        "dbAutoCreateProperties":true,
        "classes": [
          {"name": "metjsd"}
         ]
     }
  },
  "end": []
}

Вот вывод на OrientDB Studio

enter image description here

...