РЕДАКТИРОВАТЬ: я решил некоторые проблемы с classpath, и теперь я получаю следующую ошибку в файле журнала, который генерируется при выполнении «SELECT *»
UP-04004: ошибка чтения файла /home/oracle/tweet-dataloc/nosql.dat
KUP-04017: Сообщение операционной системы: ошибка 0
KUP-04017: сообщение операционной системы: / home / oracle / processor / nosql_stream: строка 4: java: такого файла или каталога нет
Обратите внимание, что этот файл находится именно в этом пути и имеет 777 разрешений. Конец редактирования
Я создаю внешнюю таблицу, указывающую на базу данных Oracle NoSQL, в которой данные хранятся в виде пар ключ-значение.
Обратите внимание, что для этого примера я помещаю каждый каталог в / tmp, к которому могут получить доступ все пользователи на уровне ОС, поэтому мы устраняем любые проблемы, связанные с разрешениями ОС
Сначала я создаю два виртуальных каталога в SQL-разработчике, предоставляю разрешения моему пользователю (nosqluser) и, конечно, создаю внешнюю таблицу:
CREATE DIRECTORY ext_tab AS '/tmp/tweet-dataloc';
CREATE DIRECTORY nosql_bin_dir AS '/tmp/processor';
GRANT READ, WRITE ON DIRECTORY ext_tab TO nosqluser;
GRANT READ, EXECUTE ON DIRECTORY nosql_bin_dir TO nosqluser;
А потом я создаю таблицу следующим образом:
CREATE TABLE "NOSQLUSER"."TWEETS3"
("CREATED_AT" VARCHAR2(80 BYTE),
"ID_STR" VARCHAR2(80 BYTE),
"TEXT" VARCHAR2(200 BYTE),
"NAME" VARCHAR2(80 BYTE),
"LOCATION" VARCHAR2(80 BYTE),
"VERIFIED" VARCHAR2(80 BYTE),
"FOLLOWERS_COUNT" NUMBER,
"FRIENDS_COUNT" NUMBER,
"LISTED_COUNT" NUMBER,
"FAVOURITES_COUNT" NUMBER,
"STATUSES_COUNT" NUMBER,
"CREATED_AT_USER" VARCHAR2(80 BYTE),
"COUNTRY" VARCHAR2(80 BYTE),
"COUNTRY_CODE" VARCHAR2(80 BYTE),
"FULL_NAME_PLACE" VARCHAR2(80 BYTE),
"NAME_PLACE" VARCHAR2(80 BYTE),
"PLACE_TYPE" VARCHAR2(80 BYTE),
"IS_QUOTE_STATUS" VARCHAR2(80 BYTE),
"QUOTE_COUNT" NUMBER,
"REPLY_COUNT" NUMBER,
"FAVORITE_COUNT" NUMBER,
"RETWEET_COUNT" NUMBER,
"FAVORITED" VARCHAR2(80 BYTE),
"RETWEETED" VARCHAR2(80 BYTE),
"FILTER_LEVEL" VARCHAR2(80 BYTE),
"LANG" VARCHAR2(80 BYTE),
"TIMESTAMP_MS" VARCHAR2(80 BYTE)
)
ORGANIZATION EXTERNAL(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY "EXT_TAB2"
ACCESS PARAMETERS(
records delimited by newline
preprocessor nosql_bin_dir2:'nosql_stream'
fields terminated by '|'
missing field values are null
reject rows with all null fields
)
LOCATION ('nosql.dat')
)
REJECT LIMIT UNLIMITED ;
Наконец, я покажу вам, как выглядят мои файлы сценариев nosql_stream и nosql.dat:
/ TMP / процессор / nosql_stream:
#!/bin/bash
export PATH=$PATH:/usr/java/latest/bin
export CLASSPATH=/home/oracle/processor/*
java oracle.kv.exttab.Preproc $*
/ TMP / твит-dataloc / nosql.dat:
<config version="1">
<component name="publish" type="params" validate="true">
<property name="oracle.kv.exttab.connection.url" value="jdbc:oracle:thin:/@//relacional:1521/ORCLPDB1.localdomain" type="STRING"/>
<property name="oracle.kv.exttab.connection.user" value="nosqluser" type="STRING"/>
<property name="oracle.kv.exttab.tableName" value="nosqluser.tweets2" type="STRING"/>
</component>
<component name="nosql_stream" type="params" validate="true">
<property name="oracle.kv.exttab.externalTableFileNumber" value="0" type="INT"/>
<property name="oracle.kv.exttab.totalExternalTableFiles" value="1" type="INT"/>
<property name="oracle.kv.formatterClass" value="formatter.TweetFormatter" type="STRING"/>
<property name="oracle.kv.hosts" value="bequi_kvlite_1:5000" type="STRING"/>
<property name="oracle.kv.kvstore" value="kvstore" type="STRING"/>
</component>
</config>
Этот последний файл создается с помощью функции публикации, выполняемой в конце базы данных NoSQL. Вы можете следить за процессом здесь .
Теперь, проблема даже при том, что записи обрабатываются так, как вы можете видеть здесь:
Пт 10 мая 08:16:34 +0000 2019 | 1126762942307811331 | RT @annknownityy: Будущий врач, юрист, инженер, медтехник, медсестра, кпк, психолог, дипломат, биолог, преподаватель, архитектор, в офисе? Сикамор Девушка? | Caloocan Город, Национальный Capita | false | 85 | 190 | 0 | 7804 | 3131 | Сб 21 марта 00:09:46 +0000 2015 |||||| false | 0 | 0 | 0 | 0 | false | ложная | низкая | ан | 1557476194346
Пт 10 мая 08:16:34 +0000 2019 | 1126762943347953664 | Университет
Расписание занятий в школе в Ибадане (UI) на учебную сессию 2018/2019?
http somelink? Учить
Подробнее | OlusegunFapohunda | Земля | Ложь | 592 | 5 | 3 | 104 | 6851 | Чт 11 февраля
21:49:57 +0000
2010 |||||| ложь | 0 | 0 | 0 | 0 | ложь | ложная | низкая | ан | 1557476194594
Пт 10 мая 08:16:34 +0000 2019 | 1126762943498948609 | RT @ zinadabo1: Pls
нам нужна помощь, мне только что сообщили, что Ротими Акередолу увеличил Ondo
обучение в государственном университете от 35 тыс. до 150 тыс.
Данные недоступны. Когда я делаю «SELECT * FROM nosqluser.tweets3», я получаю:
RA-29913: ошибка при выполнении вызова из ODCIEXTTABLEFETCH
ORA-29400: ошибка в данных корзины
KUP-04004: ошибка чтения файла /tmp/tweet-dataloc/nosql.dat
Так как регистры показаны, я знаю, что база данных NoSQL доступна, и данные отформатированы и прочитаны правильно. На самом деле, до этого процесс должен быть завершен, так почему я не могу получить доступ к своим данным?