IBM Streams SPL Samples for Beginners

Edit me

IBM Streams SPL Samples for Beginners

It contains 100 readily usable IBM Streams examples ranging from simple to advanced. It was created by Senthil Nathan. He is now an independent software consultant. Using this set of examples and his private collection of even more practically relevant examples, he trained around 1000 engineers in many customer locations since 2007. His comprehensive hands-on classroom sessions run for a week to enable customers to start using their learnings in creating highly impactful streaming data analytics applications. Many customers praise that his coaching helped their enterprises derive value from their data. Customers interested in IBM Streams classroom training can email senthil@moonraytech.com to reach him. Thank you.

Download a copy of these examples from the releases page of the samples project.

You can also browse these samples by category in the samples catalog:

  • 001_hello_world_in_spl
  • 002_source_sink_at_work
  • 003_sink_at_work
  • 004_delay_at_work
  • 005_throttle_at_work
  • 006_barrier_at_work
  • 007_split_at_work
  • 008_get_submission_time_value
  • 009_custom_operator_using_get_submission_time_value
  • 010_get_compile_time_value
  • 011_compiler_intrinsic_functions
  • 012_filter_functor_at_work
  • 013_punctor_at_work
  • 014_sort_at_work
  • 015_join_at_work
  • 016_aggregate_at_work
  • 017_filesource_filesink_at_work
  • 018_directory_scan_at_work
  • 019_import_export_at_work
  • 019_import_export_at_work
  • 020_metrics_sink_at_work
  • 021_pair_at_work
  • 022_deduplicate_at_work
  • 023_union_at_work
  • 024_threaded_split_at_work
  • 025_dynamic_filter_at_work
  • 026_gate_at_work
  • 027_java_op_at_work
  • 028_multiple_composites_at_work
  • 028_multiple_composites_at_work
  • 028_multiple_composites_at_work
  • 029_spl_functions_at_work
  • 029_spl_functions_at_work
  • 030_spl_config_at_work
  • 031_spl_mixed_mode_at_work
  • 032_native_function_at_work
  • 033_java_primitive_operator_at_work
  • 034_odbc_adapters_for_db2_at_work
  • 035_c++_primitive_operator_at_work
  • 036_shared_lib_primitive_operator_at_work
  • 037_odbc_adapters_for_solid_db_at_work
  • 038_spl_built_in_functions_at_work
  • 040_ingest_data_generation_in_spl
  • 041_real_time_streams_merger
  • 042_dynamic_import_export_api_at_work
  • 042_dynamic_import_export_api_at_work
  • 043_import_export_filter_at_work
  • 043_import_export_filter_at_work
  • 044_streams_checkpointing_at_work
  • 045_file_source_using_spl_custom_operator
  • 046_launching_external_apps_in_spl
  • 047_streams_host_tags_at_work
  • 048_source_operator_with_control_port
  • 049_json_to_tuple_to_json_using_java
  • 050_recursive_dir_scan
  • 051_native_functions_with_collection_types
  • 052_streams_to_python
  • 053_java_primitive_operator_with_complex_output_tuple_types
  • 054_serialize_deserialize_tuples
  • 055_json_to_tuple_to_json_using_c++
  • 056_data_sharing_between_fused_spl_custom_and_cpp_primitive_operators
  • 057_reading_nested_tuple_data_via_file_source
  • 058_data_sharing_between_non_fused_spl_custom_and_cpp_primitive_operators
  • 059_dynamic_scaleout_of_streams_application
  • 059_dynamic_scaleout_of_streams_application
  • 060_simple_pe_failover_technique_at_work
  • 061_data_sharing_between_non_fused_spl_custom_operators_and_a_native_function
  • 062_data_sharing_between_non_fused_spl_custom_and_java_primitive_operators
  • 063_on_the_fly_tuple_creation_and_encoding_decoding_in_java_primitive_operators
  • 064_using_spl_composite_params
  • 065_using_multiple_threads_in_java_operator
  • 066_load_balancing_using_gate
  • 067_simple_java_source_operator
  • 068_tuple_introspection_inside_java_operator
  • 069_changing_map_value_during_iteration
  • 070_convert_block_data_into_tuples_using_parse
  • 071_java_native_functions
  • 072_using_streams_rest_apis
  • 073_java_operator_fusion
  • 074_user_defined_parallelism_01
  • 075_user_defined_parallelism_02
  • 076_user_defined_parallelism_03
  • 077_user_defined_parallelism_04
  • 078_user_defined_parallelism_05
  • 079_user_defined_parallelism_06
  • 080_user_defined_parallelism_07
  • 081_user_defined_parallelism_08
  • 082_user_defined_parallelism_09
  • 083_user_defined_parallelism_10
  • 084_user_defined_parallelism_11
  • 085_user_defined_parallelism_12
  • 086_jms_source_sink_using_activemq
  • 087_email_alerts_via_java_native_function
  • 088_java_operator_params_and_multiple_input_output_ports
  • 089_integrating_streams_apps_with_web_apps
  • 090_consistent_region_spl_01
  • 091_consistent_region_spl_02
  • 092_consistent_region_spl_03
  • 093_consistent_region_spl_04
  • 094_consistent_region_spl_05
  • 095_consistent_region_spl_06
  • 095_consistent_region_spl_06
  • 096_consistent_region_cpp_07
  • 097_consistent_region_cpp_08
  • 098_consistent_region_java_09
  • 099_consistent_region_java_10
  • 103_view_annotation_at_work
  • 901_cat_example
  • 902_word_count
  • 902_word_count
  • 903_unique
  • 903_unique
  • 904_primitive_round_robin_split
  • 905_gate_load_balancer
  • com.ibm.streamsx.dps
  • com.ibm.streamsx.ps