@@ -403,6 +403,64 @@ def insert_data(instance_id, database_id):
403403# [END spanner_insert_data]
404404
405405
406+ # [START spanner_batch_write]
407+ def batch_write (instance_id , database_id ):
408+ """Inserts sample data into the given database via BatchWrite API.
409+
410+ The database and table must already exist and can be created using
411+ `create_database`.
412+ """
413+ spanner_client = spanner .Client ()
414+ instance = spanner_client .instance (instance_id )
415+ database = instance .database (database_id )
416+
417+ with database .mutation_groups () as groups :
418+ group1 = groups .group ()
419+ group1 .insert_or_update (
420+ table = "Singers" ,
421+ columns = ("SingerId" , "FirstName" , "LastName" ),
422+ values = [
423+ (1 , "Marc" , "Richards" ),
424+ (2 , "Catalina" , "Smith" ),
425+ (3 , "Alice" , "Trentor" ),
426+ (4 , "Lea" , "Martin" ),
427+ (5 , "David" , "Lomond" ),
428+ ],
429+ )
430+ group1 .insert_or_update (
431+ table = "Singers" ,
432+ columns = ("SingerId" , "FirstName" , "LastName" ),
433+ values = [
434+ (6 , "Marc" , "Richards" ),
435+ (7 , "Catalina" , "Smith" ),
436+ (8 , "Alice" , "Trentor" ),
437+ (9 , "Lea" , "Martin" ),
438+ (10 , "David" , "Lomond" ),
439+ ],
440+ )
441+
442+ group2 = groups .group ()
443+ group2 .insert_or_update (
444+ table = "Albums" ,
445+ columns = ("SingerId" , "AlbumId" , "AlbumTitle" ),
446+ values = [
447+ (1 , 1 , "Total Junk" ),
448+ (2 , 2 , "Go, Go, Go" ),
449+ (3 , 1 , "Green" ),
450+ (4 , 2 , "Forever Hold Your Peace" ),
451+ (5 , 3 , "Terrified" ),
452+ ],
453+ )
454+
455+ for response in groups .batch_write ():
456+ print (response )
457+
458+ print ("Inserted data." )
459+
460+
461+ # [END spanner_batch_write]
462+
463+
406464# [START spanner_delete_data]
407465def delete_data (instance_id , database_id ):
408466 """Deletes sample data from the given database.
@@ -2677,6 +2735,7 @@ def drop_sequence(instance_id, database_id):
26772735 subparsers .add_parser ("create_instance" , help = create_instance .__doc__ )
26782736 subparsers .add_parser ("create_database" , help = create_database .__doc__ )
26792737 subparsers .add_parser ("insert_data" , help = insert_data .__doc__ )
2738+ subparsers .add_parser ("batch_write" , help = batch_write .__doc__ )
26802739 subparsers .add_parser ("delete_data" , help = delete_data .__doc__ )
26812740 subparsers .add_parser ("query_data" , help = query_data .__doc__ )
26822741 subparsers .add_parser ("read_data" , help = read_data .__doc__ )
@@ -2811,6 +2870,8 @@ def drop_sequence(instance_id, database_id):
28112870 create_database (args .instance_id , args .database_id )
28122871 elif args .command == "insert_data" :
28132872 insert_data (args .instance_id , args .database_id )
2873+ elif args .command == "batch_write" :
2874+ batch_write (args .instance_id , args .database_id )
28142875 elif args .command == "delete_data" :
28152876 delete_data (args .instance_id , args .database_id )
28162877 elif args .command == "query_data" :
0 commit comments