Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrates Pipelines crawled during the assessment phase #2778

Open
wants to merge 77 commits into
base: main
Choose a base branch
from

Conversation

pritishpai
Copy link
Contributor

@pritishpai pritishpai commented Oct 1, 2024

Changes

Added PipelineMigrator to help with migration of DLT pipelines

Linked issues

Adds #3098

Functionality

  • added relevant user documentation
  • added a new workflow

Tests

  • manually tested
  • added unit tests
  • added integration tests
  • verified on staging environment (screenshot attached)

@nfx nfx linked an issue Oct 23, 2024 that may be closed by this pull request
6 tasks
@pritishpai pritishpai marked this pull request as ready for review October 29, 2024 16:32
@pritishpai pritishpai requested a review from a team as a code owner October 29, 2024 16:32
Copy link

github-actions bot commented Oct 29, 2024

❌ 53/55 passed, 2 failed, 4 skipped, 7h23m52s total

❌ test_all_grants_for_other_objects: AssertionError: assert {'MODIFY', 'SELECT'} == set() (13m21.016s)
AssertionError: assert {'MODIFY', 'SELECT'} == set()
  
  Extra items in the left set:
  'SELECT'
  'MODIFY'
  
  Full diff:
  - set()
  + {
  +     'MODIFY',
  +     'SELECT',
  + }
