DataX 첫 추출 데이터 기록 오류 처리 (원본 라 이브 러 리, 대상 라 이브 러 리 모두 연결 실패)
56779 단어 빅 데이터
/opt/module/dataX
cd /opt/module/dataX
python bin/datax.py -r mysqlreader -w mysqlwriter
DataX (DATAX-OPENSOURCE-3.0), From Alibaba !
Copyright (C) 2010-2017, Alibaba Group. All Rights Reserved.
Please refer to the mysqlreader document:
https://github.com/alibaba/DataX/blob/master/mysqlreader/doc/mysqlreader.md
Please refer to the mysqlwriter document:
https://github.com/alibaba/DataX/blob/master/mysqlwriter/doc/mysqlwriter.md
Please save the following configuration as a json file and use
python {DATAX_HOME}/bin/datax.py {JSON_FILE_NAME}.json
to run the job.
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"column": [],
"connection": [
{
"jdbcUrl": [],
"table": []
}
],
"password": "",
"username": "",
"where": ""
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"column": [],
"connection": [
{
"jdbcUrl": "",
"table": []
}
],
"password": "",
"preSql": [],
"session": [],
"username": "",
"writeMode": ""
}
}
}
],
"setting": {
"speed": {
"channel": ""
}
}
}
}
vim job/mysql2mysql.json
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"column": [
"etpsname",
"etpsno"
],
"connection": [
{
"jdbcUrl": [
"jdbc:mysql://***.***.***.***:3306/bigdata?useUnicode=true&characterEncoding=utf8"
],
"table": [
"etps_no"
]
}
],
"password": " ",
"username": "cigar",
"where": "id <=1000 "
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"column": [
"etps_name",
"etps_no"
],
"connection": [
{
"jdbcUrl": "jdbc:mysql://192.168.0.102:3306/datax?useUnicode=true&characterEncoding=utf8",
"table": [
"etps_no"
]
}
],
"password": "root",
"preSql": [],
"session": [],
"username": "root",
"writeMode": "insert"
}
}
}
],
"setting": {
"speed": {
"channel": "1"
}
}
}
}
실행 및 디 버 깅
첫 번 째 실행 (원본 라 이브 러 리 연결 실패)
운행 하 다.
python bin/datax.py job/mysql2mysql.json
잘못 을 보고 하 다
2020-03-09 15:40:00.703 [job-0] WARN DBUtil - test connection of [jdbc:mysql://122.51.161.234:3306/bigdata?useUnicode=true&characterEncoding=utf8] failed, for Code:[DBUtilErrorCode-10], Description:[ . 、 、 、IP、Port DBA ( ).]. - :com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server..
2020-03-09 15:40:00.708 [job-0] ERROR RetryUtil - Exception when calling callable, Msg:DataX , :1) ip/port/database/jdbc , 。2) username/password , 。 DBA 。
java.lang.Exception: DataX , :1) ip/port/database/jdbc , 。2) username/password , 。 DBA 。
at com.alibaba.datax.plugin.rdbms.util.DBUtil$2.call(DBUtil.java:71) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.DBUtil$2.call(DBUtil.java:51) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.common.util.RetryUtil$Retry.call(RetryUtil.java:164) ~[datax-common-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.common.util.RetryUtil$Retry.doRetry(RetryUtil.java:111) ~[datax-common-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.common.util.RetryUtil.executeWithRetry(RetryUtil.java:30) [datax-common-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.DBUtil.chooseJdbcUrl(DBUtil.java:51) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.dealJdbcAndTable(OriginalConfPretreatmentUtil.java:92) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.simplifyConf(OriginalConfPretreatmentUtil.java:59) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.doPretreatment(OriginalConfPretreatmentUtil.java:33) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.reader.CommonRdbmsReader$Job.init(CommonRdbmsReader.java:55) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.reader.mysqlreader.MysqlReader$Job.init(MysqlReader.java:37) [mysqlreader-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.job.JobContainer.initJobReader(JobContainer.java:673) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.job.JobContainer.init(JobContainer.java:303) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:113) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.Engine.start(Engine.java:92) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.Engine.entry(Engine.java:171) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.Engine.main(Engine.java:204) [datax-core-0.0.1-SNAPSHOT.jar:na]
원인 분석
public class ConnMysql {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
connToMysql();
}
public static void connToMysql() throws ClassNotFoundException, SQLException {
//
Class.forName("com.mysql.jdbc.Driver");
//
Connection connection = DriverManager.getConnection("jdbc:mysql://***.***.***.***:3306/bigdata?useUnicode=true&characterEncoding=utf8", "cigar", " ");
// SQL
String sql = "select etpsname,etpsno from etps_no limit 100";
Statement statement = connection.createStatement();
//
ResultSet qu = statement.executeQuery(sql);
//
while (qu.next()){
String etpsName = qu.getString("etpsname");
String etpsNo = qu.getString("etpsno");
System.out.println(etpsName + " => " + etpsNo);
}
//
statement.close();
connection.close();
}
}
이 코드 는 연결 에 성공 하고 결 과 를 조회 할 수 있 으 며 JDBC 연결 에 문제 가 없 으 며 다른 곳 에서 오 류 를 찾 아야 한 다 는 뜻 입 니 다.
문제 해결
MySQL 드라이버 보기
ll /opt/module/dataX/plugin/reader/mysqlreader/libs
-rw-r--r--. 1 62265 users 518641 11 24 2017 commons-collections-3.0.jar
-rw-r--r--. 1 62265 users 185140 11 24 2017 commons-io-2.4.jar
-rw-r--r--. 1 62265 users 412739 11 24 2017 commons-lang3-3.3.2.jar
-rw-r--r--. 1 62265 users 1599627 11 24 2017 commons-math3-3.1.1.jar
-rw-r--r--. 1 62265 users 95053 11 24 2017 datax-common-0.0.1-SNAPSHOT.jar
-rw-r--r--. 1 62265 users 1952759 11 24 2017 druid-1.0.15.jar
-rw-r--r--. 1 62265 users 372746 11 24 2017 fastjson-1.1.46.sec01.jar
-rw-r--r--. 1 62265 users 934783 11 24 2017 guava-r05.jar
-rw-r--r--. 1 62265 users 45024 11 24 2017 hamcrest-core-1.3.jar
-rw-r--r--. 1 62265 users 264600 11 24 2017 logback-classic-1.0.13.jar
-rw-r--r--. 1 62265 users 418870 11 24 2017 logback-core-1.0.13.jar
-rw-r--r--. 1 62265 users 960372 11 24 2017 mysql-connector-java-5.1.34.jar
-rw-r--r--. 1 62265 users 95960 11 24 2017 plugin-rdbms-util-0.0.1-SNAPSHOT.jar
-rw-r--r--. 1 62265 users 32119 11 24 2017 slf4j-api-1.7.10.jar
mysql-connector-java-5.1.34.jar
ll /opt/module/dataX/plugin/reader/mysqlreader/libs
-rw-r--r--. 1 62265 users 518641 11 24 2017 commons-collections-3.0.jar
-rw-r--r--. 1 62265 users 185140 11 24 2017 commons-io-2.4.jar
-rw-r--r--. 1 62265 users 412739 11 24 2017 commons-lang3-3.3.2.jar
-rw-r--r--. 1 62265 users 1599627 11 24 2017 commons-math3-3.1.1.jar
-rw-r--r--. 1 62265 users 95053 11 24 2017 datax-common-0.0.1-SNAPSHOT.jar
-rw-r--r--. 1 62265 users 1952759 11 24 2017 druid-1.0.15.jar
-rw-r--r--. 1 62265 users 372746 11 24 2017 fastjson-1.1.46.sec01.jar
-rw-r--r--. 1 62265 users 934783 11 24 2017 guava-r05.jar
-rw-r--r--. 1 62265 users 45024 11 24 2017 hamcrest-core-1.3.jar
-rw-r--r--. 1 62265 users 264600 11 24 2017 logback-classic-1.0.13.jar
-rw-r--r--. 1 62265 users 418870 11 24 2017 logback-core-1.0.13.jar
-rw-r--r--. 1 62265 users 960372 11 24 2017 mysql-connector-java-5.1.34.jar.bak
-rw-r--r--. 1 root root 2321813 3 9 00:54 mysql-connector-java-8.0.17.jar
-rw-r--r--. 1 62265 users 95960 11 24 2017 plugin-rdbms-util-0.0.1-SNAPSHOT.jar
-rw-r--r--. 1 62265 users 32119 11 24 2017 slf4j-api-1.7.10.jar
두 번 째 실행 (대상 라 이브 러 리 연결 실패)
운행 하 다.
python bin/datax.py job/mysql2mysql.json
잘못 을 보고 하 다
2020-03-09 01:29:50.995 [job-0] ERROR RetryUtil - Exception when calling callable, Msg:Code:[MYSQLErrCode-01], Description:[ , DBA ]. - :root :java.sql.SQLException: Access denied for user 'root'@'DESKTOP-OEAO22T' (using password: YES)
com.alibaba.datax.common.exception.DataXException: Code:[MYSQLErrCode-01], Description:[ , DBA ]. - :root :java.sql.SQLException: Access denied for user 'root'@'DESKTOP-OEAO22T' (using password: YES)
at com.alibaba.datax.common.exception.DataXException.asDataXException(DataXException.java:26) ~[datax-common-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.RdbmsException.asConnException(RdbmsException.java:21) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.DBUtil.connect(DBUtil.java:394) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.DBUtil.connect(DBUtil.java:384) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.DBUtil.access$000(DBUtil.java:22) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.DBUtil$3.call(DBUtil.java:322) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.DBUtil$3.call(DBUtil.java:319) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.common.util.RetryUtil$Retry.call(RetryUtil.java:164) ~[datax-common-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.common.util.RetryUtil$Retry.doRetry(RetryUtil.java:111) ~[datax-common-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.common.util.RetryUtil.executeWithRetry(RetryUtil.java:30) [datax-common-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.DBUtil.getConnection(DBUtil.java:319) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.DBUtil.getConnection(DBUtil.java:303) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.JdbcConnectionFactory.getConnecttion(JdbcConnectionFactory.java:27) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.writer.util.OriginalConfPretreatmentUtil.dealColumnConf(OriginalConfPretreatmentUtil.java:105) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.writer.util.OriginalConfPretreatmentUtil.dealColumnConf(OriginalConfPretreatmentUtil.java:140) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.writer.util.OriginalConfPretreatmentUtil.doPretreatment(OriginalConfPretreatmentUtil.java:35) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter$Job.init(CommonRdbmsWriter.java:41) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.writer.mysqlwriter.MysqlWriter$Job.init(MysqlWriter.java:31) [mysqlwriter-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.job.JobContainer.initJobWriter(JobContainer.java:704) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.job.JobContainer.init(JobContainer.java:304) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:113) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.Engine.start(Engine.java:92) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.Engine.entry(Engine.java:171) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.Engine.main(Engine.java:204) [datax-core-0.0.1-SNAPSHOT.jar:na]
원인 분석
키워드 포 지 셔 닝 을 통 해 DataX 프로그램 이 기록 할 때 이 컴퓨터 에 연 결 된 MySQL 이 거부 되 었 다 는 것 은 네트워크 가 원활 하고 MySQL 의 권한 에 의 해 거부 되 었 음 을 나타 낸다.이전에 리 눅 스 환경 에서 사용 한 MySQL 8.0 을 연상 시 키 고 MySQL 8.0 버 전 은 권한 제어 가 엄격 합 니 다. 루트 사용 자 는 기본 적 인 상황 에서 로 컬 로그 인 만 허용 합 니 다.
추측 을 검증 하 다
mysql -uroot -proot
mysql> use mysql;
mysql> select user,host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
이 결과 루트 사용 자 는 localhost 에 만 로그 인 할 수 있 고 원 격 로그 인 을 허용 하지 않 아 DataX 가 기록 할 때 연결 에 실 패 했 습 니 다.
해결 방안
문 제 를 해결 하 다
mysql> create user zhangsan identified by ' ';
mysql> select user,host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| zhangsan | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
mysql> alter user 'zhangsan'@'%' identified with mysql_native_password by ' ';
mysql> grant all privileges on *.* to cigar@'%';
설명: 이 곳 은 새로운 사용자 에 게 루트 사용자 에 해당 하 는 모든 권한 을 부여 합 니 다.안전 을 위해 서 는 기본 적 인 첨삭 검사 권한 만 부여 하면 된다.
"writer": {
"name": "mysqlwriter",
"parameter": {
"column": [
"etps_name",
"etps_no"
],
"connection": [
{
"jdbcUrl": "jdbc:mysql://192.168.0.102:3306/datax?useUnicode=true&characterEncoding=utf8",
"table": [
"etps_no"
]
}
],
"password": " ",
"preSql": [
"truncate table etps_no;"
],
"session": [],
"username": "zhangsan",
"writeMode": "insert"
}
}
세 번 째 실행 (대상 라 이브 러 리 연결 실패)
운행 하 다.
python bin/datax.py job/mysql2mysql.json
잘못 을 보고 하 다
com.alibaba.datax.common.exception.DataXException: Code:[DBUtilErrorCode-10], Description:[ . 、 、 、IP、Port DBA ( ).]. - :java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
at com.alibaba.datax.common.exception.DataXException.asDataXException(DataXException.java:26) ~[datax-common-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.RdbmsException.asConnException(RdbmsException.java:23) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.DBUtil.connect(DBUtil.java:394) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.DBUtil.connect(DBUtil.java:384) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.DBUtil.access$000(DBUtil.java:22) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.DBUtil$3.call(DBUtil.java:322) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.DBUtil$3.call(DBUtil.java:319) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.common.util.RetryUtil$Retry.call(RetryUtil.java:164) ~[datax-common-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.common.util.RetryUtil$Retry.doRetry(RetryUtil.java:111) ~[datax-common-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.common.util.RetryUtil.executeWithRetry(RetryUtil.java:30) [datax-common-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.DBUtil.getConnection(DBUtil.java:319) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.DBUtil.getConnection(DBUtil.java:303) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.JdbcConnectionFactory.getConnecttion(JdbcConnectionFactory.java:27) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.writer.util.OriginalConfPretreatmentUtil.dealColumnConf(OriginalConfPretreatmentUtil.java:105) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.writer.util.OriginalConfPretreatmentUtil.dealColumnConf(OriginalConfPretreatmentUtil.java:140) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.writer.util.OriginalConfPretreatmentUtil.doPretreatment(OriginalConfPretreatmentUtil.java:35) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter$Job.init(CommonRdbmsWriter.java:41) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.writer.mysqlwriter.MysqlWriter$Job.init(MysqlWriter.java:31) [mysqlwriter-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.job.JobContainer.initJobWriter(JobContainer.java:704) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.job.JobContainer.init(JobContainer.java:304) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:113) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.Engine.start(Engine.java:92) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.Engine.entry(Engine.java:171) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.Engine.main(Engine.java:204) [datax-core-0.0.1-SNAPSHOT.jar:na]
원인 분석
키워드 포 지 셔 닝 을 통 해 알 수 있 듯 이 시간 대 문제 일 수 있 습 니 다. 전에 비슷 한 문제 가 발생 했 기 때문에 jdbc 연결 매개 변수 에 시간 대 를 추가 하면 됩 니 다.
문 제 를 해결 하 다
writer jdbc 연결 편집
"writer": {
"name": "mysqlwriter",
"parameter": {
"column": [
"etps_name",
"etps_no"
],
"connection": [
{
"jdbcUrl": "jdbc:mysql://192.168.0.102:3306/datax?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC",
"table": [
"etps_no"
]
}
],
"password": " ",
"preSql": [
"truncate table etps_no;"
],
"session": [],
"username": "zhangsan",
"writeMode": "insert"
}
}
네 번 째 실행 (성공)
운행 하 다.
명령 을 사용 하여 실행 을 시작 하 다
python bin/datax.py job/mysql2mysql.json
실행 결과
2020-03-09 01:34:02.251 [job-0] INFO JobContainer -
: 2020-03-09 01:33:49
: 2020-03-09 01:34:02
: 12s
: 1.76KB/s
: 100rec/s
: 1000
: 0
BinGo!드디어 성공!
총결산
mysql-connector-java-8.0.17.jar
연결 에 성공 하고 데 이 터 를 얻 을 수 있 습 니 다. mysql-connector-java-5.1.6.jar
, 데이터베이스 연결 실패 이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
spark 의 2: 원리 소개Google Map/Reduce 를 바탕 으로 이 루어 진 Hadoop 은 개발 자 에 게 map, reduce 원 어 를 제공 하여 병렬 일괄 처리 프로그램 을 매우 간단 하고 아름 답 게 만 들 었 습 니 다.S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.