maisaedu-poormans-dms 1.2.6__tar.gz → 1.2.8__tar.gz

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 (58) hide show
  1. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/PKG-INFO +1 -1
  2. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_dynamo_migration/Writer/WriterCDC.py +6 -3
  3. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_dynamo_migration/Writer/WriterFull.py +4 -2
  4. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_dynamo_migration/models/Struct.py +4 -0
  5. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_dynamo_migration/services/Struct.py +5 -1
  6. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/sql_server_migration.py +5 -2
  7. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms.egg-info/PKG-INFO +1 -1
  8. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/setup.py +1 -1
  9. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/LICENSE +0 -0
  10. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/__init__.py +0 -0
  11. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/postgres_migration/Contracts/MigratorInterface.py +0 -0
  12. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/postgres_migration/Contracts/MigratorRowInterface.py +0 -0
  13. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/postgres_migration/Contracts/MigratorRowReaderInterface.py +0 -0
  14. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/postgres_migration/Contracts/MigratorRowWriterInterface.py +0 -0
  15. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/postgres_migration/Contracts/MigratorTableInterface.py +0 -0
  16. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/postgres_migration/Contracts/__init__.py +0 -0
  17. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/postgres_migration/Migrator.py +0 -0
  18. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/postgres_migration/MigratorRow/MigratorRow.py +0 -0
  19. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/postgres_migration/MigratorRow/Reader.py +0 -0
  20. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/postgres_migration/MigratorRow/Writer.py +0 -0
  21. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/postgres_migration/MigratorRow/__init__.py +0 -0
  22. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/postgres_migration/MigratorTable.py +0 -0
  23. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/postgres_migration/__init__.py +0 -0
  24. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_dynamo_migration/Connector.py +0 -0
  25. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_dynamo_migration/DynamoReplicator.py +0 -0
  26. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_dynamo_migration/Writer/__init__.py +0 -0
  27. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_dynamo_migration/__init__.py +0 -0
  28. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_dynamo_migration/models/__init__.py +0 -0
  29. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_dynamo_migration/services/__init__.py +0 -0
  30. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Connector.py +0 -0
  31. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Contracts/ReaderInterface.py +0 -0
  32. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Contracts/WriterInterface.py +0 -0
  33. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Contracts/__init__.py +0 -0
  34. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Logger.py +0 -0
  35. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/MigratorRedshift.py +0 -0
  36. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Models/ExtractionOperation.py +0 -0
  37. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Models/Struct.py +0 -0
  38. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Models/__init__.py +0 -0
  39. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Reader/GenericReader.py +0 -0
  40. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Reader/PostgresReader.py +0 -0
  41. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Reader/SQLServerReader.py +0 -0
  42. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Reader/__init__.py +0 -0
  43. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Services/AdapterSourceTarget.py +0 -0
  44. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Services/ExtractionOperation.py +0 -0
  45. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Services/RelationExtraction.py +0 -0
  46. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Services/Struct.py +0 -0
  47. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Services/__init__.py +0 -0
  48. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Types.py +0 -0
  49. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Writer/GenericWriter.py +0 -0
  50. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Writer/WriterCDC.py +0 -0
  51. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Writer/WriterNonCDC.py +0 -0
  52. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/Writer/__init__.py +0 -0
  53. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms/redshift_migration/__init__.py +0 -0
  54. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms.egg-info/SOURCES.txt +0 -0
  55. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms.egg-info/dependency_links.txt +0 -0
  56. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms.egg-info/requires.txt +0 -0
  57. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/maisaedu_poormans_dms.egg-info/top_level.txt +0 -0
  58. {maisaedu-poormans-dms-1.2.6 → maisaedu-poormans-dms-1.2.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: maisaedu-poormans-dms
3
- Version: 1.2.6
3
+ Version: 1.2.8
4
4
  Summary: A library for making database migration tasks, for +A Education
5
5
  Home-page: UNKNOWN
6
6
  Author: A+ Educação
@@ -7,6 +7,9 @@ class WriterCDC:
7
7
  self.logger = logger
8
8
  self.struct = struct
9
9
 
10
+ self.partition_key = self.struct.partition_key
11
+ self.sort_key = self.struct.sort_key
12
+
10
13
  self.target = f"{self.struct.target_schema}.{self.struct.target_table}"
11
14
  self.view_name = self._get_view_name()
12
15
 
@@ -31,13 +34,13 @@ class WriterCDC:
31
34
  INSERT INTO tmp_cdc
32
35
  SELECT
33
36
  "payload"."eventName"::varchar AS event_name,
34
- "payload"."dynamodb"."Keys"."partitionKey"."S"::varchar AS partition_key,
35
- "payload"."dynamodb"."Keys"."sortKey"."S"::varchar AS sort_key,
37
+ "payload"."dynamodb"."Keys".{self.partition_key}::varchar AS partition_key,
38
+ "payload"."dynamodb"."Keys".{self.sort_key}::varchar AS sort_key,
36
39
  "payload"."dynamodb"."NewImage" AS item,
37
40
  TIMESTAMP 'epoch' + ("payload"."dynamodb"."ApproximateCreationDateTime"::bigint / 1e6) * INTERVAL '1 second' AS updated_at
38
41
  FROM (
39
42
  SELECT *,
40
- ROW_NUMBER() OVER (PARTITION BY "payload"."dynamodb"."Keys"."partitionKey"."S", "payload"."dynamodb"."Keys"."sortKey"."S" ORDER BY "payload"."dynamodb"."ApproximateCreationDateTime" DESC) as row_num
43
+ ROW_NUMBER() OVER (PARTITION BY "payload"."dynamodb"."Keys".{self.partition_key}, "payload"."dynamodb"."Keys".{self.sort_key} ORDER BY "payload"."dynamodb"."ApproximateCreationDateTime" DESC) as row_num
41
44
  FROM {self.view_name}
42
45
  WHERE
43
46
  (("payload"."dynamodb"."ApproximateCreationDateTime"::bigint) / 1e6) > (coalesce(extract('epoch' from (select max(updated_at) from {self.target})), 0) - {self.struct.incremental_interval_delta})
@@ -12,6 +12,8 @@ class WriterFull:
12
12
  self.struct = struct
13
13
  self.iam_role = get_iam_role(env)
14
14
 
15
+ self.partition_key = self.struct.partition_key
16
+ self.sort_key = self.struct.sort_key
15
17
  self.target = f"{self.struct.target_schema}.{self.struct.target_table}"
16
18
 
17
19
  def create_temp_table(self):
@@ -41,8 +43,8 @@ class WriterFull:
41
43
  f"""
42
44
  INSERT INTO {self.target} (partition_key, sort_key, item, updated_at)
43
45
  SELECT
44
- item."partitionKey"."S"::varchar AS partition_key,
45
- item."sortKey"."S"::varchar AS sort_key,
46
+ item.{self.partition_key}::varchar AS partition_key,
47
+ item.{self.sort_key}::varchar AS sort_key,
46
48
  item,
47
49
  NULL
48
50
  FROM
@@ -1,3 +1,4 @@
1
+ from typing import Optional
1
2
  from dataclasses import dataclass
2
3
 
3
4
  @dataclass
@@ -9,5 +10,8 @@ class Struct:
9
10
 
10
11
  target_schema: str
11
12
  target_table: str
13
+
14
+ partition_key: str
15
+ sort_key: Optional[str]
12
16
 
13
17
  incremental_interval_delta: int # Interval in seconds to consider for incremental loads
@@ -33,6 +33,8 @@ class Struct:
33
33
  source_table,
34
34
  target_schema,
35
35
  target_table,
36
+ source_dynamo_partition_key,
37
+ source_dynamo_sort_key,
36
38
  incremental_interval_delta
37
39
  from
38
40
  dataeng.relations_extraction
@@ -65,7 +67,9 @@ class Struct:
65
67
  source_table=r[2],
66
68
  target_schema=r[3],
67
69
  target_table=r[4],
68
- incremental_interval_delta=r[5] or DEFAULT_INCREMENTAL_INTERVAL_DELTA,
70
+ partition_key=r[5],
71
+ sort_key=r[6],
72
+ incremental_interval_delta=r[7] or DEFAULT_INCREMENTAL_INTERVAL_DELTA,
69
73
  s3_url=f"{base_url}/{s3_url}data"
70
74
  )
71
75
  )
@@ -357,8 +357,11 @@ def execute_sp(origin_secret, sp, variables):
357
357
  database=origin_secret["database"],
358
358
  ) as mssql_conn, mssql_conn.cursor(as_dict=True) as mssql_cursor:
359
359
  mssql_cursor.execute(query)
360
- data = mssql_cursor.fetchall()
361
- return data
360
+ while True:
361
+ data = mssql_cursor.fetchmany(size=1000)
362
+ if not data:
363
+ break
364
+ yield data
362
365
 
363
366
 
364
367
  def extract_load_data(origin_secret, info, insert_type="full", delete_type="truncate"):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: maisaedu-poormans-dms
3
- Version: 1.2.6
3
+ Version: 1.2.8
4
4
  Summary: A library for making database migration tasks, for +A Education
5
5
  Home-page: UNKNOWN
6
6
  Author: A+ Educação
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="maisaedu-poormans-dms",
5
- version="1.2.6",
5
+ version="1.2.8",
6
6
  description="A library for making database migration tasks, for +A Education",
7
7
  license="MIT License",
8
8
  author="A+ Educação",