Как упоминалось в заголовке, я пытаюсь запросить данные, хранящиеся в mongodb в базе данных oracle. Для этого я создал внешнюю таблицу в кусте:
CREATE EXTERNAL TABLE MYCOLLECION_HIVE_EXT(ID string, MY_COLUMN string)
STORED BY 'com.mongodb.hadoop.hive.MongoStorageHandler'
WITH SERDEPROPERTIES('mongo.columns.mapping'='{"ID":"_id","MY_COLUMN":"my_column"}')
TBLPROPERTIES('mongo.uri'='mongodb://bigdatalite.localdomain:27017/mydatabase.mycollection');
И в oracle я создал внешнюю таблицу, указывающую на эту внешнюю таблицу улья:
CREATE TABLE MYCOLLECION_HIVE_ORACLE_EXT(
ID VARCHAR2(60),
MY_COLUMN VARCHAR2(60)
)
ORGANIZATION EXTERNAL (
TYPE ORACLE_HIVE
DEFAULT DIRECTORY ORACLE_BIGDATA_CONFIG
ACCESS PARAMETERS
(
com.oracle.bigdata.tablename=default.MYCOLLECION_HIVE_EXT
)
)
REJECT LIMIT UNLIMITED;
Когда я выполнить запрос, подобный SELECT * from MYCOLLECTION_HIVE_EXT
в HIVE
, он возвращает все данные, но когда я запускаю этот запрос в ORACLE
: SELECT * from MYCOLLECTION_HIVE_ORACLE_EXT
, он возвращает строки не выбраны и ошибки нет показывая.
Среда, которую я использовал, - это виртуальная машина bigdatalite из oracle.
Однако, когда, например, Hive указывает на oracle no sql, запрос от oracle возвращает строки.
Кто-нибудь из вас сталкивался с этой проблемой?