sqlServerConnector 0.1.0__tar.gz → 0.1.1__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.
@@ -0,0 +1,130 @@
1
+ Metadata-Version: 2.4
2
+ Name: sqlServerConnector
3
+ Version: 0.1.1
4
+ Summary: A custom SQL Server Connector for ETL processes with Pandas
5
+ Author-email: Nguyen Minh Son <nguyen.minhson1511@gmail.com>
6
+ Project-URL: Homepage, https://github.com/johnnyb1509/sqlServerConnector
7
+ Keywords: sql,etl,pandas,sqlalchemy
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Operating System :: OS Independent
10
+ Requires-Python: >=3.8
11
+ Description-Content-Type: text/markdown
12
+ Requires-Dist: pandas>=1.5.0
13
+ Requires-Dist: numpy
14
+ Requires-Dist: sqlalchemy>=2.0.0
15
+ Requires-Dist: pyodbc
16
+ Requires-Dist: pyyaml
17
+ Requires-Dist: loguru
18
+ Requires-Dist: jupyterlab
19
+
20
+ # SQL Server Connector
21
+
22
+ Thư viện kết nối SQL Server chuyên dụng cho các tác vụ ETL, được tối ưu hóa cho **Pandas**, hỗ trợ **Tiếng Việt (Unicode)** và **Upsert (Merge)** hiệu năng cao.
23
+
24
+ ## 🚀 Tính năng nổi bật
25
+
26
+ * **High Performance:** Sử dụng `fast_executemany` giúp insert dữ liệu nhanh gấp 10-50 lần so với thông thường.
27
+ * **Smart Upsert:** Tự động chèn mới (Insert) hoặc cập nhật (Update) dựa trên Khóa chính (Primary Key).
28
+ * **Schema Evolution:** Tự động tạo bảng nếu chưa có, tự động thêm cột mới (Add Column) nếu DataFrame có thay đổi.
29
+ * **Unicode Support:** Xử lý triệt để lỗi font chữ Tiếng Việt khi làm việc với SQL Server & Pandas.
30
+ * **SQLAlchemy 2.0:** Tuân thủ chuẩn kết nối hiện đại, an toàn.
31
+
32
+ ---
33
+
34
+ ## 📦 Cài đặt
35
+
36
+ ### Cách 1: Cài đặt trực tiếp từ Git (Khuyên dùng nội bộ)
37
+ Dành cho đồng nghiệp trong team, cài đặt không cần file whl.
38
+
39
+ ```bash
40
+ # Cài phiên bản mới nhất từ nhánh main
41
+
42
+ pip install git+https://github.com/johnnyb1509/sqlServerConnector.git
43
+ ```
44
+
45
+ ### Cách 2: Cài đặt từ file .whl
46
+ Dành cho người dùng cuối, cài đặt từ file whl đã build sẵn.
47
+
48
+ ```bash
49
+ pip install sqlServerConnector
50
+ ```
51
+
52
+
53
+ ## Cấu hình kết nối Database
54
+ File cấu hình `db_config.yaml`
55
+
56
+ ```yaml
57
+ # Thông tin kết nối Database
58
+ # Lưu ý: Đảm bảo máy tính đã cài đặt ODBC Driver 17 for SQL Server
59
+ db_info:
60
+ server: "localhost" # Ví dụ: localhost hoặc
61
+ database: "YOUR_DATABASE_NAME" # Ví dụ: TestDB
62
+ username: "YOUR_USERNAME" # Ví dụ: sa
63
+ password: "YOUR_PASSWORD" # Mật khẩu
64
+ ```
65
+
66
+ ## 📝 Hướng dẫn sử dụng nhanh
67
+
68
+ 1. Khởi tạo kết nối
69
+ ```python
70
+ import yaml
71
+ from connector import SQLServerConnector
72
+ # Load config
73
+ with open('config/db_config.yaml', 'r') as f:
74
+ conf = yaml.safe_load(f)['db_info']
75
+
76
+ # Khởi tạo
77
+ db = SQLServerConnector(
78
+ server=conf['server'],
79
+ database=conf['database'],
80
+ username=conf['username'],
81
+ password=conf['password']
82
+ )
83
+ ```
84
+
85
+ 2. Lấy dữ liệu (Read)
86
+ ```python
87
+ # Cách 1: Lấy toàn bộ bảng
88
+ df = db.get_data("DM_KhachHang")
89
+
90
+ # Cách 2: Dùng câu lệnh SQL tùy ý
91
+ query = """
92
+ SELECT TOP 100 * FROM Sales_Transaction
93
+ WHERE created_date >= '2023-01-01'
94
+ """
95
+ df_sales = db.get_data(query)
96
+ print(df_sales.head())
97
+ ```
98
+
99
+ 3. Ghi dữ liệu (Upsert)
100
+ ```python
101
+ import pandas as pd
102
+
103
+ # Giả lập dữ liệu
104
+ data = {
105
+ 'TransactionID': [101, 102],
106
+ 'Product': ['Laptop Dell', 'Chuột Logitech'], # Hỗ trợ tiếng Việt
107
+ 'Amount': [15000000, 250000]
108
+ }
109
+ df_new = pd.DataFrame(data)
110
+
111
+ # Đẩy vào DB
112
+ db.upsert_data(
113
+ df=df_new,
114
+ target_table="Fact_Sales",
115
+ primary_key="TransactionID", # Cột dùng để định danh (tránh trùng lặp)
116
+ auto_evolve_schema=True # Tự động thêm cột nếu thiếu
117
+ )
118
+ print("Dữ liệu đã được upsert thành công!")
119
+ ```
120
+
121
+ 4. Đóng kết nối
122
+ ```python
123
+ # Luôn đóng kết nối khi hoàn tất để giải phóng tài nguyên
124
+ db.dispose()
125
+ ```
126
+
127
+ ## ⚠️ Lưu ý quan trọng
128
+ 1. **Primary Key:** Khi dùng upsert_data, bắt buộc phải cung cấp primary_key. Nếu bảng chưa có Primary Key, thư viện sẽ tự set cột đó làm khóa chính khi tạo bảng mới.
129
+
130
+ 2. **Date Time:** Các cột ngày tháng nên được convert sang datetime64[ns] trong Pandas trước khi đẩy vào để đảm bảo tính chính xác.
@@ -0,0 +1,111 @@
1
+ # SQL Server Connector
2
+
3
+ Thư viện kết nối SQL Server chuyên dụng cho các tác vụ ETL, được tối ưu hóa cho **Pandas**, hỗ trợ **Tiếng Việt (Unicode)** và **Upsert (Merge)** hiệu năng cao.
4
+
5
+ ## 🚀 Tính năng nổi bật
6
+
7
+ * **High Performance:** Sử dụng `fast_executemany` giúp insert dữ liệu nhanh gấp 10-50 lần so với thông thường.
8
+ * **Smart Upsert:** Tự động chèn mới (Insert) hoặc cập nhật (Update) dựa trên Khóa chính (Primary Key).
9
+ * **Schema Evolution:** Tự động tạo bảng nếu chưa có, tự động thêm cột mới (Add Column) nếu DataFrame có thay đổi.
10
+ * **Unicode Support:** Xử lý triệt để lỗi font chữ Tiếng Việt khi làm việc với SQL Server & Pandas.
11
+ * **SQLAlchemy 2.0:** Tuân thủ chuẩn kết nối hiện đại, an toàn.
12
+
13
+ ---
14
+
15
+ ## 📦 Cài đặt
16
+
17
+ ### Cách 1: Cài đặt trực tiếp từ Git (Khuyên dùng nội bộ)
18
+ Dành cho đồng nghiệp trong team, cài đặt không cần file whl.
19
+
20
+ ```bash
21
+ # Cài phiên bản mới nhất từ nhánh main
22
+
23
+ pip install git+https://github.com/johnnyb1509/sqlServerConnector.git
24
+ ```
25
+
26
+ ### Cách 2: Cài đặt từ file .whl
27
+ Dành cho người dùng cuối, cài đặt từ file whl đã build sẵn.
28
+
29
+ ```bash
30
+ pip install sqlServerConnector
31
+ ```
32
+
33
+
34
+ ## Cấu hình kết nối Database
35
+ File cấu hình `db_config.yaml`
36
+
37
+ ```yaml
38
+ # Thông tin kết nối Database
39
+ # Lưu ý: Đảm bảo máy tính đã cài đặt ODBC Driver 17 for SQL Server
40
+ db_info:
41
+ server: "localhost" # Ví dụ: localhost hoặc
42
+ database: "YOUR_DATABASE_NAME" # Ví dụ: TestDB
43
+ username: "YOUR_USERNAME" # Ví dụ: sa
44
+ password: "YOUR_PASSWORD" # Mật khẩu
45
+ ```
46
+
47
+ ## 📝 Hướng dẫn sử dụng nhanh
48
+
49
+ 1. Khởi tạo kết nối
50
+ ```python
51
+ import yaml
52
+ from connector import SQLServerConnector
53
+ # Load config
54
+ with open('config/db_config.yaml', 'r') as f:
55
+ conf = yaml.safe_load(f)['db_info']
56
+
57
+ # Khởi tạo
58
+ db = SQLServerConnector(
59
+ server=conf['server'],
60
+ database=conf['database'],
61
+ username=conf['username'],
62
+ password=conf['password']
63
+ )
64
+ ```
65
+
66
+ 2. Lấy dữ liệu (Read)
67
+ ```python
68
+ # Cách 1: Lấy toàn bộ bảng
69
+ df = db.get_data("DM_KhachHang")
70
+
71
+ # Cách 2: Dùng câu lệnh SQL tùy ý
72
+ query = """
73
+ SELECT TOP 100 * FROM Sales_Transaction
74
+ WHERE created_date >= '2023-01-01'
75
+ """
76
+ df_sales = db.get_data(query)
77
+ print(df_sales.head())
78
+ ```
79
+
80
+ 3. Ghi dữ liệu (Upsert)
81
+ ```python
82
+ import pandas as pd
83
+
84
+ # Giả lập dữ liệu
85
+ data = {
86
+ 'TransactionID': [101, 102],
87
+ 'Product': ['Laptop Dell', 'Chuột Logitech'], # Hỗ trợ tiếng Việt
88
+ 'Amount': [15000000, 250000]
89
+ }
90
+ df_new = pd.DataFrame(data)
91
+
92
+ # Đẩy vào DB
93
+ db.upsert_data(
94
+ df=df_new,
95
+ target_table="Fact_Sales",
96
+ primary_key="TransactionID", # Cột dùng để định danh (tránh trùng lặp)
97
+ auto_evolve_schema=True # Tự động thêm cột nếu thiếu
98
+ )
99
+ print("Dữ liệu đã được upsert thành công!")
100
+ ```
101
+
102
+ 4. Đóng kết nối
103
+ ```python
104
+ # Luôn đóng kết nối khi hoàn tất để giải phóng tài nguyên
105
+ db.dispose()
106
+ ```
107
+
108
+ ## ⚠️ Lưu ý quan trọng
109
+ 1. **Primary Key:** Khi dùng upsert_data, bắt buộc phải cung cấp primary_key. Nếu bảng chưa có Primary Key, thư viện sẽ tự set cột đó làm khóa chính khi tạo bảng mới.
110
+
111
+ 2. **Date Time:** Các cột ngày tháng nên được convert sang datetime64[ns] trong Pandas trước khi đẩy vào để đảm bảo tính chính xác.
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "sqlServerConnector"
9
- version = "0.1.0"
9
+ version = "0.1.1"
10
10
  description = "A custom SQL Server Connector for ETL processes with Pandas"
11
11
  readme = "README.md"
12
12
  requires-python = ">=3.8"
@@ -0,0 +1,130 @@
1
+ Metadata-Version: 2.4
2
+ Name: sqlServerConnector
3
+ Version: 0.1.1
4
+ Summary: A custom SQL Server Connector for ETL processes with Pandas
5
+ Author-email: Nguyen Minh Son <nguyen.minhson1511@gmail.com>
6
+ Project-URL: Homepage, https://github.com/johnnyb1509/sqlServerConnector
7
+ Keywords: sql,etl,pandas,sqlalchemy
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Operating System :: OS Independent
10
+ Requires-Python: >=3.8
11
+ Description-Content-Type: text/markdown
12
+ Requires-Dist: pandas>=1.5.0
13
+ Requires-Dist: numpy
14
+ Requires-Dist: sqlalchemy>=2.0.0
15
+ Requires-Dist: pyodbc
16
+ Requires-Dist: pyyaml
17
+ Requires-Dist: loguru
18
+ Requires-Dist: jupyterlab
19
+
20
+ # SQL Server Connector
21
+
22
+ Thư viện kết nối SQL Server chuyên dụng cho các tác vụ ETL, được tối ưu hóa cho **Pandas**, hỗ trợ **Tiếng Việt (Unicode)** và **Upsert (Merge)** hiệu năng cao.
23
+
24
+ ## 🚀 Tính năng nổi bật
25
+
26
+ * **High Performance:** Sử dụng `fast_executemany` giúp insert dữ liệu nhanh gấp 10-50 lần so với thông thường.
27
+ * **Smart Upsert:** Tự động chèn mới (Insert) hoặc cập nhật (Update) dựa trên Khóa chính (Primary Key).
28
+ * **Schema Evolution:** Tự động tạo bảng nếu chưa có, tự động thêm cột mới (Add Column) nếu DataFrame có thay đổi.
29
+ * **Unicode Support:** Xử lý triệt để lỗi font chữ Tiếng Việt khi làm việc với SQL Server & Pandas.
30
+ * **SQLAlchemy 2.0:** Tuân thủ chuẩn kết nối hiện đại, an toàn.
31
+
32
+ ---
33
+
34
+ ## 📦 Cài đặt
35
+
36
+ ### Cách 1: Cài đặt trực tiếp từ Git (Khuyên dùng nội bộ)
37
+ Dành cho đồng nghiệp trong team, cài đặt không cần file whl.
38
+
39
+ ```bash
40
+ # Cài phiên bản mới nhất từ nhánh main
41
+
42
+ pip install git+https://github.com/johnnyb1509/sqlServerConnector.git
43
+ ```
44
+
45
+ ### Cách 2: Cài đặt từ file .whl
46
+ Dành cho người dùng cuối, cài đặt từ file whl đã build sẵn.
47
+
48
+ ```bash
49
+ pip install sqlServerConnector
50
+ ```
51
+
52
+
53
+ ## Cấu hình kết nối Database
54
+ File cấu hình `db_config.yaml`
55
+
56
+ ```yaml
57
+ # Thông tin kết nối Database
58
+ # Lưu ý: Đảm bảo máy tính đã cài đặt ODBC Driver 17 for SQL Server
59
+ db_info:
60
+ server: "localhost" # Ví dụ: localhost hoặc
61
+ database: "YOUR_DATABASE_NAME" # Ví dụ: TestDB
62
+ username: "YOUR_USERNAME" # Ví dụ: sa
63
+ password: "YOUR_PASSWORD" # Mật khẩu
64
+ ```
65
+
66
+ ## 📝 Hướng dẫn sử dụng nhanh
67
+
68
+ 1. Khởi tạo kết nối
69
+ ```python
70
+ import yaml
71
+ from connector import SQLServerConnector
72
+ # Load config
73
+ with open('config/db_config.yaml', 'r') as f:
74
+ conf = yaml.safe_load(f)['db_info']
75
+
76
+ # Khởi tạo
77
+ db = SQLServerConnector(
78
+ server=conf['server'],
79
+ database=conf['database'],
80
+ username=conf['username'],
81
+ password=conf['password']
82
+ )
83
+ ```
84
+
85
+ 2. Lấy dữ liệu (Read)
86
+ ```python
87
+ # Cách 1: Lấy toàn bộ bảng
88
+ df = db.get_data("DM_KhachHang")
89
+
90
+ # Cách 2: Dùng câu lệnh SQL tùy ý
91
+ query = """
92
+ SELECT TOP 100 * FROM Sales_Transaction
93
+ WHERE created_date >= '2023-01-01'
94
+ """
95
+ df_sales = db.get_data(query)
96
+ print(df_sales.head())
97
+ ```
98
+
99
+ 3. Ghi dữ liệu (Upsert)
100
+ ```python
101
+ import pandas as pd
102
+
103
+ # Giả lập dữ liệu
104
+ data = {
105
+ 'TransactionID': [101, 102],
106
+ 'Product': ['Laptop Dell', 'Chuột Logitech'], # Hỗ trợ tiếng Việt
107
+ 'Amount': [15000000, 250000]
108
+ }
109
+ df_new = pd.DataFrame(data)
110
+
111
+ # Đẩy vào DB
112
+ db.upsert_data(
113
+ df=df_new,
114
+ target_table="Fact_Sales",
115
+ primary_key="TransactionID", # Cột dùng để định danh (tránh trùng lặp)
116
+ auto_evolve_schema=True # Tự động thêm cột nếu thiếu
117
+ )
118
+ print("Dữ liệu đã được upsert thành công!")
119
+ ```
120
+
121
+ 4. Đóng kết nối
122
+ ```python
123
+ # Luôn đóng kết nối khi hoàn tất để giải phóng tài nguyên
124
+ db.dispose()
125
+ ```
126
+
127
+ ## ⚠️ Lưu ý quan trọng
128
+ 1. **Primary Key:** Khi dùng upsert_data, bắt buộc phải cung cấp primary_key. Nếu bảng chưa có Primary Key, thư viện sẽ tự set cột đó làm khóa chính khi tạo bảng mới.
129
+
130
+ 2. **Date Time:** Các cột ngày tháng nên được convert sang datetime64[ns] trong Pandas trước khi đẩy vào để đảm bảo tính chính xác.
@@ -1,57 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: sqlServerConnector
3
- Version: 0.1.0
4
- Summary: A custom SQL Server Connector for ETL processes with Pandas
5
- Author-email: Nguyen Minh Son <nguyen.minhson1511@gmail.com>
6
- Project-URL: Homepage, https://github.com/johnnyb1509/sqlServerConnector
7
- Keywords: sql,etl,pandas,sqlalchemy
8
- Classifier: Programming Language :: Python :: 3
9
- Classifier: Operating System :: OS Independent
10
- Requires-Python: >=3.8
11
- Description-Content-Type: text/markdown
12
- Requires-Dist: pandas>=1.5.0
13
- Requires-Dist: numpy
14
- Requires-Dist: sqlalchemy>=2.0.0
15
- Requires-Dist: pyodbc
16
- Requires-Dist: pyyaml
17
- Requires-Dist: loguru
18
- Requires-Dist: jupyterlab
19
-
20
- # SQL Data Connector Project
21
-
22
- Project này cung cấp module Python mạnh mẽ (`dbConnector`) để tương tác với Microsoft SQL Server, tối ưu hóa cho các tác vụ Data Engineering như: ETL, Insert dữ liệu lớn, và Đồng bộ hóa (Upsert) dữ liệu từ Pandas DataFrame.
23
-
24
- ## Tính năng nổi bật
25
-
26
- * **Tự động hóa cao**: Tự động tạo bảng, phát hiện kiểu dữ liệu, và thêm cột mới nếu DataFrame thay đổi.
27
- * **Hiệu năng cao**: Sử dụng `fast_executemany=True` của SQLAlchemy/pyodbc để tăng tốc độ Insert.
28
- * **An toàn dữ liệu**: Hỗ trợ Transaction (Commit/Rollback) để đảm bảo tính toàn vẹn dữ liệu.
29
- * **Sync thông minh**: Hàm `check_and_update_table` giúp so sánh và chỉ update những dòng thay đổi, insert những dòng mới.
30
- * **Tiện ích**: Hỗ trợ làm sạch dữ liệu số (ví dụ: convert "1.5M" thành 1,500,000).
31
-
32
- ## Yêu cầu cài đặt
33
-
34
- 1. **Hệ điều hành**: Windows, Linux, hoặc MacOS.
35
- 2. **Driver**: Cần cài đặt **ODBC Driver 17 for SQL Server**.
36
- * [Tải về tại đây (Microsoft)](https://learn.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server)
37
- 3. **Python Libraries**:
38
- ```bash
39
- pip install -r requirements.txt
40
- ```
41
-
42
- ## Cấu trúc Project
43
-
44
- * `src/dbConnector.py`: Module chính chứa class `dbJob`.
45
- * `config/db_config.yaml`: File cấu hình database (cần tự tạo dựa trên mẫu).
46
- * `notebooks/demo_usage.ipynb`: Ví dụ cách sử dụng.
47
-
48
- ## Hướng dẫn sử dụng nhanh
49
-
50
- ### 1. Cấu hình kết nối
51
- Tạo file `config/db_config.yaml`:
52
- ```yaml
53
- db_info:
54
- server: "localhost"
55
- database: "MyDatabase"
56
- username: "sa"
57
- password: "mypassword"
@@ -1,38 +0,0 @@
1
- # SQL Data Connector Project
2
-
3
- Project này cung cấp module Python mạnh mẽ (`dbConnector`) để tương tác với Microsoft SQL Server, tối ưu hóa cho các tác vụ Data Engineering như: ETL, Insert dữ liệu lớn, và Đồng bộ hóa (Upsert) dữ liệu từ Pandas DataFrame.
4
-
5
- ## Tính năng nổi bật
6
-
7
- * **Tự động hóa cao**: Tự động tạo bảng, phát hiện kiểu dữ liệu, và thêm cột mới nếu DataFrame thay đổi.
8
- * **Hiệu năng cao**: Sử dụng `fast_executemany=True` của SQLAlchemy/pyodbc để tăng tốc độ Insert.
9
- * **An toàn dữ liệu**: Hỗ trợ Transaction (Commit/Rollback) để đảm bảo tính toàn vẹn dữ liệu.
10
- * **Sync thông minh**: Hàm `check_and_update_table` giúp so sánh và chỉ update những dòng thay đổi, insert những dòng mới.
11
- * **Tiện ích**: Hỗ trợ làm sạch dữ liệu số (ví dụ: convert "1.5M" thành 1,500,000).
12
-
13
- ## Yêu cầu cài đặt
14
-
15
- 1. **Hệ điều hành**: Windows, Linux, hoặc MacOS.
16
- 2. **Driver**: Cần cài đặt **ODBC Driver 17 for SQL Server**.
17
- * [Tải về tại đây (Microsoft)](https://learn.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server)
18
- 3. **Python Libraries**:
19
- ```bash
20
- pip install -r requirements.txt
21
- ```
22
-
23
- ## Cấu trúc Project
24
-
25
- * `src/dbConnector.py`: Module chính chứa class `dbJob`.
26
- * `config/db_config.yaml`: File cấu hình database (cần tự tạo dựa trên mẫu).
27
- * `notebooks/demo_usage.ipynb`: Ví dụ cách sử dụng.
28
-
29
- ## Hướng dẫn sử dụng nhanh
30
-
31
- ### 1. Cấu hình kết nối
32
- Tạo file `config/db_config.yaml`:
33
- ```yaml
34
- db_info:
35
- server: "localhost"
36
- database: "MyDatabase"
37
- username: "sa"
38
- password: "mypassword"
@@ -1,57 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: sqlServerConnector
3
- Version: 0.1.0
4
- Summary: A custom SQL Server Connector for ETL processes with Pandas
5
- Author-email: Nguyen Minh Son <nguyen.minhson1511@gmail.com>
6
- Project-URL: Homepage, https://github.com/johnnyb1509/sqlServerConnector
7
- Keywords: sql,etl,pandas,sqlalchemy
8
- Classifier: Programming Language :: Python :: 3
9
- Classifier: Operating System :: OS Independent
10
- Requires-Python: >=3.8
11
- Description-Content-Type: text/markdown
12
- Requires-Dist: pandas>=1.5.0
13
- Requires-Dist: numpy
14
- Requires-Dist: sqlalchemy>=2.0.0
15
- Requires-Dist: pyodbc
16
- Requires-Dist: pyyaml
17
- Requires-Dist: loguru
18
- Requires-Dist: jupyterlab
19
-
20
- # SQL Data Connector Project
21
-
22
- Project này cung cấp module Python mạnh mẽ (`dbConnector`) để tương tác với Microsoft SQL Server, tối ưu hóa cho các tác vụ Data Engineering như: ETL, Insert dữ liệu lớn, và Đồng bộ hóa (Upsert) dữ liệu từ Pandas DataFrame.
23
-
24
- ## Tính năng nổi bật
25
-
26
- * **Tự động hóa cao**: Tự động tạo bảng, phát hiện kiểu dữ liệu, và thêm cột mới nếu DataFrame thay đổi.
27
- * **Hiệu năng cao**: Sử dụng `fast_executemany=True` của SQLAlchemy/pyodbc để tăng tốc độ Insert.
28
- * **An toàn dữ liệu**: Hỗ trợ Transaction (Commit/Rollback) để đảm bảo tính toàn vẹn dữ liệu.
29
- * **Sync thông minh**: Hàm `check_and_update_table` giúp so sánh và chỉ update những dòng thay đổi, insert những dòng mới.
30
- * **Tiện ích**: Hỗ trợ làm sạch dữ liệu số (ví dụ: convert "1.5M" thành 1,500,000).
31
-
32
- ## Yêu cầu cài đặt
33
-
34
- 1. **Hệ điều hành**: Windows, Linux, hoặc MacOS.
35
- 2. **Driver**: Cần cài đặt **ODBC Driver 17 for SQL Server**.
36
- * [Tải về tại đây (Microsoft)](https://learn.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server)
37
- 3. **Python Libraries**:
38
- ```bash
39
- pip install -r requirements.txt
40
- ```
41
-
42
- ## Cấu trúc Project
43
-
44
- * `src/dbConnector.py`: Module chính chứa class `dbJob`.
45
- * `config/db_config.yaml`: File cấu hình database (cần tự tạo dựa trên mẫu).
46
- * `notebooks/demo_usage.ipynb`: Ví dụ cách sử dụng.
47
-
48
- ## Hướng dẫn sử dụng nhanh
49
-
50
- ### 1. Cấu hình kết nối
51
- Tạo file `config/db_config.yaml`:
52
- ```yaml
53
- db_info:
54
- server: "localhost"
55
- database: "MyDatabase"
56
- username: "sa"
57
- password: "mypassword"