in nimo-shake/full-sync/table-syncer.go [38:71]
func NewTableSyncer(id int, table string, collectionMetric *utils.CollectionMetric) *tableSyncer {
sourceConn, err := utils.CreateDynamoSession(conf.Options.LogLevel)
if err != nil {
LOG.Error("tableSyncer[%v] with table[%v] create dynamodb session error[%v]", id, table, err)
return nil
}
// describe source table
tableDescription, err := sourceConn.DescribeTable(&dynamodb.DescribeTableInput{
TableName: aws.String(table),
})
if err != nil {
LOG.Error("tableSyncer[%v] with table[%v] describe failed[%v]", id, table, err)
return nil
}
converter := protocal.NewConverter(conf.Options.ConvertType)
if converter == nil {
LOG.Error("tableSyncer[%v] with table[%v] create converter failed", id, table)
return nil
}
return &tableSyncer{
id: id,
sourceConn: sourceConn,
sourceTableDescribe: tableDescription.Table,
converter: converter,
ns: utils.NS{
Database: conf.Options.Id,
Collection: table,
},
collectionMetric: collectionMetric,
}
}