Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
ihooyah-flume
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄杰
ihooyah-flume
Commits
12324a95
Commit
12324a95
authored
May 06, 2021
by
吴凯波
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
flume监控ftp得json文件
parent
58a3c27f
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
69 deletions
+40
-69
DAOClass.java
src/main/java/com/ihooyah/flume/sink/DAOClass.java
+40
-69
No files found.
src/main/java/com/ihooyah/flume/sink/DAOClass.java
View file @
12324a95
...
@@ -9,11 +9,10 @@ import java.sql.ResultSet;
...
@@ -9,11 +9,10 @@ import java.sql.ResultSet;
import
java.sql.SQLException
;
import
java.sql.SQLException
;
import
java.sql.Statement
;
import
java.sql.Statement
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.Date
;
import
java.util.HashMap
;
import
com.alibaba.fastjson.JSONArray
;
import
java.util.List
;
import
com.alibaba.fastjson.JSONObject
;
import
java.util.Map
;
import
org.apache.flume.Event
;
import
org.apache.flume.Event
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
...
@@ -37,6 +36,7 @@ public class DAOClass {
...
@@ -37,6 +36,7 @@ public class DAOClass {
}
}
public
void
insertData
(
Event
event
,
Map
<
String
,
String
>
params
)
throws
Exception
{
public
void
insertData
(
Event
event
,
Map
<
String
,
String
>
params
)
throws
Exception
{
//同步.json文件的逻辑
try
{
try
{
String
body
=
new
String
(
event
.
getBody
(),
"UTF-8"
);
String
body
=
new
String
(
event
.
getBody
(),
"UTF-8"
);
Map
<
String
,
String
>
headers
=
event
.
getHeaders
();
Map
<
String
,
String
>
headers
=
event
.
getHeaders
();
...
@@ -45,86 +45,57 @@ public class DAOClass {
...
@@ -45,86 +45,57 @@ public class DAOClass {
String
tableName
=
(
String
)
params
.
get
(
"tableName"
);
String
tableName
=
(
String
)
params
.
get
(
"tableName"
);
String
partition
=
(
String
)
params
.
get
(
"partition"
);
String
partition
=
(
String
)
params
.
get
(
"partition"
);
String
iscustom
=
(
String
)
params
.
get
(
"iscustom"
);
String
iscustom
=
(
String
)
params
.
get
(
"iscustom"
);
JSONObject
initObject
=
JSONObject
.
parseObject
(
body
);
JSONArray
initArray
=
JSONArray
.
parseArray
(
initObject
.
get
(
"data"
).
toString
());
if
(!
"false"
.
equals
(
iscustom
))
{
if
(!
"false"
.
equals
(
iscustom
))
{
if
(
"true"
.
equals
(
iscustom
))
{
if
(
"true"
.
equals
(
iscustom
))
{
;
;
}
}
}
else
{
}
else
{
String
columns
=
""
;
String
columns
=
""
;
List
<
String
>
columnList
=
new
ArrayList
<>();
Statement
st
=
this
.
connection
.
createStatement
();
Statement
st
=
this
.
connection
.
createStatement
();
String
nowDate
;
tableName
=
initObject
.
get
(
"type"
).
toString
();
String
[]
files
=
fileName
.
split
(
"\\."
);
String
isTableExist
=
"select table_name from INFORMATION_SCHEMA.Tables where table_name='"
+
tableName
+
"'"
;
String
isTableExist
=
"select table_name from INFORMATION_SCHEMA.Tables where table_name='"
+
files
[
0
].
trim
()+
"'"
;
ResultSet
tableResult
=
st
.
executeQuery
(
isTableExist
);
ResultSet
tableResult
=
st
.
executeQuery
(
isTableExist
);
if
(
"false"
.
equals
(
tableResult
.
next
()+
""
))
{
if
(
"false"
.
equals
(
tableResult
.
next
()+
""
)){
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
initArray
.
getString
(
0
));
if
(
body
.
contains
(
";"
)){
Iterator
<
String
>
keys
=
jsonObject
.
keySet
().
iterator
();
String
[]
columnArray
=
body
.
split
(
";"
);
while
(
keys
.
hasNext
())
{
String
createTableSql
=
"create table "
+
files
[
0
].
trim
()+
"(id int PRIMARY key AUTO_INCREMENT"
;
String
column
=
keys
.
next
();
String
columnSql
;
columns
=
columns
+
column
+
","
;
for
(
int
i
=
0
;
i
<
columnArray
.
length
;
i
++)
{
columnList
.
add
(
column
);
columnSql
=
","
+
columnArray
[
i
].
trim
()+
" varchar(100)"
;
createTableSql
=
createTableSql
+
columnSql
;
}
createTableSql
=
createTableSql
+
",file_name varchar(30),create_time datetime);"
;
st
.
execute
(
createTableSql
);
}
}
}
String
createTableSql
=
"create table "
+
tableName
+
"(id int PRIMARY key AUTO_INCREMENT"
;
if
(
columnsMap
.
get
(
tableName
)
==
null
)
{
String
columnSql
;
nowDate
=
"select COLUMN_NAME from INFORMATION_SCHEMA.Columns where table_name='"
+
tableName
+
"' and table_schema='"
+
databaseName
+
"'"
;
for
(
String
column
:
columnList
)
{
columnSql
=
","
+
column
.
trim
()
+
" varchar(100)"
;
for
(
ResultSet
resultSet
=
st
.
executeQuery
(
nowDate
);
resultSet
.
next
();
columns
=
columns
+
resultSet
.
getString
(
"COLUMN_NAME"
)
+
","
)
{
createTableSql
=
createTableSql
+
columnSql
;
;
}
}
createTableSql
=
createTableSql
+
",file_name varchar(30),create_time datetime);"
;
columns
=
columns
.
substring
(
0
,
columns
.
length
()
-
1
);
st
.
execute
(
createTableSql
);
columnsMap
.
put
(
tableName
,
columns
);
}
else
{
columns
=
(
String
)
columnsMap
.
get
(
tableName
);
}
}
String
values
=
""
;
nowDate
=
getNowDate
();
for
(
Object
data
:
initArray
)
{
String
[]
datas
=
body
.
split
(
partition
);
JSONObject
dataJson
=
JSONObject
.
parseObject
(
data
.
toString
());
List
<
String
>
dataList
=
new
ArrayList
();
Iterator
<
String
>
keys
=
dataJson
.
keySet
().
iterator
();
dataList
.
add
(
""
);
while
(
keys
.
hasNext
())
{
String
[]
arr
$
=
datas
;
String
index
=
keys
.
next
();
int
i1
=
datas
.
length
;
columns
=
columns
+
index
+
","
;
values
=
values
+
"'"
+
dataJson
.
get
(
index
)+
"'"
+
","
;
for
(
int
i
$
=
0
;
i
$
<
i1
;
++
i
$
)
{
String
data
=
arr
$
[
i
$
];
if
(
data
!=
null
&&
!
""
.
equals
(
data
)){
dataList
.
add
(
data
);
}
}
}
columns
=
columns
+
"file_name,create_time"
;
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
dataList
.
add
(
fileName
);
values
=
values
+
"'"
+
fileName
+
"','"
+
sdf
.
format
(
new
Date
())+
"'"
;
dataList
.
add
(
nowDate
);
INSERT_QUERY
=
"INSERT INTO "
+
tableName
+
"("
+
columns
+
") values ("
+
values
+
")"
;
String
indexs
=
""
;
System
.
out
.
println
(
"数据新增语句:"
+
INSERT_QUERY
);
i1
=
0
;
PreparedStatement
insertStmnt
=
this
.
connection
.
prepareStatement
(
INSERT_QUERY
);
while
(
true
)
{
insertStmnt
.
execute
();
if
(
i1
>=
dataList
.
size
())
{
indexs
=
indexs
.
substring
(
0
,
indexs
.
length
()
-
1
);
INSERT_QUERY
=
"INSERT INTO "
+
tableName
+
"("
+
columns
+
") values ("
+
indexs
+
")"
;
break
;
}
String
ind
=
""
;
if
(((
String
)
dataList
.
get
(
i1
)).
equals
(
""
))
{
ind
=
"null,"
;
}
else
{
ind
=
"'"
+
(
String
)
dataList
.
get
(
i1
)
+
"',"
;
}
indexs
=
indexs
+
ind
;
++
i1
;
}
}
}
}
System
.
out
.
println
(
"插入语句:"
+
INSERT_QUERY
);
PreparedStatement
insertStmnt
=
this
.
connection
.
prepareStatement
(
INSERT_QUERY
);
insertStmnt
.
execute
();
}
catch
(
SQLException
var20
)
{
}
catch
(
SQLException
var20
)
{
var20
.
printStackTrace
();
var20
.
printStackTrace
();
}
}
}
}
public
void
createConnection
(
String
driver
,
String
db_url
,
String
user
,
String
password
)
throws
IOException
{
public
void
createConnection
(
String
driver
,
String
db_url
,
String
user
,
String
password
)
throws
IOException
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment