databricks-labs-lakebridge 0.10.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. databricks/__init__.py +3 -0
  2. databricks/labs/__init__.py +3 -0
  3. databricks/labs/lakebridge/__about__.py +2 -0
  4. databricks/labs/lakebridge/__init__.py +11 -0
  5. databricks/labs/lakebridge/assessments/configure_assessment.py +194 -0
  6. databricks/labs/lakebridge/assessments/pipeline.py +188 -0
  7. databricks/labs/lakebridge/assessments/profiler_config.py +30 -0
  8. databricks/labs/lakebridge/base_install.py +12 -0
  9. databricks/labs/lakebridge/cli.py +449 -0
  10. databricks/labs/lakebridge/config.py +192 -0
  11. databricks/labs/lakebridge/connections/__init__.py +0 -0
  12. databricks/labs/lakebridge/connections/credential_manager.py +89 -0
  13. databricks/labs/lakebridge/connections/database_manager.py +98 -0
  14. databricks/labs/lakebridge/connections/env_getter.py +13 -0
  15. databricks/labs/lakebridge/contexts/__init__.py +0 -0
  16. databricks/labs/lakebridge/contexts/application.py +133 -0
  17. databricks/labs/lakebridge/coverage/__init__.py +0 -0
  18. databricks/labs/lakebridge/coverage/commons.py +223 -0
  19. databricks/labs/lakebridge/coverage/lakebridge_snow_transpilation_coverage.py +29 -0
  20. databricks/labs/lakebridge/coverage/local_report.py +9 -0
  21. databricks/labs/lakebridge/coverage/sqlglot_snow_transpilation_coverage.py +5 -0
  22. databricks/labs/lakebridge/coverage/sqlglot_tsql_transpilation_coverage.py +5 -0
  23. databricks/labs/lakebridge/deployment/__init__.py +0 -0
  24. databricks/labs/lakebridge/deployment/configurator.py +199 -0
  25. databricks/labs/lakebridge/deployment/dashboard.py +140 -0
  26. databricks/labs/lakebridge/deployment/installation.py +125 -0
  27. databricks/labs/lakebridge/deployment/job.py +147 -0
  28. databricks/labs/lakebridge/deployment/recon.py +145 -0
  29. databricks/labs/lakebridge/deployment/table.py +30 -0
  30. databricks/labs/lakebridge/deployment/upgrade_common.py +124 -0
  31. databricks/labs/lakebridge/discovery/table.py +36 -0
  32. databricks/labs/lakebridge/discovery/table_definition.py +23 -0
  33. databricks/labs/lakebridge/discovery/tsql_table_definition.py +185 -0
  34. databricks/labs/lakebridge/errors/exceptions.py +1 -0
  35. databricks/labs/lakebridge/helpers/__init__.py +0 -0
  36. databricks/labs/lakebridge/helpers/db_sql.py +24 -0
  37. databricks/labs/lakebridge/helpers/execution_time.py +20 -0
  38. databricks/labs/lakebridge/helpers/file_utils.py +64 -0
  39. databricks/labs/lakebridge/helpers/metastore.py +164 -0
  40. databricks/labs/lakebridge/helpers/recon_config_utils.py +176 -0
  41. databricks/labs/lakebridge/helpers/string_utils.py +62 -0
  42. databricks/labs/lakebridge/helpers/telemetry_utils.py +13 -0
  43. databricks/labs/lakebridge/helpers/validation.py +101 -0
  44. databricks/labs/lakebridge/install.py +849 -0
  45. databricks/labs/lakebridge/intermediate/__init__.py +0 -0
  46. databricks/labs/lakebridge/intermediate/dag.py +88 -0
  47. databricks/labs/lakebridge/intermediate/engine_adapter.py +0 -0
  48. databricks/labs/lakebridge/intermediate/root_tables.py +44 -0
  49. databricks/labs/lakebridge/jvmproxy.py +56 -0
  50. databricks/labs/lakebridge/lineage.py +42 -0
  51. databricks/labs/lakebridge/reconcile/__init__.py +0 -0
  52. databricks/labs/lakebridge/reconcile/compare.py +414 -0
  53. databricks/labs/lakebridge/reconcile/connectors/__init__.py +0 -0
  54. databricks/labs/lakebridge/reconcile/connectors/data_source.py +72 -0
  55. databricks/labs/lakebridge/reconcile/connectors/databricks.py +87 -0
  56. databricks/labs/lakebridge/reconcile/connectors/jdbc_reader.py +41 -0
  57. databricks/labs/lakebridge/reconcile/connectors/oracle.py +108 -0
  58. databricks/labs/lakebridge/reconcile/connectors/secrets.py +30 -0
  59. databricks/labs/lakebridge/reconcile/connectors/snowflake.py +173 -0
  60. databricks/labs/lakebridge/reconcile/connectors/source_adapter.py +30 -0
  61. databricks/labs/lakebridge/reconcile/connectors/sql_server.py +132 -0
  62. databricks/labs/lakebridge/reconcile/constants.py +37 -0
  63. databricks/labs/lakebridge/reconcile/exception.py +42 -0
  64. databricks/labs/lakebridge/reconcile/execute.py +920 -0
  65. databricks/labs/lakebridge/reconcile/query_builder/__init__.py +0 -0
  66. databricks/labs/lakebridge/reconcile/query_builder/aggregate_query.py +293 -0
  67. databricks/labs/lakebridge/reconcile/query_builder/base.py +138 -0
  68. databricks/labs/lakebridge/reconcile/query_builder/count_query.py +33 -0
  69. databricks/labs/lakebridge/reconcile/query_builder/expression_generator.py +292 -0
  70. databricks/labs/lakebridge/reconcile/query_builder/hash_query.py +91 -0
  71. databricks/labs/lakebridge/reconcile/query_builder/sampling_query.py +123 -0
  72. databricks/labs/lakebridge/reconcile/query_builder/threshold_query.py +231 -0
  73. databricks/labs/lakebridge/reconcile/recon_capture.py +635 -0
  74. databricks/labs/lakebridge/reconcile/recon_config.py +363 -0
  75. databricks/labs/lakebridge/reconcile/recon_output_config.py +85 -0
  76. databricks/labs/lakebridge/reconcile/runner.py +97 -0
  77. databricks/labs/lakebridge/reconcile/sampler.py +239 -0
  78. databricks/labs/lakebridge/reconcile/schema_compare.py +126 -0
  79. databricks/labs/lakebridge/resources/__init__.py +0 -0
  80. databricks/labs/lakebridge/resources/config/credentials.yml +33 -0
  81. databricks/labs/lakebridge/resources/reconcile/__init__.py +0 -0
  82. databricks/labs/lakebridge/resources/reconcile/dashboards/__init__.py +0 -0
  83. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/00_0_aggregate_recon_header.md +6 -0
  84. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/01_0_recon_id.filter.yml +6 -0
  85. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/01_1_executed_by.filter.yml +5 -0
  86. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/01_2_started_at.filter.yml +5 -0
  87. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/02_0_source_type.filter.yml +5 -0
  88. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/02_1_source_table.filter.yml +5 -0
  89. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/02_2_target_table.filter.yml +5 -0
  90. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/04_0_aggregate_summary_table.sql +46 -0
  91. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/05_0_aggregate_recon_drilldown_header.md +2 -0
  92. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/06_0_recon_id.filter.yml +5 -0
  93. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/06_1_category.filter.yml +5 -0
  94. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/06_2_aggregate_type.filter.yml +5 -0
  95. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/07_0_target_table.filter.yml +4 -0
  96. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/07_1_source_table.filter.yml +4 -0
  97. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/08_0_aggregate_details_table.sql +92 -0
  98. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/09_0_aggregate_missing_mismatch_header.md +1 -0
  99. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/10_0_aggr_mismatched_records.sql +19 -0
  100. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/11_0_aggr_missing_in_databricks.sql +19 -0
  101. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/11_1_aggr_missing_in_source.sql +19 -0
  102. databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/dashboard.yml +365 -0
  103. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/00_0_recon_main.md +3 -0
  104. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/01_0_recon_id.filter.yml +6 -0
  105. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/01_1_report_type.filter.yml +5 -0
  106. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/01_2_executed_by.filter.yml +5 -0
  107. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/02_0_source_type.filter.yml +5 -0
  108. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/02_1_source_table.filter.yml +6 -0
  109. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/02_2_target_table.filter.yml +6 -0
  110. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/03_0_started_at.filter.yml +5 -0
  111. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/05_0_summary_table.sql +38 -0
  112. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/06_0_schema_comparison_header.md +3 -0
  113. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/07_0_schema_details_table.sql +42 -0
  114. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/08_0_drill_down_header.md +3 -0
  115. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/09_0_recon_id.filter.yml +4 -0
  116. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/09_1_category.filter.yml +4 -0
  117. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/10_0_target_table.filter.yml +4 -0
  118. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/10_1_source_table.filter.yml +4 -0
  119. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/11_0_recon_details_pivot.sql +40 -0
  120. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/12_0_daily_data_validation_issue_header.md +3 -0
  121. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/13_0_success_fail_.filter.yml +4 -0
  122. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/14_0_failed_recon_ids.sql +15 -0
  123. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/15_0_total_failed_runs.sql +10 -0
  124. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/15_1_failed_targets.sql +10 -0
  125. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/15_2_successful_targets.sql +10 -0
  126. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/16_0_missing_mismatch_header.md +1 -0
  127. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/17_0_mismatched_records.sql +14 -0
  128. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/17_1_threshold_mismatches.sql +14 -0
  129. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/18_0_missing_in_databricks.sql +14 -0
  130. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/18_1_missing_in_source.sql +14 -0
  131. databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/dashboard.yml +545 -0
  132. databricks/labs/lakebridge/resources/reconcile/queries/__init__.py +0 -0
  133. databricks/labs/lakebridge/resources/reconcile/queries/installation/__init__.py +0 -0
  134. databricks/labs/lakebridge/resources/reconcile/queries/installation/aggregate_details.sql +7 -0
  135. databricks/labs/lakebridge/resources/reconcile/queries/installation/aggregate_metrics.sql +15 -0
  136. databricks/labs/lakebridge/resources/reconcile/queries/installation/aggregate_rules.sql +6 -0
  137. databricks/labs/lakebridge/resources/reconcile/queries/installation/details.sql +7 -0
  138. databricks/labs/lakebridge/resources/reconcile/queries/installation/main.sql +24 -0
  139. databricks/labs/lakebridge/resources/reconcile/queries/installation/metrics.sql +21 -0
  140. databricks/labs/lakebridge/transpiler/__init__.py +0 -0
  141. databricks/labs/lakebridge/transpiler/execute.py +423 -0
  142. databricks/labs/lakebridge/transpiler/lsp/__init__.py +0 -0
  143. databricks/labs/lakebridge/transpiler/lsp/lsp_engine.py +564 -0
  144. databricks/labs/lakebridge/transpiler/sqlglot/__init__.py +0 -0
  145. databricks/labs/lakebridge/transpiler/sqlglot/dialect_utils.py +30 -0
  146. databricks/labs/lakebridge/transpiler/sqlglot/generator/__init__.py +0 -0
  147. databricks/labs/lakebridge/transpiler/sqlglot/generator/databricks.py +771 -0
  148. databricks/labs/lakebridge/transpiler/sqlglot/lca_utils.py +138 -0
  149. databricks/labs/lakebridge/transpiler/sqlglot/local_expression.py +197 -0
  150. databricks/labs/lakebridge/transpiler/sqlglot/parsers/__init__.py +0 -0
  151. databricks/labs/lakebridge/transpiler/sqlglot/parsers/oracle.py +23 -0
  152. databricks/labs/lakebridge/transpiler/sqlglot/parsers/presto.py +202 -0
  153. databricks/labs/lakebridge/transpiler/sqlglot/parsers/snowflake.py +535 -0
  154. databricks/labs/lakebridge/transpiler/sqlglot/sqlglot_engine.py +203 -0
  155. databricks/labs/lakebridge/transpiler/transpile_engine.py +49 -0
  156. databricks/labs/lakebridge/transpiler/transpile_status.py +68 -0
  157. databricks/labs/lakebridge/uninstall.py +28 -0
  158. databricks/labs/lakebridge/upgrades/v0.4.0_add_main_table_operation_name_column.py +80 -0
  159. databricks/labs/lakebridge/upgrades/v0.6.0_alter_metrics_datatype.py +51 -0
  160. databricks_labs_lakebridge-0.10.0.dist-info/METADATA +58 -0
  161. databricks_labs_lakebridge-0.10.0.dist-info/RECORD +171 -0
  162. databricks_labs_lakebridge-0.10.0.dist-info/WHEEL +4 -0
  163. databricks_labs_lakebridge-0.10.0.dist-info/entry_points.txt +2 -0
  164. databricks_labs_lakebridge-0.10.0.dist-info/licenses/LICENSE +69 -0
  165. databricks_labs_lakebridge-0.10.0.dist-info/licenses/NOTICE +42 -0
  166. docs/lakebridge/src/components/Button.tsx +81 -0
  167. docs/lakebridge/src/css/custom.css +167 -0
  168. docs/lakebridge/src/css/table.css +20 -0
  169. docs/lakebridge/src/pages/index.tsx +57 -0
  170. docs/lakebridge/src/theme/Footer/index.tsx +24 -0
  171. docs/lakebridge/src/theme/Layout/index.tsx +18 -0
@@ -0,0 +1,171 @@
1
+ docs/lakebridge/src/components/Button.tsx,sha256=5l_irZl4AGwK7k1e2rdOb_W2-305Q1mjwXA3iP8CqaM,3159
2
+ docs/lakebridge/src/css/custom.css,sha256=-XnDdVlHqJZXJmKarH7zCUMnnlAfpxIpZyr8FNJ4q0A,4024
3
+ docs/lakebridge/src/css/table.css,sha256=_MAyY7hyhfFrSNVAvCA2QlqdbeBi4Kr9Ue93bSyhKSE,315
4
+ docs/lakebridge/src/pages/index.tsx,sha256=fQRA9ZbKsPxZbXuSa1LMDk1xfYg2YXCFgsgzqus0NLc,1789
5
+ docs/lakebridge/src/theme/Footer/index.tsx,sha256=Jj8zY5WDiTLXwF_mAgld8Dh1A3MY1HFVVSYIoUs51so,1057
6
+ docs/lakebridge/src/theme/Layout/index.tsx,sha256=IkdLr13jKmLxT0jWQqrwqrjVXc8Rwd_kWNpTd1t2sc0,592
7
+ databricks/__init__.py,sha256=YqH8Hy8lHJxd0hLMZF6kWirUDdPiX90LRDX6S6yTMn0,261
8
+ databricks/labs/__init__.py,sha256=YqH8Hy8lHJxd0hLMZF6kWirUDdPiX90LRDX6S6yTMn0,261
9
+ databricks/labs/lakebridge/__about__.py,sha256=JleKRduJvDs3-Up4hTC99i_Q2rtRU80YQI2Ehoso38w,49
10
+ databricks/labs/lakebridge/__init__.py,sha256=nUNECqNvyfpT0aeWwlqG0ADT8U8ScCLb8WWpLydppcA,464
11
+ databricks/labs/lakebridge/base_install.py,sha256=zFmpfekkZAq_3-CEA8l8Pc5QtcIq90FqmVJSLm8R_Tg,388
12
+ databricks/labs/lakebridge/cli.py,sha256=QL3eJVrI_qOn3uj24-K1T-XuCuX9MQnFYKe-8-NmOfk,19546
13
+ databricks/labs/lakebridge/config.py,sha256=RERqG2nOlXm3Q0m2ngLwWEBbTe9u-08JmwKzY6CRbWQ,5760
14
+ databricks/labs/lakebridge/install.py,sha256=Wyz10Q1M2KagI4LZHf1E0b_GuLG_lgLg-OWuhLQZ6tU,37280
15
+ databricks/labs/lakebridge/jvmproxy.py,sha256=F9pXpemzdaJXwpshHxVM9PYU_eNn4zTCUFQ5vc9WIhA,1573
16
+ databricks/labs/lakebridge/lineage.py,sha256=Q2oky4RkODRHWMwIQIwbYXSdZTmRkMWwEh6RssBiQxY,1843
17
+ databricks/labs/lakebridge/uninstall.py,sha256=wkgzQlQUUN1vZ1ujlH10l0TddJ6MAXWIrWd_KesfVJQ,756
18
+ databricks/labs/lakebridge/assessments/configure_assessment.py,sha256=r0VDjh4fAqZAHcLSN1qmyAQaTIwWRoXyitU7JCKsT3w,8412
19
+ databricks/labs/lakebridge/assessments/pipeline.py,sha256=NlLyqy4ZkYdMX1ng4_5IWkNa5e06w8hzfwKQW3teWLQ,7728
20
+ databricks/labs/lakebridge/assessments/profiler_config.py,sha256=-ZwOdN-kpX7jmXwPWG_QrTuKipreQa-8Jz7KrlR98Ws,682
21
+ databricks/labs/lakebridge/connections/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
+ databricks/labs/lakebridge/connections/credential_manager.py,sha256=N8wKec2UO5P1hKqPoIivbrAitvNa2pnDec3jlPh3VVw,2719
23
+ databricks/labs/lakebridge/connections/database_manager.py,sha256=RLu9aUweko_sg11lVBU_PMRjaYBwv9JdDJAV77EuWZU,3073
24
+ databricks/labs/lakebridge/connections/env_getter.py,sha256=HKczv9Qgyd7Bm3OiKFuE0wqwXNZ-NqkCiVA_k0H_y6s,322
25
+ databricks/labs/lakebridge/contexts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ databricks/labs/lakebridge/contexts/application.py,sha256=APlJ6ZQSLvMe-_G0TYwSBxN45sUXq9h-WyC5HCEX6Ic,4844
27
+ databricks/labs/lakebridge/coverage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
+ databricks/labs/lakebridge/coverage/commons.py,sha256=WskVVa5l7aLVfSJgceCiDnfDsvJXwnb9eg27lMEj-HY,7515
29
+ databricks/labs/lakebridge/coverage/lakebridge_snow_transpilation_coverage.py,sha256=QL92ei_5QIsuSSDmjpQ2qW5CN_9l08HpufedDjc1D-w,1085
30
+ databricks/labs/lakebridge/coverage/local_report.py,sha256=ItC9uEfXGlzDROxTqZJ15IvRPs357kpPBaKTC2iWdOw,316
31
+ databricks/labs/lakebridge/coverage/sqlglot_snow_transpilation_coverage.py,sha256=WObWwG08j_Z7uK4Cs-nRB_Nic_WvnN3JCC2E26I7eUc,203
32
+ databricks/labs/lakebridge/coverage/sqlglot_tsql_transpilation_coverage.py,sha256=9SypNpibaS9VGiTYVwCcMMmVWkBGj094cTBfbhsqZxQ,183
33
+ databricks/labs/lakebridge/deployment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ databricks/labs/lakebridge/deployment/configurator.py,sha256=uOowc6cJfpZl4LGAs0eSFBBhrhC_t6Zs8Uo17htxXzY,8859
35
+ databricks/labs/lakebridge/deployment/dashboard.py,sha256=mFQFuw9YR8vcabYxCoZkgo247gttMaVokN8kYrJwz-Q,6002
36
+ databricks/labs/lakebridge/deployment/installation.py,sha256=qGpvceRGi1AVST2NEtLWsneI83mKpXEZfTn812VdMjI,5072
37
+ databricks/labs/lakebridge/deployment/job.py,sha256=J0zZao279P0qBH7idaREvcT-SjPsEGOL7mBgQ_ZTaZI,6090
38
+ databricks/labs/lakebridge/deployment/recon.py,sha256=omOK61xhdBgd0hd3YRP4Y6n7BETcTp-86Z77yHN7vXk,6207
39
+ databricks/labs/lakebridge/deployment/table.py,sha256=15pKlGRtGDiErq2lY3V-vMbbiKHSF4U-U3S6WvHeOA0,976
40
+ databricks/labs/lakebridge/deployment/upgrade_common.py,sha256=0WoMk_CUps5WfS_bm_U7zKGN6GMPcRWqdu4mgrPU0vs,4445
41
+ databricks/labs/lakebridge/discovery/table.py,sha256=8ovHJotNbPQZ5hmcKG005qt178lZ5Y41oZ4IpEhjldw,808
42
+ databricks/labs/lakebridge/discovery/table_definition.py,sha256=nrYnyzQDd-TWbBNnfVbgAyboGg1k2lh3RSncuToBMqU,587
43
+ databricks/labs/lakebridge/discovery/tsql_table_definition.py,sha256=KO8PMyUYGAuNVw7EyZ1l3dE1NZq3ens3d8YHXCvnjwI,8226
44
+ databricks/labs/lakebridge/errors/exceptions.py,sha256=PIj8wRJpxrBXOLMMt9HQhBfhZGEyEsdaGfo7PXIYkR8,48
45
+ databricks/labs/lakebridge/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
+ databricks/labs/lakebridge/helpers/db_sql.py,sha256=chFHpn6XIuC0GrJ3a30_Y7tcXd4KZ5qO9zCAI4d7TR0,806
47
+ databricks/labs/lakebridge/helpers/execution_time.py,sha256=8oLEYh0AKz1fuiQMyDTWDymhxh6xUKlcFpINWzKnOy4,533
48
+ databricks/labs/lakebridge/helpers/file_utils.py,sha256=rzZ0IBu7dlPNRtzLnzOv4sZZd2FBPPQNdodbkb3PQEI,1991
49
+ databricks/labs/lakebridge/helpers/metastore.py,sha256=1SKsIfNtiu3jUFjaXZ5B1fBZigVYqS1Q2OWhdn9qa8U,6425
50
+ databricks/labs/lakebridge/helpers/recon_config_utils.py,sha256=1Nq_pIonE2tz08kdVpSDS-NVKGZ1p_kGRZBUQFFWZAs,7404
51
+ databricks/labs/lakebridge/helpers/string_utils.py,sha256=_ovbMl7lXMKgYi1AF5UZQBcF1ZDs1PsSJV05erbEvg4,2786
52
+ databricks/labs/lakebridge/helpers/telemetry_utils.py,sha256=M0lqYcLdLKROnnu3KRJUlGS368IRPIACef4G1ae9cvA,435
53
+ databricks/labs/lakebridge/helpers/validation.py,sha256=97AoCcsliWKUBKAY8SwgL4Dad-r_W59L_7h2I3Pudmk,4449
54
+ databricks/labs/lakebridge/intermediate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
+ databricks/labs/lakebridge/intermediate/dag.py,sha256=47bgyaYaBK_ELwLE5VGgFUraSxKdMJkLmo2lfc602lI,3165
56
+ databricks/labs/lakebridge/intermediate/engine_adapter.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
+ databricks/labs/lakebridge/intermediate/root_tables.py,sha256=_3I0ks9qi9Al6HcURZ-gZ35IuP6dk7RUVuAOZHMcHp0,1497
58
+ databricks/labs/lakebridge/reconcile/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
+ databricks/labs/lakebridge/reconcile/compare.py,sha256=P9ABIT95TeS7BVRYVbzjpaEsynF2h2m5M8f9-he8A3A,16136
60
+ databricks/labs/lakebridge/reconcile/constants.py,sha256=TrWuQFgSoBhRZkpiuscewG5eaZKV-FsErUQt4JO0cxo,798
61
+ databricks/labs/lakebridge/reconcile/exception.py,sha256=kA-1KVAgZfWzxhcUwYha_8OapmFajJG0iY5TxPUPJyQ,1463
62
+ databricks/labs/lakebridge/reconcile/execute.py,sha256=13yDonKuOcGytIDEySgAF--8VC_zLR4-hLudD2EkE0g,35111
63
+ databricks/labs/lakebridge/reconcile/recon_capture.py,sha256=mlrKSzeTQnq3_ncbTunE1OyIFA2bLKlwiuDMicQRf5c,27317
64
+ databricks/labs/lakebridge/reconcile/recon_config.py,sha256=H1A3wdI0pgWfiISgdj-51fQplezG5PJXCIFkuXpS_UM,12090
65
+ databricks/labs/lakebridge/reconcile/recon_output_config.py,sha256=yDw8Wd5byugT_0wJKHDPmDdekzhBc-HKbQdfSFf-l1M,1829
66
+ databricks/labs/lakebridge/reconcile/runner.py,sha256=g9RhTJ5y6lJynDGqzKJXAG3lECmc1ZY2TfbeCuoItvQ,4739
67
+ databricks/labs/lakebridge/reconcile/sampler.py,sha256=ND_KMiUNu7bMnvFwyr-FHdaGv1w_aNCtu7lcUVRGKrc,10453
68
+ databricks/labs/lakebridge/reconcile/schema_compare.py,sha256=aOt5T6Quy-l7ggaRYBVYRNZDDBnUnVe4qekkrL2vC1s,5140
69
+ databricks/labs/lakebridge/reconcile/connectors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
+ databricks/labs/lakebridge/reconcile/connectors/data_source.py,sha256=W1LJ0l0mkronQdDgsYz6j2RbHdKkluQUrc_q2OuLIEQ,2410
71
+ databricks/labs/lakebridge/reconcile/connectors/databricks.py,sha256=LbewlUmnnazMPEXN2hqoPRMZ34gfLqLAosCyaq9OgRA,3490
72
+ databricks/labs/lakebridge/reconcile/connectors/jdbc_reader.py,sha256=SsY1rkeLo4Ie_2ZgxTxXH7s4cn1O2tHP_E93bNRCDRw,1516
73
+ databricks/labs/lakebridge/reconcile/connectors/oracle.py,sha256=LBqlK5WbgB4XaQNJ_DomTHXazdHJNu4vkIic_z6UENw,4795
74
+ databricks/labs/lakebridge/reconcile/connectors/secrets.py,sha256=vue72BaYVaaeUfTOaqIEwP-I3TApgbPiuq69Z6I2u3k,1125
75
+ databricks/labs/lakebridge/reconcile/connectors/snowflake.py,sha256=ARooTfPo6Vvrrj1n3KQ6aW-raAkoY_Z_qHB6epa5WVI,8086
76
+ databricks/labs/lakebridge/reconcile/connectors/source_adapter.py,sha256=N_qbIuJsU7q3M3WWLv36DTKH-zYqV7js7Vcdx9Z7fLo,1449
77
+ databricks/labs/lakebridge/reconcile/connectors/sql_server.py,sha256=vvjNyw8ZhO-IqMMCuSVcD19vPOrWTh2WH5ndoxKybHE,5675
78
+ databricks/labs/lakebridge/reconcile/query_builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
+ databricks/labs/lakebridge/reconcile/query_builder/aggregate_query.py,sha256=zCPmLBLWeKwn0E2QMs0ua2CIJ6cnxmn77mNt4lvauTw,13783
80
+ databricks/labs/lakebridge/reconcile/query_builder/base.py,sha256=J1LSemcN6bn-0K5U1PhXaQj22axOmqHUv-s9WwLQZOk,5293
81
+ databricks/labs/lakebridge/reconcile/query_builder/count_query.py,sha256=DsfDbyx2T3_ZUDrpWnelZQjOYmMlMsyuW-FXmt6w0-0,982
82
+ databricks/labs/lakebridge/reconcile/query_builder/expression_generator.py,sha256=AQFwWa_7ghAcCS5k1muKkdpW4ZZgVH_PmEOVXWSdjN8,10906
83
+ databricks/labs/lakebridge/reconcile/query_builder/hash_query.py,sha256=nIlyq__cPqEPOGUhQSmwhIn-biUHFP23ArIEY5RLOLk,3375
84
+ databricks/labs/lakebridge/reconcile/query_builder/sampling_query.py,sha256=JxjEG3N-p8AESEME0sUy0r4Ys5DZkxrffCBzRJEtIAo,4743
85
+ databricks/labs/lakebridge/reconcile/query_builder/threshold_query.py,sha256=ckuDyduso3L5iiG5AGPjwoozWFzYKG0HXyxLW-ds1vw,9726
86
+ databricks/labs/lakebridge/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
+ databricks/labs/lakebridge/resources/config/credentials.yml,sha256=fyj0xAEL-recfzET7NRxEY_0UbPgIQJEVrW-xZgW8gY,593
88
+ databricks/labs/lakebridge/resources/reconcile/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
+ databricks/labs/lakebridge/resources/reconcile/dashboards/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/00_0_aggregate_recon_header.md,sha256=Z8ro9egXuioT1UtpXFyrFFvldxsMni-4PFM-IQSotgE,132
91
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/01_0_recon_id.filter.yml,sha256=Vk1P7zqo0IqoLqIEqKkOmROlQ95Cfo7nu3kGKbpLXbQ,78
92
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/01_1_executed_by.filter.yml,sha256=wJV2dunN1JtbZAyKfsB_vZme0fJNIWvcBdmc3fgVMNQ,70
93
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/01_2_started_at.filter.yml,sha256=znj4SVZCYlaUOS5cFCsUw9yHboOMCLzhjWHXdckuVNY,71
94
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/02_0_source_type.filter.yml,sha256=SN1hp_M4Wx8ihx1tZLUJhDcunWGw37u77FabUrlnbLw,70
95
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/02_1_source_table.filter.yml,sha256=1xg7Na_sBvIEzxt0Z3jyBSX9sNS0VK3J-y3y2EqD2CY,77
96
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/02_2_target_table.filter.yml,sha256=FDAiC7AdXjYwRvbFiyAjoRuO-36CggvWVyxlGh6h2Fo,77
97
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/04_0_aggregate_summary_table.sql,sha256=zz81RempC1gYkOtD7oz8bIqCHqN4bOge_saa8UdCm8Q,1766
98
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/05_0_aggregate_recon_drilldown_header.md,sha256=4b9dlGpyyz5e5t6gwYFeWDTuiuCzlpmnFaoAH04_ZNA,135
99
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/06_0_recon_id.filter.yml,sha256=rtbLlEOYFL7Bgdg2yYrjrMcWNfHvSer2UeFWM4RGqBE,67
100
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/06_1_category.filter.yml,sha256=-MPZ9RfjjxFfC99RiJVeOruzaxoxIK2PZKrxOn0JLh8,69
101
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/06_2_aggregate_type.filter.yml,sha256=droj69gozKhT66OusOfb9mD3z8IZmEH74Aji1N3vOw8,79
102
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/07_0_target_table.filter.yml,sha256=kb4rHevX4k5qL6raQZn5z4t9G_BSbuHT4Gg4EaN_BgM,71
103
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/07_1_source_table.filter.yml,sha256=YnYVu0tgeWugvrXivEkleBkbEW0T1Y_LNn9hRw77kiI,71
104
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/08_0_aggregate_details_table.sql,sha256=7rVC1HIZg5f_2pUcR9k4-a5mkVZBavFXOtx4Zm8tIX4,3621
105
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/09_0_aggregate_missing_mismatch_header.md,sha256=dHK_0pxtIlJZ69QRair8n8AlE50xz6aH34OhOzlipHU,50
106
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/10_0_aggr_mismatched_records.sql,sha256=JpkrNAPkgJKTmdNCA5XsMT6l5e1EOknI0Nm8R0d7s4g,572
107
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/11_0_aggr_missing_in_databricks.sql,sha256=UhTygw91AYMun7NqvA8N5zoTuulyUYiLyB0f9TZAS5Y,593
108
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/11_1_aggr_missing_in_source.sql,sha256=EUlwqB1woZ0N6pT8tIj81Hia3EbAmxVLeUoBkMMfDVo,589
109
+ databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/dashboard.yml,sha256=qj4nh6hx4YtCK-mSIEt_RnvRWKpA0_HOk7rA1Bjf-Ks,10865
110
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/00_0_recon_main.md,sha256=dpYuoOsLZozbqYABSHGy1TItgFAoCd4hH0DOeVbYeZA,205
111
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/01_0_recon_id.filter.yml,sha256=Vk1P7zqo0IqoLqIEqKkOmROlQ95Cfo7nu3kGKbpLXbQ,78
112
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/01_1_report_type.filter.yml,sha256=lLlaqikXIftjMGid7QY8hxj3noZQmeZpCZQyrUcJe7U,70
113
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/01_2_executed_by.filter.yml,sha256=wJV2dunN1JtbZAyKfsB_vZme0fJNIWvcBdmc3fgVMNQ,70
114
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/02_0_source_type.filter.yml,sha256=SN1hp_M4Wx8ihx1tZLUJhDcunWGw37u77FabUrlnbLw,70
115
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/02_1_source_table.filter.yml,sha256=KDRWqokk6kxKdYKZwe9-zteVtDUoJCDKbJBphjg4G5Q,95
116
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/02_2_target_table.filter.yml,sha256=N9cOadN175FTElJ1E04g0ex5raKEFKXIfXNkvdpfL_k,95
117
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/03_0_started_at.filter.yml,sha256=oLZLdXGTIGN3u9Wky4WwzgreRAmtBMmRLGN3i4g3w4A,71
118
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/05_0_summary_table.sql,sha256=_6RalnF-296Fhjj_5MveeuWgIaPtayZoMmuyqwyoMeg,1829
119
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/06_0_schema_comparison_header.md,sha256=rrpK3UW9PNaMHdCgKizxn_n4l00mCVHNR5vVbJAItjU,91
120
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/07_0_schema_details_table.sql,sha256=0FotjEy803IyjpVMCJFG1FoWZyUPoy3b_xRHgfRGmeM,1390
121
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/08_0_drill_down_header.md,sha256=qlcU5oijVezYV5_w3oZaJfDvyyxsfOi1AW1hB_ugq9E,163
122
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/09_0_recon_id.filter.yml,sha256=mqAufC_xR1Mw7daWkwcvt2bTH9KktVbqTQpzwBUgBRo,58
123
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/09_1_category.filter.yml,sha256=kjqv2C-lBDWgi7dcU3ifNs0pr3gJ8k_X7a6ZyHHJTXA,60
124
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/10_0_target_table.filter.yml,sha256=kb4rHevX4k5qL6raQZn5z4t9G_BSbuHT4Gg4EaN_BgM,71
125
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/10_1_source_table.filter.yml,sha256=YnYVu0tgeWugvrXivEkleBkbEW0T1Y_LNn9hRw77kiI,71
126
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/11_0_recon_details_pivot.sql,sha256=XrKfNujGmxQue3qXO8yyVBLdwsMo8LyU2S5KNZNnpQ4,1337
127
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/12_0_daily_data_validation_issue_header.md,sha256=e_R2XeyOhZFXdn1USkGvC8A7Q7cMRj4cUl9RF2kfyNw,356
128
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/13_0_success_fail_.filter.yml,sha256=ORbhFAe46xlKkF5ZYyzUyg2wbq5W7Ckzg2CkEBixVJg,55
129
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/14_0_failed_recon_ids.sql,sha256=WSLup6jCDTGYVG6Jij7gItRkolx7tD-6E4Dv1GeU4Xc,539
130
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/15_0_total_failed_runs.sql,sha256=Qph1KBw4uNoU8AuoXgtF7r3dnDpjMYnyRGp5vtK9CrA,307
131
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/15_1_failed_targets.sql,sha256=GTcUZmXeWgXjQqTkKl-HQ6MdN0AIAK3sEWsCizHC13g,392
132
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/15_2_successful_targets.sql,sha256=9jH-Xw6rYQPCeHUiLv1g5MKPKyPU6FeeXuBF-zAUanU,395
133
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/16_0_missing_mismatch_header.md,sha256=dHK_0pxtIlJZ69QRair8n8AlE50xz6aH34OhOzlipHU,50
134
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/17_0_mismatched_records.sql,sha256=EpN5Zr7mn3qGdIBAR4RfOsgbwjNrSlH1JLbE2DjNvAM,552
135
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/17_1_threshold_mismatches.sql,sha256=v6PMAf-AF8E2lT-tpjCza53ZT9rARWH9YMv-IhQbc9A,556
136
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/18_0_missing_in_databricks.sql,sha256=JvfrZWHPVyUWm6IZPtodRDHYFvqXCcwE2AtExqtvgS0,554
137
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/18_1_missing_in_source.sql,sha256=CAwml1SJewE7Lm0HrylTTLdt41HX0iH5cPdo_BFIOuU,550
138
+ databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/dashboard.yml,sha256=twhaLh8U6wvyJY9s6SDZe29QsnQD_ml60pbLe3ZcG38,16186
139
+ databricks/labs/lakebridge/resources/reconcile/queries/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
140
+ databricks/labs/lakebridge/resources/reconcile/queries/installation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
+ databricks/labs/lakebridge/resources/reconcile/queries/installation/aggregate_details.sql,sha256=cjuJxUFBeeAMjTJVvnGOl-FujORucucOSjEEgV_YPwU,228
142
+ databricks/labs/lakebridge/resources/reconcile/queries/installation/aggregate_metrics.sql,sha256=-U1RmToarzcCNnWVFT7V6sHy5OfVdthyzDaEEAs7Qk0,653
143
+ databricks/labs/lakebridge/resources/reconcile/queries/installation/aggregate_rules.sql,sha256=bjy39iLajAP5jXvIN_uCyHJeYaYJ9VMEJKwX9LW3PtQ,187
144
+ databricks/labs/lakebridge/resources/reconcile/queries/installation/details.sql,sha256=y6ycN8gh2W-dEYWXyH1EY6J3Vnvmnm9hFMH0G_1qrvA,218
145
+ databricks/labs/lakebridge/resources/reconcile/queries/installation/main.sql,sha256=s_A0YyGSX_pCWnQsQnY65VYFcbNvq2qKJvYxU6zam6E,794
146
+ databricks/labs/lakebridge/resources/reconcile/queries/installation/metrics.sql,sha256=FdvjQp7gCwsbcu4UrOuJN-bBLJFpvUIyxH6PQvg04Wo,1006
147
+ databricks/labs/lakebridge/transpiler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
148
+ databricks/labs/lakebridge/transpiler/execute.py,sha256=rp-Fc0bpt59eW6_4WepZNEhPeQ3J2tGBWrycImZ7LwQ,16016
149
+ databricks/labs/lakebridge/transpiler/transpile_engine.py,sha256=9o-MXAnCChbFxv9Kg8kGLXdc8BZmtlwV5JdMPiuTQNk,1827
150
+ databricks/labs/lakebridge/transpiler/transpile_status.py,sha256=MO-Ju-ki3FCY15WxgwfPV9EC7Ma9q8aIfSTgHAmnkGU,1715
151
+ databricks/labs/lakebridge/transpiler/lsp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
+ databricks/labs/lakebridge/transpiler/lsp/lsp_engine.py,sha256=6H12u41I6HxXqF8SII6janxXkT4GG9VcrsDFeOmA7Cg,22325
153
+ databricks/labs/lakebridge/transpiler/sqlglot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
154
+ databricks/labs/lakebridge/transpiler/sqlglot/dialect_utils.py,sha256=GhXXWGA_2PlmHKjxrjryZpA5xaVZ81Vrw3b7DzjpFFI,1033
155
+ databricks/labs/lakebridge/transpiler/sqlglot/lca_utils.py,sha256=vpDLGhE-wFMah1VTXkMg6gI_QnzdzpYZf0h9DUd8zcI,5154
156
+ databricks/labs/lakebridge/transpiler/sqlglot/local_expression.py,sha256=V69eEJHyZKxmyaham6OulYnwQRqkbGUrdiWm1EWP8YE,3825
157
+ databricks/labs/lakebridge/transpiler/sqlglot/sqlglot_engine.py,sha256=3-YTEDPCk3Q7nT6A09D0p_IH8ftC3wr4sPF23Yy_OJM,10053
158
+ databricks/labs/lakebridge/transpiler/sqlglot/generator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
159
+ databricks/labs/lakebridge/transpiler/sqlglot/generator/databricks.py,sha256=tF38z3J-P0mDnGeDmCzAiowAUoShiosimM6nfR_-3Ro,30653
160
+ databricks/labs/lakebridge/transpiler/sqlglot/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
161
+ databricks/labs/lakebridge/transpiler/sqlglot/parsers/oracle.py,sha256=cfsE99ixgm2Rrn6T0vyjC2e_68-n1e14fceVUDYZKBQ,711
162
+ databricks/labs/lakebridge/transpiler/sqlglot/parsers/presto.py,sha256=bY6Ku8ZPW0x_N6Ea0RdfGOZQ3prIfTVI3d-rXYagdGc,8071
163
+ databricks/labs/lakebridge/transpiler/sqlglot/parsers/snowflake.py,sha256=dZ7BdOlBZlkbiN9G9bu4l2c456265Gx9WoWUPRa7Ffg,23203
164
+ databricks/labs/lakebridge/upgrades/v0.4.0_add_main_table_operation_name_column.py,sha256=wMTbj1q5td4fa5DCk0tWFJ-OmhhzsExRLYUe4PKmk0s,3527
165
+ databricks/labs/lakebridge/upgrades/v0.6.0_alter_metrics_datatype.py,sha256=hnTHRtqzwPSF5Judzh6ss-uB5h3IFtm2ylWduwRNq5Y,2424
166
+ databricks_labs_lakebridge-0.10.0.dist-info/METADATA,sha256=BQmePjGWijN6otjQ1PTOtO1k6uyYEhQO5q7_rYgBifU,3076
167
+ databricks_labs_lakebridge-0.10.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
168
+ databricks_labs_lakebridge-0.10.0.dist-info/entry_points.txt,sha256=Idr1CT73b8wShdr287yu1hheGbDbhBvucVUlZcbpiPo,75
169
+ databricks_labs_lakebridge-0.10.0.dist-info/licenses/LICENSE,sha256=1hG0Cvw6mp9nL9qRoHFcCUk9fYqhcnj2vgJ75rt3BxA,3862
170
+ databricks_labs_lakebridge-0.10.0.dist-info/licenses/NOTICE,sha256=wtxMsNvTkw1hAEkkWHz8A8JrYySAUSt1tOTcqddkWEg,1797
171
+ databricks_labs_lakebridge-0.10.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.27.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [databricks]
2
+ reconcile = databricks.labs.lakebridge.reconcile.execute:main
@@ -0,0 +1,69 @@
1
+ Databricks License
2
+ Copyright (2024) Databricks, Inc.
3
+
4
+ Definitions.
5
+
6
+ Agreement: The agreement between Databricks, Inc., and you governing
7
+ the use of the Databricks Services, as that term is defined in
8
+ the Master Cloud Services Agreement (MCSA) located at
9
+ www.databricks.com/legal/mcsa.
10
+
11
+ Licensed Materials: The source code, object code, data, and/or other
12
+ works to which this license applies.
13
+
14
+ Scope of Use. You may not use the Licensed Materials except in
15
+ connection with your use of the Databricks Services pursuant to
16
+ the Agreement. Your use of the Licensed Materials must comply at all
17
+ times with any restrictions applicable to the Databricks Services,
18
+ generally, and must be used in accordance with any applicable
19
+ documentation. You may view, use, copy, modify, publish, and/or
20
+ distribute the Licensed Materials solely for the purposes of using
21
+ the Licensed Materials within or connecting to the Databricks Services.
22
+ If you do not agree to these terms, you may not view, use, copy,
23
+ modify, publish, and/or distribute the Licensed Materials.
24
+
25
+ Redistribution. You may redistribute and sublicense the Licensed
26
+ Materials so long as all use is in compliance with these terms.
27
+ In addition:
28
+
29
+ - You must give any other recipients a copy of this License;
30
+ - You must cause any modified files to carry prominent notices
31
+ stating that you changed the files;
32
+ - You must retain, in any derivative works that you distribute,
33
+ all copyright, patent, trademark, and attribution notices,
34
+ excluding those notices that do not pertain to any part of
35
+ the derivative works; and
36
+ - If a "NOTICE" text file is provided as part of its
37
+ distribution, then any derivative works that you distribute
38
+ must include a readable copy of the attribution notices
39
+ contained within such NOTICE file, excluding those notices
40
+ that do not pertain to any part of the derivative works.
41
+
42
+ You may add your own copyright statement to your modifications and may
43
+ provide additional license terms and conditions for use, reproduction,
44
+ or distribution of your modifications, or for any such derivative works
45
+ as a whole, provided your use, reproduction, and distribution of
46
+ the Licensed Materials otherwise complies with the conditions stated
47
+ in this License.
48
+
49
+ Termination. This license terminates automatically upon your breach of
50
+ these terms or upon the termination of your Agreement. Additionally,
51
+ Databricks may terminate this license at any time on notice. Upon
52
+ termination, you must permanently delete the Licensed Materials and
53
+ all copies thereof.
54
+
55
+ DISCLAIMER; LIMITATION OF LIABILITY.
56
+
57
+ THE LICENSED MATERIALS ARE PROVIDED “AS-IS” AND WITH ALL FAULTS.
58
+ DATABRICKS, ON BEHALF OF ITSELF AND ITS LICENSORS, SPECIFICALLY
59
+ DISCLAIMS ALL WARRANTIES RELATING TO THE LICENSED MATERIALS, EXPRESS
60
+ AND IMPLIED, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES,
61
+ CONDITIONS AND OTHER TERMS OF MERCHANTABILITY, SATISFACTORY QUALITY OR
62
+ FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. DATABRICKS AND
63
+ ITS LICENSORS TOTAL AGGREGATE LIABILITY RELATING TO OR ARISING OUT OF
64
+ YOUR USE OF OR DATABRICKS’ PROVISIONING OF THE LICENSED MATERIALS SHALL
65
+ BE LIMITED TO ONE THOUSAND ($1,000) DOLLARS. IN NO EVENT SHALL
66
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
67
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
68
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE LICENSED MATERIALS OR
69
+ THE USE OR OTHER DEALINGS IN THE LICENSED MATERIALS.
@@ -0,0 +1,42 @@
1
+ Copyright (2024) Databricks, Inc.
2
+
3
+ This software includes software developed at Databricks (https://www.databricks.com/) and its use is subject to the included LICENSE file.
4
+
5
+ ____________________
6
+ This software contains code from the following open source projects, licensed under the MIT license (https://opensource.org/license/mit):
7
+
8
+ SQL Glot - https://github.com/tobymao/sqlglot
9
+ Copyright 2023 Toby Mao
10
+
11
+ Sqlalchemy - https://github.com/sqlalchemy/sq
12
+ Copyright 2005-2025 SQLAlchemy authors and contributors <see AUTHORS file>.
13
+
14
+ Duckdb - https://github.com/duckdb/duckdb
15
+ Copyright 2018-2025 Stichting DuckDB Foundation
16
+
17
+ ____________________
18
+ This software contains code from the following open source projects, licensed under the Apache 2.0 license (https://www.apache.org/licenses/LICENSE-2.0):
19
+
20
+ Databricks SDK for Python - https://github.com/databricks/databricks-sdk-py
21
+ Copyright 2023 Databricks, Inc. All rights reserved.
22
+
23
+ cryptography - https://github.com/pyca/cryptography
24
+ Copyright 2013-2023 The Python Cryptographic Authority and individual contributors.
25
+
26
+ Pygls - https://github.com/openlawlibrary/pygls
27
+ Copyright pygls authors.
28
+
29
+ ____________________
30
+ This software contains code from the following open source projects, licensed under the Python Software license (https://opensource.org/license/python-2-0):
31
+
32
+ Standard-distutils - https://pypi.org/project/standard-distutils/
33
+ Copyright standard-distutils authors.
34
+
35
+ ____________________
36
+ This software contains code from the following publicly available projects, licensed under the Databricks (DB) license (https://www.databricks.com/legal/db-license):
37
+
38
+ Databricks Labs Blueprint - https://github.com/databrickslabs/blueprint
39
+ Copyright (2023) Databricks, Inc.
40
+
41
+ Databricks Labs lsql - databricks-labs-lsql
42
+ Copyright (2024) Databricks, Inc.
@@ -0,0 +1,81 @@
1
+ import React, { ReactNode, CSSProperties } from 'react';
2
+ import clsx from 'clsx';
3
+ import Link from '@docusaurus/Link';
4
+
5
+ // Define the Button type to control the props that can be passed to the Button component.
6
+ type Button = {
7
+ // The size prop can be one of the following values: 'sm', 'lg', 'small', 'medium', 'large', or null.
8
+ // We'll convert 'small' to 'sm' and 'large' to 'lg' in the component. 'medium' will be considered null.
9
+ size?: 'sm' | 'lg' | 'small' | 'medium' | 'large' | null;
10
+ // The outline prop is a boolean that determines if the button should be an outline button.
11
+ outline?: boolean;
12
+ // The variant prop is a string that determines the color of the button.
13
+ // It can be one of the following values: 'primary', 'secondary', 'danger', 'warning', 'success', 'info', 'link', or any other string.
14
+ // The default value is 'primary'.
15
+ variant: 'primary' | 'secondary' | 'danger' | 'warning' | 'success' | 'info' | 'link' | string;
16
+ // The block prop is a boolean that determines if the button should be a block-level button.
17
+ block?: boolean;
18
+ // The disabled prop is a boolean that determines if the button should be disabled.
19
+ disabled?: boolean;
20
+ // The className prop is a string that allows you to add custom classes to the button.
21
+ className?: string;
22
+ // The style prop is an object that allows you to add custom styles to the button.
23
+ style?: CSSProperties;
24
+ // The link prop is a string that determines the URL the button should link to.
25
+ link: string;
26
+ // The label prop is a string that determines the text of the button.
27
+ label: string;
28
+ linkClassName?: string;
29
+ }
30
+
31
+ // Button component that accepts the specified props.
32
+ export default function Button({
33
+ size = null,
34
+ outline = false,
35
+ variant = 'primary',
36
+ block = false,
37
+ disabled = false,
38
+ className,
39
+ style,
40
+ link,
41
+ label,
42
+ linkClassName,
43
+ }: Button) {
44
+ // Map the size prop values to corresponding CSS classes.
45
+ const sizeMap = {
46
+ sm: 'sm',
47
+ small: 'sm',
48
+ lg: 'lg',
49
+ large: 'lg',
50
+ medium: null,
51
+ };
52
+ const buttonSize = size ? sizeMap[size] : '';
53
+ const sizeClass = buttonSize ? `button--${buttonSize}` : '';
54
+ const outlineClass = outline ? 'button--outline' : '';
55
+ const variantClass = variant ? `button--${variant}` : '';
56
+ const blockClass = block ? 'button--block' : '';
57
+ const disabledClass = disabled ? 'disabled' : '';
58
+ // If the button is disabled, set the destination to null.
59
+ const destination = disabled ? null : link;
60
+ return (
61
+ <Link to={destination} className={linkClassName}>
62
+ <button
63
+ className={clsx(
64
+ 'btn',
65
+ 'button',
66
+ sizeClass,
67
+ outlineClass,
68
+ variantClass,
69
+ blockClass,
70
+ disabledClass,
71
+ className
72
+ )}
73
+ style={style}
74
+ role='button'
75
+ aria-disabled={disabled}
76
+ >
77
+ {label}
78
+ </button>
79
+ </Link>
80
+ );
81
+ }
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Any CSS included here will be global. The classic template
3
+ * bundles Infima by default. Infima is a CSS framework designed to
4
+ * work well for content-centric websites.
5
+ */
6
+
7
+ /* import fonts: DM Mono and DM Sans */
8
+ @import url('https://fonts.googleapis.com/css2?family=DM+Mono:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap');
9
+ @import "table.css";
10
+
11
+ /* configure tailwindcss */
12
+ @tailwind base;
13
+ @tailwind components;
14
+ @tailwind utilities;
15
+
16
+ :root {
17
+ --ifm-font-family-base: 'DM Sans';
18
+ --ifm-heading-font-family: 'DM Sans';
19
+ --ifm-font-family-monospace: 'DM Mono', monospace;
20
+
21
+ --ifm-code-font-size: 95%;
22
+ --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
23
+
24
+ --ifm-footer-background-color: #1b3139;
25
+ --ifm-footer-color: var(--ifm-footer-link-color);
26
+ --ifm-footer-link-color: var(--ifm-color-secondary);
27
+ --ifm-footer-title-color: var(--ifm-color-white);
28
+
29
+ --ifm-link-decoration: none;
30
+ --ifm-link-hover-decoration: underline;
31
+
32
+ --ifm-color-primary: #2272b4;
33
+
34
+ --ifm-navbar-shadow: none;
35
+ }
36
+
37
+ html[data-theme="dark"] {
38
+ --ifm-color-primary: #4299e0;
39
+ }
40
+
41
+ .font-sans {
42
+ font-family: "DM Sans", sans-serif;
43
+ font-style: normal;
44
+ }
45
+
46
+ .navbar__brand {
47
+ margin-right: 1.5rem;
48
+
49
+ .navbar__logo {
50
+ width: 24px;
51
+ height: 24px;
52
+ }
53
+
54
+ .navbar__title {
55
+ text-transform: lowercase;
56
+ font-size: 24px;
57
+ font-weight: 550;
58
+ line-height: 1.1;
59
+ letter-spacing: -0.6px;
60
+ }
61
+ }
62
+
63
+ button {
64
+ @apply font-sans;
65
+ }
66
+
67
+ #search_input_react {
68
+ @apply font-sans;
69
+ }
70
+
71
+ .header-github-link::before {
72
+ content: '';
73
+ width: 24px;
74
+ height: 24px;
75
+ display: flex;
76
+ background-color: var(--ifm-navbar-link-color);
77
+ mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E");
78
+ transition: background-color var(--ifm-transition-fast)
79
+ var(--ifm-transition-timing-default);
80
+ }
81
+
82
+ .header-github-link:hover::before {
83
+ background-color: var(--ifm-navbar-link-hover-color);
84
+ }
85
+
86
+ .navbar {
87
+ flex-direction: column;
88
+ padding: 0;
89
+
90
+ .navbar__inner {
91
+ padding: var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal);
92
+ border-bottom: 1px solid var(--ifm-toc-border-color);
93
+
94
+ .navbar__items {
95
+ min-height: 43px;
96
+
97
+ .navbar__item {
98
+ padding: 0 var(--ifm-navbar-item-padding-horizontal);
99
+ }
100
+ }
101
+ }
102
+ }
103
+
104
+ h1 {
105
+ font-weight: 500;
106
+ font-size: 45px;
107
+ }
108
+
109
+ h2 {
110
+ font-weight: 300;
111
+ font-size: 34px;
112
+ }
113
+
114
+ h3 {
115
+ font-weight: 500;
116
+ font-size: 28px;
117
+ }
118
+
119
+ .markdown {
120
+ h1, h2, h3, h4, h5, h6 {
121
+ font-weight: 500;
122
+ }
123
+ }
124
+
125
+ .breadcrumbs__link.breadcrumbs__link {
126
+ color: var(--ifm-color-primary);
127
+
128
+ &:hover {
129
+ background: transparent;
130
+ }
131
+ }
132
+
133
+ .breadcrumbs__item--active .breadcrumbs__link {
134
+ background: transparent;
135
+ color: var(--ifm-font-color-base);
136
+ }
137
+
138
+ .menu.menu {
139
+ padding: 0.5rem;
140
+
141
+ .menu__link {
142
+ font-size: .875rem;
143
+ font-weight: 400;
144
+ }
145
+
146
+ .menu__caret {
147
+ &:before {
148
+ width: 1rem;
149
+ height: 1rem;
150
+ background-size: 1.4rem 1.4rem;
151
+ }
152
+ }
153
+
154
+ .menu__link--sublist-caret {
155
+ &:after {
156
+ width: 1rem;
157
+ height: 1rem;
158
+ background-size: 1.4rem 1.4rem;
159
+ }
160
+ }
161
+ }
162
+
163
+ .dropdown>.navbar__link:after {
164
+ border: .3em solid transparent;
165
+ border-top-color: currentColor;
166
+ top: 6px;
167
+ }
@@ -0,0 +1,20 @@
1
+ :root {
2
+ --ifm-table-stripe-background: transparent;
3
+ }
4
+
5
+ html[data-theme="dark"] {
6
+ --ifm-table-stripe-background: rgba(255, 255, 255, .07);
7
+ }
8
+
9
+ table {
10
+ width: 100%;
11
+ border-collapse: collapse;
12
+ display: block;
13
+ overflow: auto;
14
+
15
+ tbody {
16
+ tr:nth-child(2n) {
17
+ background-color: transparent;
18
+ }
19
+ }
20
+ }
@@ -0,0 +1,57 @@
1
+ import Layout from '@theme/Layout';
2
+ import { JSX } from 'react';
3
+ import Button from '../components/Button';
4
+ import React from 'react';
5
+
6
+ const Hero = () => {
7
+ return (
8
+
9
+ <div className="w-full px-4 md:px-10 flex flex-col justify-center items-center">
10
+ <div className="m-2">
11
+ <img src="img/lakebridge-icon.svg" alt="Lakebridge Logo" className="w-32 md:w-48" />
12
+ </div>
13
+
14
+ <h1 className="text-4xl md:text-5xl text-center mb-6">
15
+ Lakebridge - Fast, predictable migrations to Databricks
16
+ </h1>
17
+
18
+ <p className="text-lg text-center text-balance">
19
+ Lakebridge is a comprehensive toolkit designed to facilitate seamless migrations to Databricks.
20
+ </p>
21
+
22
+ <div className="mt-12 flex flex-wrap justify-center flex-col md:flex-row gap-y-4 md:gap-y-4 md:gap-x-4">
23
+ <Button
24
+ variant="primary"
25
+ link="docs/overview/"
26
+ size="large"
27
+ label="Overview"
28
+ className="bg-[#1b3139] text-white rounded-none border-0 px-6 py-2 font-medium text-base leading-6"
29
+ />
30
+ <Button
31
+ variant="primary"
32
+ link="/docs/installation"
33
+ size="large"
34
+ label="Get Started"
35
+ className="bg-[#eb1600] text-white rounded-none border-0 px-6 py-2 font-medium text-base leading-6"
36
+ />
37
+ <Button
38
+ variant="primary"
39
+ link="docs/transpile/overview"
40
+ size="large"
41
+ label="Learn more"
42
+ className="bg-[#1b3139] text-white rounded-none border-0 px-6 py-2 font-medium text-base leading-6"
43
+ />
44
+ </div>
45
+ </div>
46
+ );
47
+ };
48
+
49
+ export default function Home(): JSX.Element {
50
+ return (
51
+ <Layout>
52
+ <div className='flex grow justify-center mx-auto'>
53
+ <Hero />
54
+ </div>
55
+ </Layout>
56
+ );
57
+ }