doris 数据导入、数据权限、资源管理

服务器环境

172.16.10.65 node1 (fe)

172.16.10.66 node2(be)

172.16.10.75 node3(be)

172.16.10.76 node4(be)

安装目录

doris

home/apps/doris-2.1.1

启动命令

# FE(65服务器)
/home/apps/doris-2.1.1/fe/bin/start_fe.sh --daemon
# BE (66服务器)
sh /home/apps/start/doris.sh start

停止命令

# FE(65服务器)
/home/apps/doris-2.1.1/fe/bin/stop_fe.sh
# BE(66服务器)
sh /home/apps/start/doris.sh stop

doris jdbc

172.16.10.65 9030 root/

HTTPS 安全传输 **

HTTP 安全传输 - Apache Doris

stream load 内部流程

高危sql限制

高危 SQL 限制 - Apache Doris

正则限制

Kill Query

Kill Query - Apache Doris

扫描超时连接

监控和报警

监控和报警 - Apache Doris

Doris 使用 PrometheusGrafana 进行监控项的采集和展示。

服务自动拉起

服务自动拉起 - Apache Doris

本文档主要介绍如何配置 Doris 集群的自动拉起,保证生产环境中出现特殊情况导致服务宕机后未及时拉起服务从而影响到业务的正常运行。

数据库读写权限 ***

认证和鉴权 - Apache Doris

每个用户一个独立数据库,自己的库可以读写,主库只能读

服务器资源权限 ***

SET-PROPERTY - Apache Doris

用户cpu、内存、超时限制

审计日志插件 **

审计日志插件 - Apache Doris

用户sql记录

导入方式

​
curl --location-trusted \
-u root: \
-H "label:test1" \
-H "column_separator:," \
-H "columns: c1,c2,c3,c4,c5,c6,part_id = c1,month_id =c2,day_id =c3,prov_id = md5(c4),area_id =c5,create_time = c6,xxxx = md5(c3)"-H"label:11"\
-T test.csv \
http://localhost:8030/api/test/TESTXX/_stream_load
# BUG
curl  --location-trusted \
-u root: \
-T /home/apps/testdata1/test.csv  \
-H "label:test1" \
-H "sql:insert into test.TESTXX(part_id,month_id,day_id ,prov_id,area_id,create_time,xxxx) select c1,TO_BASE64(SM4_ENCRYPT(c2,'xxxxx')),c3,c4,c5,c6,md5(c2) from http_stream('format' = 'CSV', 'column_separator' = ',' ) " \
http://localhost:8030/api/_http_stream
​
{
    "TxnId": 87810,
    "Label": "11",
    "Comment": "",
    "TwoPhaseCommit": "false",
    "Status": "Success",
    "Message": "OK",
    "NumberTotalRows": 9,
    "NumberLoadedRows": 9,
    "NumberFilteredRows": 0,
    "NumberUnselectedRows": 0,
    "LoadBytes": 504,
    "LoadTimeMs": 363,
    "BeginTxnTimeMs": 0,
    "StreamLoadPutTimeMs": 5,
    "ReadDataTimeMs": 0,
    "WriteDataTimeMs": 338,
    "CommitAndPublishTimeMs": 17
}
{
    "TxnId": 87812,
    "Label": "112",
    "Comment": "",
    "TwoPhaseCommit": "false",
    "Status": "Fail",
    "Message": "[DATA_QUALITY_ERROR]too many filtered rows",
    "NumberTotalRows": 9,
    "NumberLoadedRows": -9,
    "NumberFilteredRows": 18,
    "NumberUnselectedRows": 0,
    "LoadBytes": 504,
    "LoadTimeMs": 128,
    "BeginTxnTimeMs": 0,
    "StreamLoadPutTimeMs": 16,
    "ReadDataTimeMs": 0,
    "WriteDataTimeMs": 110,
    "CommitAndPublishTimeMs": 0,
    "ErrorURL": "http://172.16.10.66:8040/api/_load_error_log?file=__shard_54/error_log_insert_stmt_564669773e05b944-2d7a303f7cb98396_564669773e05b944_2d7a303f7cb98396"
}
//  label: 一次导入的标签,相同标签的数据无法多次导入。用户可以通过指定Label的方式来避免一份数据重复导入的问题。
//  当前Doris内部保留30分钟内最近成功的label。
​
//  max_filter_ratio:最大容忍可过滤(数据不规范等原因)的数据比例。默认零容忍。数据不规范不包括通过 where 条件过滤掉的行。
​
//  exec_mem_limit: 导入内存限制。默认为 2GB。单位为字节。如果并发导入过多,可能会导致内存不足。
​
//  skip_lines: 整数类型, 默认值为0, 含义为跳过csv文件的前几行. 当设置format设置为 csv_with_names 或、csv_with_names_and_types 时, 该参数会失效.
​
//  sql: 数据tvf转换方法 2.1版本新特性,tvf产生的字段名 c1-c2------cn
//  column_separator:用于指定导入文件中的列分隔符,默认为\t。如果是不可见字符,则需要加\x作为前缀,使用十六进制来表示分隔符。
//  如hive文件的分隔符\x01,需要指定为-H "column_separator:\x01"。
​
//  strict_mode 严格模式,由于数据库设置了字段类型,在由文本中的字符串数据转换到数据库字段类型失败时,严格模式会认为该条数据是错误数据。

3

### 将ORC格式的数据导入Doris数据库的方法 #### 使用DataX工具进行数据迁移 对于将ORC格式文件中的数据迁移到Doris数据库的任务,可以借助阿里巴巴开源的大规模离线数据同步工具——DataX来实现。通过编写特定配置文件并执行Python脚本来启动此过程[^1]。 ```bash python gen_import_config.py -d doris_database_name -t target_table_name ``` 上述命令用于生成针对目标表的导入配置模板;其中`-d`参数指定目的端所在的数据库名称而`-t`则指明具体要写入哪张表格内。不过需要注意的是,在实际操作前还需进一步调整该配置文档以适应源ORC文件路径以及字段映射关系等细节情况。 #### 配置JSON设置项解析 为了使DataX能够识别来自HDFS上的ORC文件作为输入插件(reader),并且正确无误地把记录送至Apache Doris(即Palo)接收方(writer), 用户应当精心准备一份描述详尽的JSON格式设定档。下面给出了一部分关键性的选项说明: - **job.content[0].reader.name**: 应当被设为`hdfssync`, 表示采用适用于读取分布式文件系统的组件。 - **job.content[0].reader.parameter.path**: 此处需填写待处理ORC文件于Hadoop集群里的绝对地址,支持通配符匹配多个分区下的对象集合。 - **job.content[0].writer.name**: 设置成`dorissync`表明选用专门面向Doris的服务接口完成最终的数据落地工作。 - **job.content[0].writer.parameter.tableName**: 明确指出远程SQL引擎内部的目标逻辑结构体标识符(即Schema名加表名组合)。 - **job.content[0].column[]**: 列出所有参与传输列的名字及其对应类型转换规则,确保两端之间的一致性和兼容性。 #### Apache Flink的角色补充说明 尽管Flink主要服务于流计算场景,但在某些情况下也可以利用其批模式作业能力配合Table API来进行ETL流程开发。如果项目环境中已经部署有较为成熟的Flink生态,则不妨考虑将其纳入考量范围之内。特别是那些体积庞大、复杂度高的半结构化存储介质向关系型仓库转化的需求场合下,Flink凭借强大的表达能力和灵活多变的操作语义或许能提供额外的价值主张[^2]。 然而就单纯解决本次提出的关于Orc转储进入Doris的问题而言,优先推荐基于DataX构建解决方案会更加直接有效一些。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值