Skip to content

Instantly share code, notes, and snippets.

@mlabouardy
Created April 16, 2019 21:03
Show Gist options
  • Select an option

  • Save mlabouardy/57edaa57b4d5b051ace08716aaa8828d to your computer and use it in GitHub Desktop.

Select an option

Save mlabouardy/57edaa57b4d5b051ace08716aaa8828d to your computer and use it in GitHub Desktop.
Create BigQuery tables from schema
func handler(ctx context.Context) error {
client, err := bigquery.NewClient(ctx, os.Getenv("PROJECT_ID"))
if err != nil {
return err
}
err = RemoveDataSet(client)
if err != nil {
return err
}
err = CreateDataSet(client)
if err != nil {
return err
}
uri := fmt.Sprintf("%s:%s@tcp(%s)/%s",
os.Getenv("MYSQL_USERNAME"), os.Getenv("MYSQL_PASSWORD"),
os.Getenv("MYSQL_HOST"), os.Getenv("MYSQL_DATABASE"))
db, err := sql.Open("mysql", uri)
if err != nil {
return err
}
file, err := os.Open("tables")
if err != nil {
return err
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
tableName := scanner.Text()
fmt.Println("Table:", tableName)
columns, _ := GetColumns(tableName, db)
fmt.Println("Columns:", columns)
CreateBQTable(tableName, columns, client)
}
if err := scanner.Err(); err != nil {
return err
}
return nil
}
func main() {
lambda.Start(handler)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment