I found the solution. The terraform consider all the .tf files as a single file when processing so we can create new tf files in same folder with different module name to divide a single module into multiple files. The down side is the tables will be destroyed and recreated. One way to avoid that is by using "terraform state mv" command and change meta data from old module to new module.