网站备案为什么 没有批复文件重庆最新新闻事件火

当前位置: 首页 > news >正文

网站备案为什么 没有批复文件,重庆最新新闻事件火,建设网站怎么挣钱,带有网站开发的图片数据导入 1.概述 Apache Doris 提供多种数据导入方案#xff0c;可以针对不同的数据源进行选择不同的数据导入方式。 数据源导入方式对象存储#xff08;s3#xff09;,HDFS使用 Broker 导入数据本地文件Stream Load, MySQL LoadKafka订阅 Kafka 数据Mysql、PostgreSQL可以针对不同的数据源进行选择不同的数据导入方式。 数据源导入方式对象存储s3,HDFS使用 Broker 导入数据本地文件Stream Load, MySQL LoadKafka订阅 Kafka 数据Mysql、PostgreSQLOracleSQLServer通过外部表同步数据通过 JDBC 导入使用 JDBC 同步数据导入 JSON 格式数据JSON 格式数据导入AutoMQAutoMQ Load 按导入方式划分 Broker Load通过 Broker 导入外部存储数据Stream Load流式导入数据 (本地文件及内存数据)Routine Load导入 Kafka 数据Insert Into外部表通过 INSERT 方式导入数据S3 LoadS3 协议的对象存储数据导入MySQL LoadMySQL 客户端导入本地数据 支持的数据格式 : 不同的导入方式支持的数据格式略有不同。 导入方式支持的格式Broker Loadparquet, orc, csv, gzipStream Loadcsv, json, parquet, orcRoutine Loadcsv, jsonMySQL Loadcsv Apache Doris 的每一个导入作业不论是使用 Broker Load 进行批量导入还是使用 INSERT 语句进行单条导入都是一个完整的事务操作。导入事务可以保证一批次内的数据原子生效不会出现部分数据写入的情况。 同时一个导入作业都会有一个 Label用于在一个数据库Database下唯一标识一个导入作业。Label 可以由用户指定部分导入功能也会由系统自动生成。 Label 是用于保证对应的导入作业仅能成功导入一次。一个被成功导入的 Label再次使用时会被拒绝并报错 Label already used。通过这个机制可以在 Doris 侧做到 At-Most-Once 语义。如果结合上游系统的 At-Least-Once 语义则可以实现导入数据的 Exactly-Once 语义。 导入方式分为同步和异步。对于同步导入方式返回结果即表示导入成功还是失败。而对于异步导入方式返回成功仅代表作业提交成功不代表数据导入成功需要使用对应的命令查看导入作业的运行状态。 2.Insert 导入 INSERT INTO 支持将 Doris 查询的结果导入到另一个表中。INSERT INTO 是一个同步导入方式执行导入后返回导入结果。可以通过请求的返回判断导入是否成功。INSERT INTO 可以保证导入任务的原子性要么全部导入成功要么全部导入失败。 主要的 Insert Into 命令包含以下两种 INSERT INTO tbl SELECT … INSERT INTO tbl (col1, col2, …) VALUES (1, 2, …), (1,3, …)
这种导入方式并不适用于大量数据的场景性能太差只能测试的时候使用 第一步创建表 CREATE TABLE testdb.test_table(user_id BIGINT NOT NULL COMMENT 用户 ID,name VARCHAR(20) COMMENT 用户姓名,age INT COMMENT 用户年龄 ) DUPLICATE KEY(user_id) DISTRIBUTED BY HASH(user_id) BUCKETS 10;第二步使用 INSERT INTO VALUES 向源表导入数据不推荐在生产环境中使用 INSERT INTO testdb.test_table (user_id, name, age) VALUES (1, Emily, 25),(2, Benjamin, 35),(3, Olivia, 28),(4, Alexander, 60),(5, Ava, 17);INSERT INTO 是一种同步导入方式导入结果会直接返回给用户。 Query OK, 5 rows affected (0.308 sec) {label:label_3e52da787aab4222_9126d2fce8f6d1e5, status:VISIBLE, txnId:9081}也可以通过SELECT 来导入数据 INSERT INTO testdb.test_table2 SELECT * FROM testdb.test_table WHERE age 30; Query OK, 3 rows affected (0.544 sec) {label:label_9c2bae970023407d_b2c5b78b368e78a7, status:VISIBLE, txnId:9084}查看手册https://doris.incubator.apache.org/zh-CN/docs/data-operate/import/insert-into-manual#%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C 3.Stream Load Stream Load 支持通过 HTTP 协议将本地文件或数据流导入到 Doris 中。Stream Load 是一个同步导入方式执行导入后返回导入结果可以通过请求的返回判断导入是否成功。一般来说可以使用 Stream Load 导入 10GB 以下的文件如果文件过大建议将文件进行切分后使用 Stream Load 进行导入。Stream Load 可以保证一批导入任务的原子性要么全部导入成功要么全部导入失败。 Stream Load 支持导入 CSV、JSON、Parquet 与 ORC 格式的数据。在导入 CSV 文件时需要明确区分空值null与空字符串 空值null需要用 \N 表示a,\N,b 数据表示中间列是一个空值null 空字符串直接将数据置空a, ,b 数据表示中间列是一个空字符串
在使用 Stream Load 时需要通过 HTTP 协议发起导入作业给 FE 节点FE 会以轮询方式重定向redirect请求给一个 BE 节点以达到负载均衡的效果。也可以直接发送 HTTP 请求作业给指定的 BE 节点。在 Stream Load 中Doris 会选定一个节点做为 Coordinator 节点。Coordinator 节点负责接受数据并分发数据到其他节点上。 Client 向 FE 提交 Stream Load 导入作业请求 FE 会随机选择一台 BE 作为 Coordinator 节点负责导入作业调度然后返回给 Client 一个 HTTP 重定向 Client 连接 Coordinator BE 节点提交导入请求 Coordinator BE 会分发数据给相应 BE 节点导入完成后会返回导入结果给 Client Client 也可以直接通过指定 BE 节点作为 Coordinator直接分发导入作业
Stream Load 通过 HTTP 协议提交和传输。下例以 curl 工具为例演示通过 Stream Load 提交导入作业。详细语法可以参见 STREAM LOAD 该方式中涉及HOST:PORT都是对应的HTTP协议端口。但须保证客户端所在机器网络能够联通FE,BE所在机器。 BE的HTTP协议端口默认为8040。FE的HTTP协议端口默认为8030。 第一步创建一个数据库和表 CREATE TABLE testdb.test_streamload(user_id BIGINT NOT NULL COMMENT 用户 ID,name VARCHAR(20) COMMENT 用户姓名,age INT COMMENT 用户年龄 ) DUPLICATE KEY(user_id) DISTRIBUTED BY HASH(user_id) BUCKETS 10 PROPERTIES ( replication_allocation tag.location.default: 1 );第二步创建一个load.txt文件,内容如下 1,Emily,25 2,Benjamin,35 3,Olivia,28 4,Alexander,60 5,Ava,17 6,William,69 7,Sophia,32 8,James,64 9,Emma,37 10,Liam,64第三步执行下面命令 curl -u root:123456 -H label:load_local_file_test
-H column_separator:, -T load.txt
http://192.168.220.253:8040/api/testdb/test_streamload/_stream_load-u root:123456 代表的是doris的账号密码label : 标签用来防止重复导入column_separator:, 代表的是数据的分隔符-T load.txt : 要导入的数据http://drois地址:BE端口/api/数据库/数据表/_stream_load 更多的导入参数看配置https://doris.incubator.apache.org/zh-CN/docs/data-operate/import/stream-load-manual#%E5%AF%BC%E5%85%A5%E9%85%8D%E7%BD%AE%E5%8F%82%E6%95%B0 4.Broker Load Stream Load 是一种推的方式即导入的数据依靠客户端读取并推送到 Doris。Broker Load 则是将导入请求发送给 Doris有 Doris 主动拉取数据所以如果数据存储在类似 HDFS 或者 对象存储中则使用 Broker Load 是最方便的。这样数据就不需要经过客户端而有 Doris 直接读取导入。Broker Load 适合源数据存储在远程存储系统比如 HDFS并且数据量比较大的场景比如几十G上百G。 用户在提交导入任务后FE 会生成对应的 Plan 并根据目前 BE 的个数和文件的大小将 Plan 分给 多个 BE 执行每个 BE 执行一部分导入数据。 BE 在执行的过程中会从 Broker 拉取数据在对数据 transform 之后将数据导入系统。所有 BE 均完成导入由 FE 最终决定导入是否成功。 从上图中可以看到BE 会依赖 Broker 进程来读取相应远程存储系统的数据。之所以引入 Broker 进程主要是用来针对不同的远程存储系统用户可以按照 Broker 进程的标准开发其相应的 Broker 进程Broker 进程可以使用 Java 程序开发更好的兼容大数据生态中的各类存储系统。由于 broker 进程和 BE 进程的分离也确保了两个进程的错误隔离提升 BE 的稳定性。 注意使用Broker 导入必须安装和启动 Broker 以及安装和启动HDFS高一点的Doris默认安装好了HDFS我这个版本还需自己安装 5.安装HDFS 第一步下载 hadoop 下载地址https://downloads.apache.org/hadoop/common/ 下载之后进行解压我的解压目录为 /root/hadoop-3.2.4 解压命令如下 tar -zxf hadoop-3.2.4.tar.gz第二步创建数据存储目录 mkdir /root/hadoop-3.2.4/tmp mkdir /root/hadoop-3.2.4/hdfs mkdir /root/hadoop-3.2.4/hdfs/data mkdir /root/hadoop-3.2.4/hdfs/name第四步配置环境变量 vi /etc/profile,加入一下内容 ,保存退出后然后执行命令source /etc/profile让其生效 export HADOOP_HOME/root/hadoop-3.2.4 export PATH\(PATH:\)HADOOP_HOME/bin第四步修改下面五个文件位置在 /root/hadoop-3.2.4/etc/hadoop目录中 hadoop-3.2.4/etc/hadoop/hadoop-env.sh hadoop-3.2.4/etc/hadoop/core-site.xml hadoop-3.2.4/etc/hadoop/hdfs-site.xml hadoop-3.2.4/etc/hadoop/mapred-site.xml hadoop-3.2.4/etc/hadoop/yarn-site.xml每个文件的内容分别如下 第一个 hadoop-env.sh 加入Java的环境变量