[gw4] linux -- Python 3.10.15 /home/runner/work/ucx/ucx/.venv/bin/python
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.grants] fetching grants inventory
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] Inventory table not found
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/framework/crawlers.py", line 152, in _snapshot
    cached_results = list(fetcher())
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/hive_metastore/grants.py", line 236, in _try_fetch
    for row in self._fetch(f"SELECT * FROM {escape_sql_identifier(self.full_name)}"):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 344, in fetch_all
    execute_response = self.execute(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 268, in execute
    self._raise_if_needed(status)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 478, in _raise_if_needed
    raise NotFound(error_message)
databricks.sdk.errors.platform.NotFound: [TABLE_OR_VIEW_NOT_FOUND] The table or view `hive_metastore`.`dummy_sc85a`.`grants` cannot be found. Verify the spelling and correctness of the schema and catalog.
If you did not qualify the name with a schema, verify the current_schema() output, or qualify the name with the correct schema and catalog.
To tolerate the error on drop use DROP VIEW IF EXISTS or DROP TABLE IF EXISTS. SQLSTATE: 42P01; line 1 pos 14
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.grants] crawling new set of snapshot data for grants
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.tables] fetching tables inventory
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] Inventory table not found
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/framework/crawlers.py", line 152, in _snapshot
    cached_results = list(fetcher())
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/hive_metastore/tables.py", line 411, in _try_fetch
    for row in self._fetch(f"SELECT * FROM {escape_sql_identifier(self.full_name)}"):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 344, in fetch_all
    execute_response = self.execute(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 268, in execute
    self._raise_if_needed(status)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 478, in _raise_if_needed
    raise NotFound(error_message)
databricks.sdk.errors.platform.NotFound: [TABLE_OR_VIEW_NOT_FOUND] The table or view `hive_metastore`.`dummy_sc85a`.`tables` cannot be found. Verify the spelling and correctness of the schema and catalog.
If you did not qualify the name with a schema, verify the current_schema() output, or qualify the name with the correct schema and catalog.
To tolerate the error on drop use DROP VIEW IF EXISTS or DROP TABLE IF EXISTS. SQLSTATE: 42P01; line 1 pos 14
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.tables] crawling new set of snapshot data for tables
20:05 DEBUG [databricks.labs.ucx.hive_metastore.tables] [hive_metastore.dummy_s9uw6] listing tables and views
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.tables] found 0 new records for tables
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.udfs] fetching udfs inventory
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] Inventory table not found
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/framework/crawlers.py", line 152, in _snapshot
    cached_results = list(fetcher())
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/hive_metastore/udfs.py", line 63, in _try_fetch
    for row in self._fetch(f"SELECT * FROM {escape_sql_identifier(self.full_name)}"):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 344, in fetch_all
    execute_response = self.execute(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 268, in execute
    self._raise_if_needed(status)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 478, in _raise_if_needed
    raise NotFound(error_message)
databricks.sdk.errors.platform.NotFound: [TABLE_OR_VIEW_NOT_FOUND] The table or view `hive_metastore`.`dummy_sc85a`.`udfs` cannot be found. Verify the spelling and correctness of the schema and catalog.
If you did not qualify the name with a schema, verify the current_schema() output, or qualify the name with the correct schema and catalog.
To tolerate the error on drop use DROP VIEW IF EXISTS or DROP TABLE IF EXISTS. SQLSTATE: 42P01; line 1 pos 14
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.udfs] crawling new set of snapshot data for udfs
20:05 DEBUG [databricks.labs.ucx.hive_metastore.udfs] [hive_metastore.dummy_s9uw6] listing udfs
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.udfs] found 0 new records for udfs
20:15 ERROR [databricks.labs.ucx.hive_metastore.grants] Couldn't fetch grants for object ANONYMOUS FUNCTION : TEMPORARILY_UNAVAILABLE: The service at /api/2.0/sql-acl/get-permissions is taking too long to process your request. Please try again later or try a faster operation. [TraceId: 00-dbb555ae0c9e4579ae9cc9970222d73e-391a3f11ec63a478-00]
20:16 ERROR [databricks.labs.ucx.hive_metastore.grants] Couldn't fetch grants for object ANY FILE : TEMPORARILY_UNAVAILABLE: The service at /api/2.0/sql-acl/get-permissions is taking too long to process your request. Please try again later or try a faster operation. [TraceId: 00-15d3ef22ee2693679f19ad92b65c2ac0-3bc28fdf1a58bbcc-00]
20:16 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.grants] found 3 new records for grants
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.grants] fetching grants inventory
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] Inventory table not found
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/framework/crawlers.py", line 152, in _snapshot
    cached_results = list(fetcher())
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/hive_metastore/grants.py", line 236, in _try_fetch
    for row in self._fetch(f"SELECT * FROM {escape_sql_identifier(self.full_name)}"):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 344, in fetch_all
    execute_response = self.execute(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 268, in execute
    self._raise_if_needed(status)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 478, in _raise_if_needed
    raise NotFound(error_message)
databricks.sdk.errors.platform.NotFound: [TABLE_OR_VIEW_NOT_FOUND] The table or view `hive_metastore`.`dummy_sc85a`.`grants` cannot be found. Verify the spelling and correctness of the schema and catalog.
If you did not qualify the name with a schema, verify the current_schema() output, or qualify the name with the correct schema and catalog.
To tolerate the error on drop use DROP VIEW IF EXISTS or DROP TABLE IF EXISTS. SQLSTATE: 42P01; line 1 pos 14
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.grants] crawling new set of snapshot data for grants
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.tables] fetching tables inventory
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] Inventory table not found
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/framework/crawlers.py", line 152, in _snapshot
    cached_results = list(fetcher())
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/hive_metastore/tables.py", line 411, in _try_fetch
    for row in self._fetch(f"SELECT * FROM {escape_sql_identifier(self.full_name)}"):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 344, in fetch_all
    execute_response = self.execute(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 268, in execute
    self._raise_if_needed(status)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 478, in _raise_if_needed
    raise NotFound(error_message)
databricks.sdk.errors.platform.NotFound: [TABLE_OR_VIEW_NOT_FOUND] The table or view `hive_metastore`.`dummy_sc85a`.`tables` cannot be found. Verify the spelling and correctness of the schema and catalog.
If you did not qualify the name with a schema, verify the current_schema() output, or qualify the name with the correct schema and catalog.
To tolerate the error on drop use DROP VIEW IF EXISTS or DROP TABLE IF EXISTS. SQLSTATE: 42P01; line 1 pos 14
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.tables] crawling new set of snapshot data for tables
20:05 DEBUG [databricks.labs.ucx.hive_metastore.tables] [hive_metastore.dummy_s9uw6] listing tables and views
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.tables] found 0 new records for tables
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.udfs] fetching udfs inventory
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] Inventory table not found
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/framework/crawlers.py", line 152, in _snapshot
    cached_results = list(fetcher())
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/hive_metastore/udfs.py", line 63, in _try_fetch
    for row in self._fetch(f"SELECT * FROM {escape_sql_identifier(self.full_name)}"):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 344, in fetch_all
    execute_response = self.execute(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 268, in execute
    self._raise_if_needed(status)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 478, in _raise_if_needed
    raise NotFound(error_message)
databricks.sdk.errors.platform.NotFound: [TABLE_OR_VIEW_NOT_FOUND] The table or view `hive_metastore`.`dummy_sc85a`.`udfs` cannot be found. Verify the spelling and correctness of the schema and catalog.
If you did not qualify the name with a schema, verify the current_schema() output, or qualify the name with the correct schema and catalog.
To tolerate the error on drop use DROP VIEW IF EXISTS or DROP TABLE IF EXISTS. SQLSTATE: 42P01; line 1 pos 14
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.udfs] crawling new set of snapshot data for udfs
20:05 DEBUG [databricks.labs.ucx.hive_metastore.udfs] [hive_metastore.dummy_s9uw6] listing udfs
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.udfs] found 0 new records for udfs
20:15 ERROR [databricks.labs.ucx.hive_metastore.grants] Couldn't fetch grants for object ANONYMOUS FUNCTION : TEMPORARILY_UNAVAILABLE: The service at /api/2.0/sql-acl/get-permissions is taking too long to process your request. Please try again later or try a faster operation. [TraceId: 00-dbb555ae0c9e4579ae9cc9970222d73e-391a3f11ec63a478-00]
20:16 ERROR [databricks.labs.ucx.hive_metastore.grants] Couldn't fetch grants for object ANY FILE : TEMPORARILY_UNAVAILABLE: The service at /api/2.0/sql-acl/get-permissions is taking too long to process your request. Please try again later or try a faster operation. [TraceId: 00-15d3ef22ee2693679f19ad92b65c2ac0-3bc28fdf1a58bbcc-00]
20:16 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sc85a.grants] found 3 new records for grants
[gw4] linux -- Python 3.10.15 /home/runner/work/ucx/ucx/.venv/bin/python
❌ test_all_grant_types: AssertionError: assert {('CATALOG', ...dummy_tmr5h')} == {('ANONYMOUS ..._firae'), ...} (13m34.716s)
AssertionError: assert {('CATALOG', ...dummy_tmr5h')} == {('ANONYMOUS ..._firae'), ...}
  
  Extra items in the right set:
  ('ANONYMOUS FUNCTION', None)
  ('ANY FILE', None)
  
  Full diff:
    {
  -     (
  -         'ANONYMOUS FUNCTION',
  -         None,
  -     ),
  -     (
  -         'ANY FILE',
  -         None,
  -     ),
        (
            'CATALOG',
            'hive_metastore',
        ),
        (
            'DATABASE',
            'hive_metastore.dummy_sn1co',
        ),
        (
            'TABLE',
            'hive_metastore.dummy_sn1co.dummy_txfjs',
        ),
        (
            'UDF',
            'hive_metastore.dummy_sn1co.dummy_firae',
        ),
        (
            'VIEW',
            'hive_metastore.dummy_sn1co.dummy_tmr5h',
        ),
    }
20:05 INFO [databricks.labs.ucx.install] Creating ucx schemas...
[gw3] linux -- Python 3.10.15 /home/runner/work/ucx/ucx/.venv/bin/python
20:05 INFO [databricks.labs.ucx.install] Creating ucx schemas...
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.grants] fetching grants inventory
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.grants] crawling new set of snapshot data for grants
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.tables] fetching tables inventory
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.tables] crawling new set of snapshot data for tables
20:05 DEBUG [databricks.labs.ucx.hive_metastore.tables] [hive_metastore.dummy_sn1co] listing tables and views
20:05 DEBUG [databricks.labs.ucx.hive_metastore.tables] [hive_metastore.dummy_sn1co.dummy_tmr5h] fetching table metadata
20:05 DEBUG [databricks.labs.ucx.hive_metastore.tables] [hive_metastore.dummy_sn1co.dummy_txfjs] fetching table metadata
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.tables] found 2 new records for tables
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.udfs] fetching udfs inventory
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.udfs] crawling new set of snapshot data for udfs
20:05 DEBUG [databricks.labs.ucx.hive_metastore.udfs] [hive_metastore.dummy_sn1co] listing udfs
20:05 DEBUG [databricks.labs.ucx.hive_metastore.udfs] [hive_metastore.dummy_sn1co.dummy_firae] fetching udf metadata
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.udfs] found 1 new records for udfs
20:08 WARNING [databricks.labs.ucx.hive_metastore.grants] Schema hive_metastore.dummy_sonpp no longer existed
20:16 ERROR [databricks.labs.ucx.hive_metastore.grants] Couldn't fetch grants for object ANY FILE : TEMPORARILY_UNAVAILABLE: The service at /api/2.0/sql-acl/get-permissions is taking too long to process your request. Please try again later or try a faster operation. [TraceId: 00-3b28bb6ed63ff707c24eea541dbe4ed6-e0c157e515c47483-00]
20:17 ERROR [databricks.labs.ucx.hive_metastore.grants] Couldn't fetch grants for object ANONYMOUS FUNCTION : TEMPORARILY_UNAVAILABLE: The service at /api/2.0/sql-acl/get-permissions is taking too long to process your request. Please try again later or try a faster operation. [TraceId: 00-46e1a53c6d66275eceeb6cd82032fdca-649c3b36ab6167e3-00]
20:17 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.grants] found 100 new records for grants
20:05 INFO [databricks.labs.ucx.install] Creating ucx schemas...
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.grants] fetching grants inventory
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.grants] crawling new set of snapshot data for grants
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.tables] fetching tables inventory
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.tables] crawling new set of snapshot data for tables
20:05 DEBUG [databricks.labs.ucx.hive_metastore.tables] [hive_metastore.dummy_sn1co] listing tables and views
20:05 DEBUG [databricks.labs.ucx.hive_metastore.tables] [hive_metastore.dummy_sn1co.dummy_tmr5h] fetching table metadata
20:05 DEBUG [databricks.labs.ucx.hive_metastore.tables] [hive_metastore.dummy_sn1co.dummy_txfjs] fetching table metadata
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.tables] found 2 new records for tables
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.udfs] fetching udfs inventory
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.udfs] crawling new set of snapshot data for udfs
20:05 DEBUG [databricks.labs.ucx.hive_metastore.udfs] [hive_metastore.dummy_sn1co] listing udfs
20:05 DEBUG [databricks.labs.ucx.hive_metastore.udfs] [hive_metastore.dummy_sn1co.dummy_firae] fetching udf metadata
20:05 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.udfs] found 1 new records for udfs
20:08 WARNING [databricks.labs.ucx.hive_metastore.grants] Schema hive_metastore.dummy_sonpp no longer existed
20:16 ERROR [databricks.labs.ucx.hive_metastore.grants] Couldn't fetch grants for object ANY FILE : TEMPORARILY_UNAVAILABLE: The service at /api/2.0/sql-acl/get-permissions is taking too long to process your request. Please try again later or try a faster operation. [TraceId: 00-3b28bb6ed63ff707c24eea541dbe4ed6-e0c157e515c47483-00]
20:17 ERROR [databricks.labs.ucx.hive_metastore.grants] Couldn't fetch grants for object ANONYMOUS FUNCTION : TEMPORARILY_UNAVAILABLE: The service at /api/2.0/sql-acl/get-permissions is taking too long to process your request. Please try again later or try a faster operation. [TraceId: 00-46e1a53c6d66275eceeb6cd82032fdca-649c3b36ab6167e3-00]
20:17 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_sf6vp.grants] found 100 new records for grants
[gw3] linux -- Python 3.10.15 /home/runner/work/ucx/ucx/.venv/bin/python

