Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Import CSV or Excel files into seekdb vector database and manage collections. Supports automatic vectorization of specified columns using embedding functions. When users need to: (1) Read and preview Excel files, (2) Import CSV/Excel data into seekdb, (3) Create vector collections from tabular data, (4) Vectorize specific text columns for semantic search, (5) Batch insert product/document data with embeddings, (6) Delete collections, or (7) Access sample data files (sample_products.csv/xlsx) for
.claude/skills/oceanbase-importing-to-seekdb/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 90% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 56% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 106% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 110% | 0% |
| case-20 | ✗→✓ | ▲ Improved | 73% | 0% |
Read, preview, and import CSV or Excel files into seekdb vector database with optional column vectorization for semantic search. Also provides collection delete functionality.
> Note: All paths in this document (e.g., scripts/, example-data/) are relative to THIS skill directory, not the project root.
bashpip install pyseekdb pandas openpyxl
Sample data files are provided in the example-data/ directory:
| File | Description | |------|-------------| | sample_products.csv | Sample product data in CSV format | | sample_products.xlsx | Sample product data in Excel format |
Use the provided scripts/import_to_seekdb.py script:
bash# Import with vectorization on Details column python scripts/import_to_seekdb.py import example-data/sample_products.csv --vectorize-column Details # Import without vectorization python scripts/import_to_seekdb.py import example-data/sample_products.csv # Import Excel with custom collection name python scripts/import_to_seekdb.py import example-data/sample_products.xlsx -v Description -c my_products # Delete a collection python scripts/import_to_seekdb.py delete my_collection
> Note: To list all collections, use query_from_seekdb.py list from the querying-from-seekdb skill.
This skill provides the following scripts in the scripts/ directory:
| Script | Description | |--------|-------------| | import_to_seekdb.py | Main script with CLI interface for importing data and managing collections | | read_excel.py | Read and preview Excel files with detailed information |
| Command | Description | |---------|-------------| | import <file> | Import CSV/Excel file to seekdb with optional vectorization | | delete <name> | Delete a collection from seekdb |
Read and preview Excel files before importing:
bash# Basic preview (show file info and first 5 rows) python scripts/read_excel.py example-data/sample_products.xlsx # List all sheets python scripts/read_excel.py example-data/sample_products.xlsx --list-sheets # Preview specific sheet with more rows python scripts/read_excel.py data.xlsx --sheet "Sheet2" --rows 20 # Show column information and statistics python scripts/read_excel.py example-data/sample_products.xlsx --columns --stats # Export to CSV python scripts/read_excel.py example-data/sample_products.xlsx --to-csv output.csv
| Option | Description | |--------|-------------| | --sheet, -s | Sheet name to read (default: first sheet) | | --rows, -r | Number of rows to preview (default: 5) | | --list-sheets, -l | List all sheets and exit | | --columns, -c | Show detailed column information | | --stats | Show statistics for numeric columns | | --to-csv | Export sheet to CSV file | | --all-rows, -a | Display all rows |
The import_to_seekdb.py script automatically handles the following steps:
When user wants to preview or inspect an Excel file before importing:
bash# Preview file structure and data python scripts/read_excel.py <file_path> # With column details and statistics python scripts/read_excel.py <file_path> --columns --stats
This helps users:
When user requests data import, ask:
example-data/ directoryread_excel.py to preview the file firstquery_from_seekdb.py list from the querying-from-seekdb skillpython scripts/import_to_seekdb.py delete <collection_name>The script uses the default embedding function (all-MiniLM-L6-v2, 384 dimensions) when vectorization is enabled via --vectorize-column.
For files with >10,000 rows, the import_to_seekdb.py script uses batch processing automatically. You can configure batch size:
bashpython scripts/import_to_seekdb.py import large_file.csv -v Details --batch-size 500
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 5,906 | 2,433 | -59% | 1 | 1 | 0% | 1,202 | 2,285 | +90% | 0 | 0 | — |
case-02 | fail→pass | 6,955 | 3,495 | -50% | 1 | 1 | 0% | 1,559 | 2,433 | +56% | 0 | 0 | — |
case-03 | fail→pass | 5,191 | 1,436 | -72% | 1 | 1 | 0% | 946 | 1,947 | +106% | 0 | 0 | — |
case-04 | fail→pass | 5,012 | 2,097 | -58% | 1 | 1 | 0% | 1,020 | 2,139 | +110% | 0 | 0 | — |
case-20 | fail→pass | 5,859 | 1,712 | -71% | 1 | 1 | 0% | 1,148 | 1,991 | +73% | 0 | 0 | — |
case-05 | fail→pass | 6,239 | 2,095 | -66% | 1 | 1 | 0% | 1,234 | 2,075 | +68% | 0 | 0 | — |
case-06 | fail→pass | 5,582 | 1,718 | -69% | 1 | 1 | 0% | 899 | 2,024 | +125% | 0 | 0 | — |
case-07 | fail→pass | 8,754 | 1,605 | -82% | 1 | 1 | 0% | 1,470 | 2,000 | +36% | 0 | 0 | — |
case-08 | fail→pass | 5,503 | 1,864 | -66% | 1 | 1 | 0% | 1,237 | 2,024 | +64% | 0 | 0 | — |
case-09 | fail→pass | 7,666 | 2,113 | -72% | 1 | 1 | 0% | 1,506 | 2,106 | +40% | 0 | 0 | — |
case-10 | fail→pass | 6,539 | 1,715 | -74% | 1 | 1 | 0% | 1,387 | 2,005 | +45% | 0 | 0 | — |
case-11 | pass→pass | 6,637 | 1,391 | -79% | 1 | 1 | 0% | 1,143 | 1,931 | +69% | 0 | 0 | — |
case-12 | fail→pass | 6,681 | 1,838 | -72% | 1 | 1 | 0% | 1,350 | 2,036 | +51% | 0 | 0 | — |
case-13 | pass→pass | 7,232 | 2,741 | -62% | 1 | 1 | 0% | 1,233 | 2,085 | +69% | 0 | 0 | — |
case-14 | fail→pass | 7,648 | 3,847 | -50% | 1 | 1 | 0% | 1,572 | 2,389 | +52% | 0 | 0 | — |
case-15 | fail→pass | 4,566 | 3,780 | -17% | 1 | 1 | 0% | 901 | 1,875 | +108% | 0 | 0 | — |
case-16 | pass→pass | 3,661 | 1,314 | -64% | 1 | 1 | 0% | 635 | 1,885 | +197% | 0 | 0 | — |
case-17 | fail→pass | 6,017 | 2,403 | -60% | 1 | 1 | 0% | 1,120 | 2,214 | +98% | 0 | 0 | — |
case-18 | fail→pass | 4,668 | 3,914 | -16% | 1 | 1 | 0% | 956 | 2,509 | +162% | 0 | 0 | — |
case-19 | fail→pass | 9,306 | 10,313 | +11% | 1 | 1 | 0% | 1,928 | 3,129 | +62% | 0 | 0 | — |
case-21 | pass→pass | 9,357 | 1,721 | -82% | 1 | 1 | 0% | 1,717 | 1,983 | +15% | 0 | 0 | — |
case-22 | fail→pass | 8,131 | 1,880 | -77% | 1 | 1 | 0% | 1,462 | 2,024 | +38% | 0 | 0 | — |
case-23 | fail→pass | 5,559 | 1,317 | -76% | 1 | 1 | 0% | 1,006 | 1,872 | +86% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +83 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.