The java implementation to use.#export JAVA_HOME${JAVA_HOME}

export JAVA_HOME/usr/java/jdk1.8.0_171-amd64export HDFS_NAMENODE_USERroot export HDFS_DATANODE_USERroot export HDFS_SECONDARYNAMENODE_USERroot修改 core-site.xml 配置文件内容如下 configurationpropertynamefs.defaultFS/namevaluehdfs://机器IP:9000/value####注释 : HDFS的URI文件系统://namenode标识:端口号 /propertypropertynamehadoop.tmp.dir/namevalue/root/hadoop-3.2.4/tmp/value###注释: namenode上本地的hadoop临时文件夹 /property /configuration修改配置文件 hdfs-site.xml 内容如下 configuration propertynamedfs.replication/namevalue1/valuedescription副本个数配置默认是3,应小于datanode机器数量/description/property /configuration 修改配置文件 mapred-site.xml 内容如下 configurationpropertynamemapreduce.framework.name/namevalueyarn/value/property /configuration 修改配置文件 yarn-site.xml 内容如下 configurationpropertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/property /configuration最后进入到安装目录 cd /root/hadoop-3.2.4/ 然后执行下面命令启动HDFS bin/hdfs namenode -format #对 HDFS这个分布式文件系统中的 DataNode 进行分块 sbin/hadoop-daemon.sh start namenode sbin /hadoop-daemon.sh start datanode sbin/hadoop-daemon.sh start secondarynamenode启动之后创建一个文件 test.txt ; 执行测试命令 hadoop fs -put ./test.txt / ,浏览器访问9870端口可以查看文件列表如下 6.通导入数据 第一步创建一个数据文件比如load.text,内容如下 5,xxx,22 6,ooo,33 7,jjj,44 这三个列对应了我Doris中的数据库和表 testdb.test_streamload 然后执行命令把 load.txt 上传到HDFS中 hadoop fs -put ./load.txt /第二步执行命令把HDFS上的load.txt 数据导入到Doris中,访问 http://ip:8030/ 通过界面导入如下 LOAD LABEL testdb.lable_test_streamload //标签用来判断重复的(DATA INFILE(hdfs://192.168.220.253:9000/load.txt) //HDFS上的数据文件INTO TABLE test_streamload //表名COLUMNS TERMINATED BY , //数据分隔符 (user_id,name,age) //数据对应的列)with HDFS (fs.defaultFShdfs://192.168.220.253:9000, //hdfs默认地址hdfs_userroot //hdfs用户名)PROPERTIES(timeout1200,max_filter_ratio0.1);执行后效果如下 然后通过select * from test_streamload 即可查看导入的数据 数据的导出 数据导出Export是 Doris 提供的一种将数据导出的功能。该功能可以将用户指定的表或分区的数据以文本的格式通过 Broker 进程导出到远端存储上如 HDFS / 对象存储支持 S3 协议等。 访问http://192.168.220.253:8030/ 执行导出命令 EXPORT TABLE testdb.test_streamload //导出的数据库和表 PARTITION (test_streamload) //分区多个分区用逗号分开 TO hdfs://192.168.220.253:9000/test_streamload //HDFS地址后面是表名 PROPERTIES (label mylabel, //标签column_separator,, //分隔符columns user_id,username,age, //导出的字段名exec_mem_limit2147483648, timeout 3600 ) WITH BROKER fs_broker // brocker的名字 (username root,password123456 );查看分区命令show PARTITIONS from 数据库.表;fs_broker Brocker的名字可以在 doris控制台界面的 system中查看label本次导出作业的标识。后续可以使用这个标识查看作业状态column_separator列分隔符。默认为 \t。支持不可见字符比如 ‘\x07’columns要导出的列使用英文状态逗号隔开如果不填这个参数默认是导出表的所有列。exec_mem_limit表示 Export 作业中一个查询计划在单个 BE 上的内存使用限制。默认 2GB。单位字节。timeout作业超时时间。默认 2 小时。单位秒。 执行成功后可以通过HDFS控制台查看导出的文件
文章结束如果对你有所帮助请收藏加好评哦