外部建立权限问题

使用的是obd单机安装 版本4.3.5
我想要将本地的parquet文件导入到oceanbase数据库 采用了外表的方式
但是创建外部时报错
ERROR 9731 (HY000): insufficient privileges to do direct path access

目前尝试了将parquet的目录权限设置为了777
以及更改配置文件添加secure_file_priv : /root/parquet_dir在最后一行
oceanbase-ce:
servers:

  • 127.0.0.1
    global:
    home_path: /root/oceanbase-ce
    appname: demo
    cluster_id: 1766925525
    root_password: 123456
    scenario: express_oltp
    enable_syslog_wf: false
    max_syslog_file_count: 16
    production_mode: false
    memory_limit: 4G
    __min_full_resource_pool_memory: 1073741824
    system_memory: 1G
    cpu_count: 2
    datafile_size: 1G
    datafile_maxsize: 4G
    datafile_next: 2G
    log_disk_size: 14G
    secure_file_priv : /root/parquet_dir

以下是我的外表建表语句
CREATE EXTERNAL TABLE order_detail_parquet_ext (
order_id bigint(20),
user_id bigint(20),
product_id bigint(20),
order_time datetime,
user_name varchar(100),
product_name varchar(200),
category_id int(11),
category_name varchar(100),
brand varchar(100),
unit_price decimal(10,2),
quantity int(11),
subtotal decimal(10,2),
discount decimal(10,2),
shipping_fee decimal(10,2),
total_amount decimal(10,2),
pay_time datetime,
shipping_address varchar(500),
city varchar(50),
province varchar(50),
payment_method varchar(50),
payment_status varchar(20),
order_status varchar(20),
platform varchar(50),
coupon_code varchar(50),
remark varchar(500)
)
– 本地 Parquet 文件目录(4.3.5 版本支持 file:// 协议)
LOCATION = ‘file:///root/parquet_dir/’
– 无多余逗号的 FORMAT 子句,指定 Parquet 格式
FORMAT = (
TYPE = ‘PARQUET’
)
– 匹配所有 .parquet 后缀文件(可选,Parquet 格式默认兼容)
PATTERN = ‘.*.parquet’;

如果有更好的方式能将parquet导入到oceanbase也烦请告知
如果有更好的方式能将parquet导入到oceanbase也烦请告知

1 个赞

secure_file_priv参数是否设置了?
将parquet导入到oceanbase可以试试使用obloader导入工具

1 个赞

访问权限的问题吧

没设置安全目录吧

Load data
obloader
ODC

这是个 global 变量,
你设置变量后,有没有重新连接会话

检查环境变量呢

应该是访问权限不对吧,/root/parquet_dir路径,即使parquet_dir目录是777,但OceanBase没法访问root目录。 可以换一个目录试试,如/tmp/parquet_dir