Running from acceptance #7363

Copy link
Collaborator

@nfx nfx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. make integration tests less flaky
  2. add cli command and document it in readme
  3. check if we can avoid creating a CSV mapping

tests/integration/hive_metastore/test_pipeline_migrate.py Outdated Show resolved Hide resolved
tests/integration/hive_metastore/test_pipeline_migrate.py Outdated Show resolved Hide resolved

def _migrate_pipelines(self):
# get pipelines to migrate
pipelines_to_migrate = self._pm.get_pipelines_to_migrate(self._pc)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we need a csv mapping for this one? we're copying pipelines, so there's less risk, right?

can you rather rename the old pipeline with [OLD] suffix and stop it. then start the new one.

also i'm not seeing the updates of pipeline ids into jobs that trigger them via pipeline task.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CSV mapping is to allow custom values for the optional parameters of clone API call: target_schema_name and target_pipeline_name. If doing a default 'as-is' migration, can directly migrate with default values. The csv will also allow for cleanup if the user does not want to migrate some pipelines.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can:

  • Migrate all pipelines to one catalog.schema given input parameters from the cli. It is less flexible than a mapping, however, I do not know if it needs to be this flexible for pipelines.
  • Cleanup using a skip marker

src/databricks/labs/ucx/hive_metastore/workflows.py Outdated Show resolved Hide resolved
Copy link
Contributor

@JCZuurmond JCZuurmond left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added some pointers

self._pipeline_crawler = pipelines_crawler
self._pipeline_mapping = pipeline_mapping

def migrate_pipelines(self) -> None:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This method looks redundant

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FEATURE]: Add PipelineMigrator that uses the DLT Migration (clone) API
3 participants