목차
이 튜토리얼에서는 GAMS Connect 에이전트를 사용하는 방법을 설명합니다.SQLReader그리고SQLWriterGAMS와 다양한 슬롯 사이트베이스 관리 시스템(DBMS) 간에 슬롯 사이트를 교환합니다. 두 에이전트 모두 다음을 지정할 수 있습니다.연결 유형DBMS에 연결하는 데 사용됩니다.연결옵션을 사용하면 DBMS에 액세스하는 데 필요한 연결 정보가 포함된 사전을 지정할 수 있습니다.
이 튜토리얼에서는 해당 DBMS별 연결 유형을 사용하여 지원되는 각 DBMS(MS-Access, MySQL, Postgres, SQLite 및 SQL Server)에 연결하는 방법에 대한 지침을 제공합니다. 일반 연결 유형,pyodbc그리고sqlalchemy, 다양한 DBMS(예: Oracle)에 연결할 수 있으며 튜토리얼의 독립적인 섹션에서 다룹니다. 참조PyODBC를 사용한 슬롯 사이트 교환그리고SQLAlchemy를 사용한 슬롯 사이트 교환.
연결 유형sqlalchemy에 적절한 방언과 드라이버를 제공하여 다양한 DBMS에 연결할 수 있습니다.연결사전. 연결 유형pyodbcODBC(개방형 슬롯 사이트베이스 연결) 드라이버를 제공하는 모든 DBMS에 연결할 수 있습니다. 또한 슬롯 사이트 소스 이름()을 통해 연결할 수도 있습니다.DSN), 민감한 연결 정보를 숨길 수 있습니다. 두 가지 일반 연결 유형 모두에 대해 참고하세요.pyodbc그리고sqlalchemy, 사용자는 필요한 슬롯 사이트베이스 드라이버가 시스템에 설치되어 있는지 확인할 책임이 있습니다. DBMS 관련 연결 유형은 우수한 성능을 제공하는 경우가 많으며 대부분의 경우 GAMS 배포판에 이미 포함되어 있으므로 추가 드라이버 설치가 필요하지 않습니다.
이 튜토리얼은 다음을 기반으로 합니다.trn스포츠26059_26128trn스포츠모델은 SQLReader가 가져올 수 있도록 다양한 DBMS에 이미 저장되어 있습니다. 문제를 해결한 후trn스포츠모델, SQLWriter는 모델 결과를 각 DBMS로 내보냅니다.
PyODBC를 사용한 슬롯 사이트 교환
pyodbc은 ODBC(개방형 슬롯 사이트베이스 연결) 드라이버를 제공하는 모든 DBMS에 연결할 수 있게 해주는 Python 라이브러리입니다. 적절한 ODBC 드라이버가 시스템에 설치되어 있으면 PyODBC는 GAMS와 다양한 DBMS 간의 슬롯 사이트 전송을 촉진하는 브리지 역할을 할 수 있습니다. PyODBC는 슬롯 사이트 소스 이름()을 통해 슬롯 사이트베이스에 연결할 수도 있습니다.DSN)를 사용하면 민감한 연결 정보를 숨길 수 있습니다. DSN이 구성된 경우 다음에서 제공될 수 있습니다.연결사전.
- 참고
- Windows 시스템의 경우 필수
pyodbcPython 라이브러리는 이미 GAMS 배포판에 포함되어 있습니다. Windows가 아닌 시스템의 경우 사용자가 설치 책임을 집니다.pyodbc그리고 기타 종속성을 처리합니다. 둘 중 하나일 수 있습니다.GMSPython 확장또는외부 Python 3 설치 사용필수 라이브러리를 제공합니다.
아래에서는 연결 유형을 사용하여 MySQL에 연결하는 예를 제시합니다.pyodbc및 구성된 DSN.
MySQL에서 가져오기
다음을 사용하여 로컬 MySQL 슬롯 사이트베이스에서 슬롯 사이트를 가져오는 다음 예를 고려하십시오.SQLReader에이전트 포함연결 유형: pyodbc:
i는 '통조림 공장', j는 '시장'으로 설정합니다.
매개변수 d(i<,j<) '거리(천 마일)'
a(i) '경우에 따라 식물 i의 용량'
b(j) '경우에 따라 시장 j의 수요';
스칼라 f '1,000마일당 케이스당 운임(달러)';
$onEmbeddedCode 연결:
- SQL리더:
연결: "DSN": "mysqlodbc"
# 다음 연결 사전도 유효합니다.
# 연결: "user":"root", "password": "strong_password", "port": "3306", "database": "testdb", "driver": "MySQL ODBC 8.0 ANSI 드라이버"
연결 유형: pyodbc
기호:
- 이름 : d
쿼리: "SELECT * FROM d;"
- 이름 : a
쿼리: "SELECT * FROM a;"
- 이름 : b
쿼리: "SELECT * FROM b;"
- 이름 : f
쿼리: "SELECT * FROM f;"
- GAMS작성기:
기호: 모두
$offEmbeddedCode
i, j, d, a, b, f를 표시하고;
[...]
MySQL 슬롯 사이트베이스에는 매개변수에 대한 슬롯 사이트가 포함된 4개의 테이블이 포함되어 있습니다.d, a, b그리고f표시된 바와 같이여기.
이 예에서는 컴파일 시간에 포함된 Connect 코드를 사용하여 MySQL 슬롯 사이트베이스에서 GAMS로 슬롯 사이트를 가져옵니다. SQLReader 에이전트는 구성된 DSN을 사용하여 MySQL 슬롯 사이트베이스에서 슬롯 사이트를 읽고 Connect 슬롯 사이트베이스에 해당 매개변수를 생성합니다.GAMSWriter29626_29740i그리고j매개변수를 통해 암시적으로 정의됩니다.d.
MySQL로 내보내기
다음을 사용하여 로컬 MySQL 슬롯 사이트베이스로 슬롯 사이트를 내보내는 다음 예를 고려하십시오.SQLWriter에이전트 포함연결 유형: pyodbc:
[...]
모델 운송 / 모두 /;
z를 최소화하는 lp를 사용하여 전송을 해결합니다.
임베디드 코드 연결:
- GAMS리더:
기호:
- 이름 : x
- 프로젝션:
이름: x.l(i,j)
새로운 이름: x_level(i,j)
- SQLWriter:
연결: "DSN": "mysqlodbc"
# 다음 연결 사전도 유효합니다.
# 연결: "user":"root", "password": "strong_password", "port": "3306", "database": "testdb", "driver": "MySQL ODBC 8.0 ANSI 드라이버"
연결 유형: pyodbc
열인클로저: "`"
ifExists: 교체
기호:
- 이름: x_level
테이블 이름: x레벨
endEmbeddedCode
모델을 해결한 후 실행 시간에 포함된 Connect 코드를 사용하여 결과를 MySQL 슬롯 사이트베이스로 내보냅니다.GAMS리더에이전트가 변수를 읽습니다.xGAMS 슬롯 사이트베이스에서 Connect 슬롯 사이트베이스로.투영에이전트는 새 매개변수를 생성하는 데 사용됩니다.x_level변수의 레벨 값만 포함x. 마지막으로 매개변수x_level테이블에 기록되었습니다x레벨다음을 사용하여 MySQL 슬롯 사이트베이스에서SQLWriter요원.
- 참고
- 다음을 통해 슬롯 사이트베이스에 연결할 때
연결 유형: pyodbc, SQLWriter 옵션columnEncloser열 이름을 묶는 문자를 지정하는 데 사용할 수 있습니다. MySQL은 백틱(`)를 열 이름을 묶는 구분 기호로 설정합니다.columnEncloser: "`"예제에서.
표는 다음과 같습니다x레벨매개변수를 내보낸 후의 모습x_level:
mysql> x레벨에서 *를 선택합니다. +------------+----------+-------+ | 나 | j | 가치 | +------------+----------+-------+ | 시애틀 | 뉴욕 | 50 | | 시애틀 | 시카고 | 300 | | 시애틀 | 토피카 | 0 | | 샌디에고 | 뉴욕 | 275 | | 샌디에고 | 시카고 | 0 | | 샌디에고 | 토피카 | 275 | +------------+----------+-------+ 6줄 세트(0.00초)
SQLAlchemy를 사용한 슬롯 사이트 교환
sqlalchemy은 다음을 통해 적절한 방언과 드라이버를 제공하여 다양한 DBMS에 연결할 수 있는 Python 라이브러리입니다.드라이버 이름: <언어+드라이버>에서연결사전.
- 참고
- 사용자는 필요한 슬롯 사이트베이스 드라이버를 시스템에 설치할 책임이 있습니다. 다음 슬롯 사이트베이스 드라이버는 이미 GAMS 배포판에 포함되어 있습니다.psycopg2, pymssql, pymysql그리고pyodbc(Windows에만 해당). 추가 Python 라이브러리를 설치해야 하는 경우 다음 중 하나를 수행하세요.GMSPython 확장또는외부 Python 3 설치 사용필수 라이브러리를 제공합니다.
아래에서는 연결 유형을 사용하여 MySQL에 연결하는 예를 제시합니다.sqlalchemy그리고드라이버 이름: 'mysql+pymysql'. SQLReader 옵션 문서를 참조하세요.연결다른 슬롯 사이트베이스에 대한 연결 사전의 예(아래 방언 목록 확인sqlalchemy).
MySQL에서 가져오기
다음을 사용하여 로컬 MySQL 슬롯 사이트베이스에서 슬롯 사이트를 가져오는 다음 예를 고려하십시오.SQLReader에이전트 포함연결 유형: sqlalchemy:
i는 '통조림 공장', j는 '시장'으로 설정;
매개변수 d(i<,j<) '거리(천 마일)'
a(i) '경우에 따라 식물 i의 용량'
b(j) '경우에 따라 시장 j의 수요';
스칼라 f '1,000마일당 케이스당 운임(달러)';
$onEmbeddedCode 연결:
- SQL리더:
연결: 'drivername': 'mysql+pymysql', 'username': 'root', 'password': 'strong_password', 'host':'localhost', 'port': 3306, 'database': 'testdb'
연결 유형: sqlalchemy
기호:
- 이름 : d
쿼리: "SELECT * FROM d;"
- 이름 : a
쿼리: "SELECT * FROM a;"
- 이름 : b
쿼리: "SELECT * FROM b;"
- 이름 : f
쿼리: "SELECT * FROM f;"
- GAMS작성기:
기호: 모두
$offEmbeddedCode
i, j, d, a, b, f를 표시하고;
[...]
MySQL 슬롯 사이트베이스에는 매개변수에 대한 슬롯 사이트가 포함된 4개의 테이블이 포함되어 있습니다.d, a, b그리고f표시된 대로여기.
이 예에서는 컴파일 시간에 포함된 Connect 코드를 사용하여 MySQL 슬롯 사이트베이스에서 GAMS로 슬롯 사이트를 가져옵니다. SQLReader 에이전트는 MySQL 슬롯 사이트베이스에서 슬롯 사이트를 읽고 Connect 슬롯 사이트베이스에 해당 매개변수를 생성합니다.GAMSWriter35780_35894i그리고j매개변수를 통해 암시적으로 정의됩니다.d.
MySQL로 내보내기
다음을 사용하여 로컬 MySQL 슬롯 사이트베이스로 슬롯 사이트를 내보내는 다음 예를 고려하십시오.SQLWriter에이전트 포함연결 유형: sqlalchemy:
[...]
모델 운송 / 모두 /;
z를 최소화하는 lp를 사용하여 전송을 해결합니다.
임베디드 코드 연결:
- GAMS리더:
기호:
- 이름 : x
- 프로젝션:
이름: x.l(i,j)
새로운 이름: x_level(i,j)
- SQLWriter:
연결: 'drivername': 'mysql+pymysql', 'username': 'root', 'password': 'strong_password', 'host':'localhost', 'port': 3306, 'database': 'testdb'
연결 유형: sqlalchemy
ifExists: 교체
기호:
- 이름: x_level
테이블 이름: x레벨
endEmbeddedCode
모델을 해결한 후 실행 시간에 포함된 Connect 코드를 사용하여 결과를 MySQL 슬롯 사이트베이스로 내보냅니다.GAMS리더에이전트가 변수를 읽습니다.xGAMS 슬롯 사이트베이스에서 Connect 슬롯 사이트베이스로.투영에이전트는 새 매개변수를 생성하는 데 사용됩니다.x_level변수의 레벨 값만 포함x. 마지막으로 매개변수x_level테이블에 기록되었습니다.x레벨다음을 사용하여 MySQL 슬롯 사이트베이스에서SQLWriter요원.
표는 다음과 같습니다x레벨매개변수를 내보낸 후의 모습x_level:
mysql> x레벨에서 *를 선택합니다. +------------+----------+-------+ | 나 | j | 가치 | +------------+----------+-------+ | 시애틀 | 뉴욕 | 50 | | 시애틀 | 시카고 | 300 | | 시애틀 | 토피카 | 0 | | 샌디에고 | 뉴욕 | 275 | | 샌디에고 | 시카고 | 0 | | 샌디에고 | 토피카 | 275 | +------------+----------+-------+ 6줄 세트(0.00초)
MS-Access와의 슬롯 사이트 교환
마이크로소프트 액세스(MS-Access)은 Microsoft의 독점 관계형 DBMS입니다. Microsoft Office 시스템의 구성원이자 파일 기반 슬롯 사이트베이스 시스템입니다. 이로 인해 플랫폼별(Windows 전용) DBMS가 됩니다.
- 참고
- MS-Access 슬롯 사이트베이스에 대한 연결은 Windows에서만 가능하며 64비트 MS-Access ODBC 드라이버가 필요합니다. 참조연결더 많은 정보를 원하시면.
Connect 에이전트SQLReader그리고SQLWriterMS-Access 슬롯 사이트베이스 파일(*.mdb, *.accdb)에 연결하기 위해 세 가지 가능한 연결 유형을 제공합니다:액세스, pyodbc그리고sqlalchemy. 두 연결 유형 모두,액세스그리고pyodbc, 활용pyodbcMS-Access에 연결하기 위한 Python 라이브러리입니다. 그러나 연결 유형액세스일반에 비해 더 빠른 삽입 방법을 제공합니다.pyodbc연결을 통해 슬롯 사이트를 내보내는 데 더 효율적인 옵션이 됩니다.
아래에는 연결 유형을 사용한 예가 나와 있습니다.액세스. 섹션을 참조하세요.PyODBC를 사용한 슬롯 사이트 교환그리고SQLAlchemy를 사용한 슬롯 사이트 교환다음을 사용하여 연결하는 방법에 대한 예pyodbc그리고sqlalchemy.
MS-Access에서 가져오기
다음을 사용하여 MS-Access 슬롯 사이트베이스 파일에서 슬롯 사이트를 가져오는 다음 예를 고려하십시오.SQLReader에이전트 포함연결 유형: 액세스:
i는 '통조림 공장', j는 '시장'으로 설정;
매개변수 d(i<,j<) '거리(천 마일)'
a(i) '경우에 따라 식물 i의 용량'
b(j) '경우에 따라 시장 j의 수요';
스칼라 f '1,000마일당 케이스당 운임(달러)';
$onEmbeddedCode 연결:
- SQL리더:
연결: 'DRIVER':'Microsoft Access Driver(*.mdb, *.accdb)', 'DBQ': 'D:\Projects\FileBasedDBs\transport_data.accdb'
연결 유형: 액세스
기호:
- 이름 : d
쿼리: "SELECT * FROM d;"
- 이름 : a
쿼리: "SELECT * FROM a;"
- 이름 : b
쿼리: "SELECT * FROM b;"
- 이름 : f
쿼리: "SELECT * FROM f;"
- GAMS작성기:
기호: 모두
$offEmbeddedCode
i, j, d, a, b, f를 표시하고;
[...]
MS-Access 슬롯 사이트베이스 파일transport_data.accdb매개변수에 대한 슬롯 사이트가 포함된 4개의 테이블을 포함합니다.d, a, b그리고f:
이 예에서는 컴파일 타임에 포함된 Connect 코드를 사용하여 MS-Access 슬롯 사이트베이스 파일에서 슬롯 사이트를 가져옵니다.transport_data.accdbGAMS로. SQLReader 에이전트는 MS-Access 슬롯 사이트베이스 파일에서 슬롯 사이트를 읽고 Connect 슬롯 사이트베이스에 해당 매개변수를 생성합니다.GAMSWriter41596_41710i그리고j매개변수를 통해 암시적으로 정의됩니다.d. Embedded Connect 코드는 실행 시에도 사용할 수 있습니다. 다음 섹션의 예를 참조하세요.MS-Access로 내보내기.
MS-Access로 내보내기
다음을 사용하여 MS-Access 슬롯 사이트베이스 파일로 슬롯 사이트를 내보내는 다음 예를 고려하십시오.SQLWriter에이전트 포함연결 유형: 액세스:
[...]
모델 운송 / 모두 /;
z를 최소화하는 lp를 사용하여 전송을 해결합니다.
임베디드 코드 연결:
- GAMS리더:
기호:
- 이름 : x
- 프로젝션:
이름: x.l(i,j)
새로운 이름: x_level(i,j)
- SQLWriter:
연결: 'DRIVER':'Microsoft Access Driver(*.mdb, *.accdb)', 'DBQ': 'D:\Projects\FileBasedDBs\transport_data.accdb'
연결 유형: 액세스
ifExists: 교체
기호:
- 이름: x_level
테이블 이름: x레벨
endEmbeddedCode
모델을 해결한 후 실행 시간에 포함된 Connect 코드를 사용하여 결과를 MS-Access 슬롯 사이트베이스 파일로 내보냅니다.transport_data.accdb.GAMS리더에이전트가 변수를 읽습니다.xGAMS 슬롯 사이트베이스에서 Connect 슬롯 사이트베이스로.투영에이전트는 새 매개변수를 생성하는 데 사용됩니다.x_level변수의 레벨 값만 포함x. 마지막으로 매개변수x_level테이블에 기록되었습니다x레벨MS-Access 슬롯 사이트베이스 파일에서SQLWriter에이전트. 내보내기 위치에 슬롯 사이트베이스 파일이 아직 없는 경우 SQLWriter는 다음 경로에 지정된 경로에 새 슬롯 사이트베이스 파일을 생성합니다.DBQ매개변수연결사전.
매개변수를 내보낸 후의 슬롯 사이트베이스 파일 모양은 다음과 같습니다.x_level테이블로x레벨:
SQLWriter with연결 유형: 액세스MS-Access 슬롯 사이트베이스 파일에 쓰기 위한 두 가지 삽입 방법을 제공합니다.기본값(기본값) 및대량 삽입. 또한 참조하세요삽입메소드SQLWriter 문서에 있습니다.기본값44427_44535대량삽입삽입 방법을 사용하면 대량의 슬롯 사이트를 내보낼 때 더 빠르게 삽입할 수 있습니다. 임시 CSV 파일을 생성한 다음 해당 파일을 슬롯 사이트베이스로 가져옵니다.
- 참고
- 사용
연결 유형: 액세스옵션 있음삽입메소드: 대량삽입대량의 슬롯 사이트를 MS-Access 슬롯 사이트베이스 파일로 내보낼 때.
MySQL과의 슬롯 사이트 교환
MySQL은 무료 오픈 소스 관계형 DBMS입니다. Connect 에이전트,SQLReader그리고SQLWriter, MySQL 슬롯 사이트베이스와 통신할 수 있는 세 가지 연결 유형을 제공합니다.MySQL, pyodbc그리고sqlalchemy. DBMS별 연결 유형MySQL일반 연결 유형에 비해 향상된 성능을 제공합니다.pyodbc그리고sqlalchemy. 이는 전문화된 기술을 활용하여 달성됩니다.pymysql특히 MySQL과의 통신을 간소화하는 Python 라이브러리.
아래에서 연결 유형을 사용한 예를 제시합니다.MySQL. 섹션을 참조하세요.PyODBC를 사용한 슬롯 사이트 교환그리고SQLAlchemy를 사용한 슬롯 사이트 교환다음을 사용하여 연결하는 방법에 대한 예pyodbc그리고sqlalchemy.
MySQL에서 가져오기
다음을 사용하여 로컬 MySQL 슬롯 사이트베이스에서 슬롯 사이트를 가져오는 다음 예를 고려하십시오.SQLReader에이전트 포함연결 유형: mysql:
i를 '통조림 공장'으로 설정하고 j를 '시장'으로 설정합니다.
매개변수 d(i<,j<) '거리(천 마일)'
a(i) '경우에 따라 식물 i의 용량'
b(j) '경우에 따라 시장 j의 수요';
스칼라 f '1,000마일당 케이스당 운임(달러)';
$onEmbeddedCode 연결:
- SQL리더:
연결: 'user': 'root', 'password': 'strong_password', 'port': 3306, 'database': 'testdb', 'host': 'localhost'
연결 유형: mysql
기호:
- 이름 : d
쿼리: "SELECT * FROM d;"
- 이름 : a
쿼리: "SELECT * FROM a;"
- 이름 : b
쿼리: "SELECT * FROM b;"
- 이름 : f
쿼리: "SELECT * FROM f;"
- GAMS작성기:
기호: 모두
$offEmbeddedCode
i, j, d, a, b, f를 표시하고;
[...]
MySQL에는명령줄 클라이언트슬롯 사이트베이스의 테이블을 검사할 수 있습니다. MySQL 슬롯 사이트베이스에는 매개변수에 대한 슬롯 사이트가 포함된 4개의 테이블이 포함되어 있습니다.d, a, b그리고f:
mysql> d에서 *를 선택합니다. +------------+----------+-------+ | 나 | j | 가치 | +------------+----------+-------+ | 시애틀 | 뉴욕 | 2.5 | | 시애틀 | 시카고 | 1.7 | | 시애틀 | 토피카 | 1.8 | | 샌디에고 | 뉴욕 | 2.5 | | 샌디에고 | 시카고 | 1.8 | | 샌디에고 | 토피카 | 1.4 | +------------+----------+-------+ 6줄 세트(0.00초) mysql> a에서 *를 선택합니다. +------------+-------+ | 나 | 가치 | +------------+-------+ | 시애틀 | 350 | | 샌디에고 | 600 | +------------+-------+ 2줄 세트(0.00초) mysql> b에서 *를 선택; +---------+-------+ | j | 가치 | +---------+-------+ | 뉴욕 | 325 | | 시카고 | 300 | | 토피카 | 275 | +---------+-------+ 3줄 세트(0.00초) mysql> f에서 *를 선택; +---------+ | 가치 | +---------+ | 90 | +---------+ 1행 세트(0.00초)
이 예에서는 컴파일 시간에 포함된 Connect 코드를 사용하여 MySQL 슬롯 사이트베이스에서 GAMS로 슬롯 사이트를 가져옵니다. SQLReader 에이전트는 MySQL 슬롯 사이트베이스에서 슬롯 사이트를 읽고 Connect 슬롯 사이트베이스에 해당 매개변수를 생성합니다.GAMSWriter48850_48964i그리고j매개변수를 통해 암시적으로 정의됩니다.d. Embedded Connect 코드는 실행 시에도 사용할 수 있습니다. 다음 섹션의 예를 참조하세요.MySQL로 내보내기.
MySQL로 내보내기
다음을 사용하여 로컬 MySQL 슬롯 사이트베이스로 슬롯 사이트를 내보내는 다음 예를 고려하십시오.SQLWriter에이전트 포함연결 유형: mysql:
[...]
모델 운송 / 모두 /;
z를 최소화하는 lp를 사용하여 전송을 해결합니다.
임베디드 코드 연결:
- GAMS리더:
기호:
- 이름 : x
- 프로젝션:
이름: x.l(i,j)
새로운 이름: x_level(i,j)
- SQLWriter:
연결: 'user': 'root', 'password': 'strong_password', 'port': 3306, 'database': 'testdb', 'host': 'localhost'
연결 유형: mysql
ifExists: 대체
기호:
- 이름: x_level
테이블 이름: x레벨
endEmbeddedCode
모델을 해결한 후 실행 시간 내장 Connect 코드를 사용하여 결과를 MySQL 슬롯 사이트베이스로 내보냅니다.GAMS리더에이전트가 변수를 읽습니다.xGAMS 슬롯 사이트베이스에서 Connect 슬롯 사이트베이스로. 그만큼투영에이전트는 새 매개변수를 생성하는 데 사용됩니다.x_level변수의 레벨 값만 포함x. 마지막으로 매개변수x_level테이블에 기록되었습니다x레벨다음을 사용하여 MySQL 슬롯 사이트베이스에서SQLWriter에이전트.
표는 다음과 같습니다x레벨매개변수를 내보낸 후의 모습x_level:
mysql> x레벨에서 *를 선택합니다. +------------+----------+-------+ | 나 | j | 가치 | +------------+----------+-------+ | 시애틀 | 뉴욕 | 50 | | 시애틀 | 시카고 | 300 | | 시애틀 | 토피카 | 0 | | 샌디에고 | 뉴욕 | 275 | | 샌디에고 | 시카고 | 0 | | 샌디에고 | 토피카 | 275 | +------------+----------+-------+ 6줄 세트(0.00초)
SQLWriter with연결 유형: mysqlMySQL 슬롯 사이트베이스에 쓰기 위한 두 가지 삽입 방법을 제공합니다.기본값(기본값) 및대량삽입. 또한 참조하세요삽입메소드SQLWriter 문서에 있습니다.기본값51557_51665대량삽입삽입 방법을 사용하면 대량의 슬롯 사이트를 내보낼 때 더 빠르게 삽입할 수 있습니다. 임시 CSV 파일을 생성한 후 다음을 사용하여 해당 파일을 MySQL 슬롯 사이트베이스로 가져옵니다.슬롯 사이트 로컬 정보 로드매우 빠른 속도로 테이블에 텍스트를 읽을 수 있는 쿼리입니다.
- 참고
- 사용
연결 유형: mysql옵션 포함삽입메소드: 대량삽입많은 양의 슬롯 사이트를 MySQL 슬롯 사이트베이스로 내보낼 때. 옵션에 유의하세요.LOCAL_INFILE서버에서 활성화되어야 합니다.
Postgres와의 슬롯 사이트 교환
포스트그레SQL52415_52505SQLReader그리고SQLWriterPostgres 슬롯 사이트베이스에 연결할 수 있는 세 가지 연결 유형을 제공합니다.포스트그레, pyodbc그리고sqlalchemy. DBMS별 연결 유형포스트그레스특화된 기술을 활용합니다psycopg2일반 연결 유형에 비해 상당한 성능 향상을 제공하는 Python 라이브러리pyodbc그리고sqlalchemy.
아래에는 연결 유형을 사용한 예가 나와 있습니다.포스트그레. 섹션을 참조하세요.PyODBC를 사용한 슬롯 사이트 교환그리고SQLAlchemy를 사용한 슬롯 사이트 교환다음을 사용하여 연결하는 방법에 대한 예pyodbc그리고sqlalchemy.
포스트그레스에서 가져오기
다음을 사용하여 Postgres 슬롯 사이트베이스에서 슬롯 사이트를 가져오는 다음 예를 고려하십시오.SQLReader에이전트 포함연결 유형: 포스트그레스:
i를 '통조림 공장'으로 설정하고 j를 '시장'으로 설정합니다.
매개변수 d(i<,j<) '거리(천 마일)'
a(i) '경우에 따라 식물 i의 용량'
b(j) '경우에 따라 시장 j의 수요';
스칼라 f '1,000마일당 케이스당 운임(달러)';
$onEmbeddedCode 연결:
- SQL리더:
연결: 'user': 'postgres', 'password': 'strong_password', 'port': 5432, 'database': 'testdb', 'host': 'localhost'
연결 유형: 포스트그레스
기호:
- 이름 : d
쿼리: "SELECT * FROM d;"
- 이름 : a
쿼리: "SELECT * FROM a;"
- 이름 : b
쿼리: "SELECT * FROM b;"
- 이름 : f
쿼리: "SELECT * FROM f;"
- GAMS작성기:
기호: 모두
$offEmbeddedCode
i, j, d, a, b, f를 표시하고;
[...]
Postgres에는 대화형 터미널 프런트 엔드가 있습니다.psql슬롯 사이트베이스의 테이블을 검사할 수 있습니다. Postgres 슬롯 사이트베이스에는 매개변수에 대한 슬롯 사이트가 포함된 4개의 테이블이 포함되어 있습니다.d, a, b그리고f:
postgres=# \connect testdb
이제 "postgres" 사용자로 "testdb" 슬롯 사이트베이스에 연결되었습니다.
testdb=# public.d에서 *를 선택하세요.
나 | j | 가치
---------+------------+-------
시애틀 | 뉴욕 | 2.5
시애틀 | 시카고 | 1.7
시애틀 | 토피카 | 1.8
샌디에고 | 뉴욕 | 2.5
샌디에고 | 시카고 | 1.8
샌디에고 | 토피카 | 1.4
(6열)
testdb=# public.a에서 *를 선택하세요;
나 | 가치
---------+-------
시애틀 | 350
샌디에고 | 600
(2열)
testdb=# public.b에서 *를 선택하세요;
j | 가치
--------+-------
뉴욕 | 325
시카고 | 300
토피카 | 275
(3열)
testdb=# public.f에서 *를 선택하세요;
가치
-------
90
(1행)이 예에서는 컴파일 시간에 포함된 Connect 코드를 사용하여 Postgres 슬롯 사이트베이스에서 GAMS로 슬롯 사이트를 가져옵니다. SQLReader 에이전트는 Postgres 슬롯 사이트베이스에서 슬롯 사이트를 읽고 Connect 슬롯 사이트베이스에 해당 매개변수를 생성합니다.GAMSWriter55923_56037i그리고j매개변수를 통해 암시적으로 정의됩니다.d. Embedded Connect 코드는 실행 시에도 사용할 수 있습니다. 다음 섹션의 예를 참조하세요.포스트그레스로 내보내기.
포스트그레스로 내보내기
다음을 사용하여 Postgres 슬롯 사이트베이스로 슬롯 사이트를 내보내는 다음 예를 고려하십시오.SQLWriter에이전트 포함연결 유형: 포스트그레스:
[...]
모델 운송 / 모두 /;
z를 최소화하는 lp를 사용하여 전송을 해결합니다.
임베디드 코드 연결:
- GAMS리더:
기호:
- 이름 : x
- 프로젝션:
이름: x.l(i,j)
새로운 이름: x_level(i,j)
- SQLWriter:
연결: 'user': 'postgres', 'password': 'strong_password', 'port': 5432, 'database': 'testdb', 'host': 'localhost'
연결 유형: 포스트그레스
ifExists: 교체
기호:
- 이름: x_level
테이블 이름: x레벨
endEmbeddedCode
모델을 해결한 후 실행 시간에 포함된 Connect 코드를 사용하여 결과를 Postgres 슬롯 사이트베이스로 내보냅니다.GAMS리더에이전트가 변수를 읽습니다.xGAMS 슬롯 사이트베이스에서 Connect 슬롯 사이트베이스로.투영에이전트는 새 매개변수를 생성하는 데 사용됩니다.x_level변수의 레벨 값만 포함함x. 마지막으로 매개변수x_level테이블에 기록되었습니다.x레벨Postgres 슬롯 사이트베이스에서 다음을 사용하여SQLWriter에이전트.
표는 다음과 같습니다x레벨매개변수를 내보낸 후의 모습x_level:
testdb=# public.xLevel에서 * 선택;
나 | j | 가치
---------+------------+-------
시애틀 | 뉴욕 | 50
시애틀 | 시카고 | 300
시애틀 | 토피카 | 0
샌디에고 | 뉴욕 | 275
샌디에고 | 시카고 | 0
샌디에고 | 토피카 | 275
(6행)SQLWriter with연결 유형: 포스트그레스Postgres 슬롯 사이트베이스에 쓰기 위한 두 가지 삽입 방법을 제공합니다.기본값(기본값) 및대량삽입. 또한 참조하세요삽입메소드SQLWriter 문서에 있습니다.기본값58562_58670대량 삽입삽입 방법을 사용하면 대량의 슬롯 사이트를 내보낼 때 더 빠르게 삽입할 수 있습니다. 그것은 다음을 활용합니다copy_expert의 방법psycopg2Python 라이브러리는 Postgres 슬롯 사이트베이스의 테이블에 대량의 슬롯 사이트를 효율적으로 삽입합니다.
- 참고
- 사용
연결 유형: postgres옵션 포함삽입 방법: 대량 삽입대량의 슬롯 사이트를 Postgres 슬롯 사이트베이스로 내보낼 때.
SQLite와의 슬롯 사이트 교환
SQLite은 가벼운 파일 기반 DBMS입니다. Connect 에이전트SQLReader그리고SQLWriterSQLite 슬롯 사이트베이스에 연결할 수 있는 세 가지 연결 유형을 제공합니다.SQLite, pyodbc그리고sqlalchemy. DBMS별 연결 유형SQLite특화된 기술을 활용합니다sqlite3일반 연결 유형에 비해 상당한 성능 향상을 제공하는 Python 라이브러리pyodbc그리고sqlalchemy.
다음 섹션은 연결 유형을 사용하는 예를 보여줍니다.SQLite. 섹션을 참조하세요.PyODBC를 사용한 슬롯 사이트 교환그리고SQLAlchemy를 사용한 슬롯 사이트 교환다음을 사용하여 연결하는 방법에 대한 예pyodbc그리고sqlalchemy.
SQLite에서 가져오기
다음을 사용하여 로컬 SQLite 슬롯 사이트베이스 파일에서 슬롯 사이트를 가져오는 다음 예를 고려하십시오.SQLReader에이전트 포함연결 유형: sqlite(기본값):
i를 '통조림 공장'으로 설정하고 j를 '시장'으로 설정합니다.
매개변수 d(i<,j<) '거리(천 마일)'
a(i) '경우에 따라 식물 i의 용량'
b(j) '경우에 따라 시장 j의 수요';
스칼라 f '1,000마일당 케이스당 운임(달러)';
$onEmbeddedCode 연결:
- SQL리더:
연결: '슬롯 사이트베이스': 'D:\Projects\FileBasedDBs\transport_data.db'
기호:
- 이름 : d
쿼리: "SELECT * FROM d;"
- 이름 : a
쿼리: "SELECT * FROM a;"
- 이름 : b
쿼리: "SELECT * FROM b;"
- 이름 : f
쿼리: "SELECT * FROM f;"
- GAMS작성기:
기호: 모두
$offEmbeddedCode
i, j, d, a, b, f를 표시하고;
[...]
그sqlite3 명령줄 도구SQLite 슬롯 사이트베이스 파일의 테이블을 검사할 수 있습니다transport_data.db. 여기에는 매개변수에 대한 슬롯 사이트가 포함된 4개의 테이블이 포함되어 있습니다.d, a, b그리고f:
SQLite 버전 3.8.5 2014-06-04 14:06:34 사용법 힌트를 보려면 ".help"를 입력하세요. sqlite> .headers 켜짐 sqlite> .mode 열 sqlite> SELECT * FROM d; 나는 j 값 ---------- ---------- ---------- 시애틀 뉴욕 2.5 시애틀시카고 1.7 시애틀 토피카 1.8 샌디에이고 뉴욕 2.5 샌디에이고 시카고 1.8 샌디에고 토피카 1.4 sqlite> SELECT * FROM a; 나는 가치있다 ---------- ---------- 시애틀 350.0 샌디에이고 600.0 sqlite> SELECT * FROM b; j 값 ---------- ---------- 뉴욕 325.0 시카고 300.0 토피카 275.0 sqlite> SELECT * FROM f; 가치 ---------- 90.0 SQLite>
이 예에서는 컴파일 타임에 포함된 Connect 코드를 사용하여 SQLite 슬롯 사이트베이스 파일의 슬롯 사이트를 GAMS로 가져옵니다. SQLReader 에이전트는 SQLite 슬롯 사이트베이스 파일에서 슬롯 사이트를 읽고 Connect 슬롯 사이트베이스에 해당 매개변수를 생성합니다.GAMSWriter62731_62845i그리고j매개변수를 통해 암시적으로 정의됩니다.d. Embedded Connect 코드는 실행 시에도 사용할 수 있습니다. 다음 섹션의 예를 참조하세요.SQLite로 내보내기.
SQLite로 내보내기
다음을 사용하여 SQLite 슬롯 사이트베이스 파일로 슬롯 사이트를 내보내는 다음 예를 고려하십시오.SQLWriter에이전트 포함연결 유형: sqlite(기본값):
[...]
모델 운송 / 모두 /;
z를 최소화하는 lp를 사용하여 전송을 해결합니다.
임베디드 코드 연결:
- GAMS리더:
기호:
- 이름 : x
- 프로젝션:
이름: x.l(i,j)
새로운 이름: x_level(i,j)
- SQLWriter:
연결: '슬롯 사이트베이스': 'D:\Projects\FileBasedDBs\transport_data.db'
ifExists: 교체
기호:
- 이름: x_level
테이블 이름: x레벨
endEmbeddedCode
모델을 해결한 후 실행 시간에 포함된 Connect 코드를 사용하여 결과를 SQLite 슬롯 사이트베이스 파일로 내보냅니다.transport_data.db.GAMS리더에이전트가 변수를 읽습니다.xGAMS 슬롯 사이트베이스에서 Connect 슬롯 사이트베이스로. 그만큼투영에이전트는 새 매개변수를 생성하는 데 사용됩니다.x_level변수의 레벨 값만 포함x. 마지막으로 매개변수x_level테이블에 기록되었습니다.x레벨SQLite 슬롯 사이트베이스 파일에서SQLWriter에이전트. 내보내기 위치에 슬롯 사이트베이스 파일이 아직 없는 경우 SQLWriter는 다음 경로에 지정된 경로에 새 슬롯 사이트베이스 파일을 생성합니다.슬롯 사이트베이스매개변수연결사전.
표는 다음과 같습니다x레벨매개변수를 내보낸 후의 모습x_level:
sqlite> SELECT * FROM x레벨; 나는 j 값 ---------- ---------- ---------- 시애틀 뉴욕 50.0 시애틀 시카고 300.0 시애틀 토피카 0.0 샌디에이고 뉴욕 275.0 샌디에고 시카고 0.0 샌디에이고 토피카 275.0 SQLite>
SqliteWrite를 사용하여 내보내기
슬롯 사이트를 SQLITE 슬롯 사이트베이스 파일로 내보내는 또 다른 방법은 다음을 사용하는 것입니다.SqliteWrite에서GAMS 도구 라이브러리. 다음을 활용하는 예를 고려하십시오.SqliteWrite변수를 내보내려면x새 SQLite 슬롯 사이트베이스 파일로output.db.
[...]
모델 운송 / 모두 /;
z를 최소화하는 lp를 사용하여 전송을 해결합니다.
ExecuteTool "sqlitewrite ids=x o=output.db";
모델을 해결한 후 GAMS 도구SqliteWrite실행 중에 변수를 내보내는 데 사용됩니다.x새 SQLite 슬롯 사이트베이스 파일로output.db. 이 도구는 변수의 모든 속성을 저장합니다.x같은 이름의 새 테이블에x.
테이블은 다음과 같습니다x슬롯 사이트베이스 파일에 저장됩니다.
sqlite> .headers ON sqlite> .mode 열 sqlite> SELECT * FROM x; i j 레벨 한계 하한 상한 스케일 ---------- ---------- ---------- ---------- ---------- ---------- ---------- 시애틀 뉴욕 50.0 0.0 0.0 Inf 1.0 시애틀 시카고 300.0 0.0 0.0 Inf 1.0 시애틀 토피카 0.0 0.036 0.0 Inf 1.0 샌디에이고 뉴욕 275.0 0.0 0.0 Inf 1.0 샌디에고 시카고 0.0 0.00900000 0.0 Inf 1.0 샌디에고 토피카 275.0 0.0 0.0 Inf 1.0 SQLite>
SQL Server와의 슬롯 사이트 교환
SQL 서버은 Microsoft에서 개발한 독자적인 관계형 DBMS입니다. Connect 에이전트SQLReader그리고SQLWriterSQL Server 슬롯 사이트베이스에 연결할 수 있는 세 가지 연결 유형을 제공합니다.sqlserver, pyodbc그리고sqlalchemy. DBMS별 연결 유형sqlserver특화된 기술을 활용합니다pymssql일반 연결 유형에 비해 향상된 성능을 제공하는 Python 라이브러리sqlalchemy그리고pyodbc.
아래에는 연결 유형을 사용한 예가 나와 있습니다.sqlserver. 섹션을 참조하세요.PyODBC를 사용한 슬롯 사이트 교환그리고SQLAlchemy를 사용한 슬롯 사이트 교환다음을 사용하여 연결하는 방법에 대한 예pyodbc그리고sqlalchemy.
SQLServer에서 가져오기
다음을 사용하여 SQL Server 슬롯 사이트베이스에서 슬롯 사이트를 가져오는 다음 예를 고려하십시오.SQLReader에이전트 포함연결 유형: sqlserver:
i를 '통조림 공장'으로 설정하고 j를 '시장'으로 설정합니다.
매개변수 d(i<,j<) '거리(천 마일)'
a(i) '경우에 따라 식물 i의 용량'
b(j) '경우에 따라 시장 j의 수요';
스칼라 f '1,000마일당 케이스당 운임(달러)';
$onEmbeddedCode 연결:
- SQL리더:
연결: '사용자': 'sa', '비밀번호': 'strong_password', '슬롯 사이트베이스': '마스터', '호스트': 'VJGAMS'
연결 유형: sqlserver
기호:
- 이름 : d
쿼리: "SELECT * FROM d;"
- 이름 : a
쿼리: "SELECT * FROM a;"
- 이름 : b
쿼리: "SELECT * FROM b;"
- 이름 : f
쿼리: "SELECT * FROM f;"
- GAMS작성기:
기호: 모두
$offEmbeddedCode
i, j, d, a, b, f를 표시하고;
[...]
Microsoft SQL Server는 명령줄 도구를 제공합니다.sqlcmd, 슬롯 사이트베이스의 테이블을 검사할 수 있습니다. SQL Server 슬롯 사이트베이스에는 매개변수에 대한 슬롯 사이트가 포함된 4개의 테이블이 포함되어 있습니다.d, a, b그리고f:
>sqlcmd -s "|" -W 1> d에서 *를 선택합니다. 2> 가다 i|j|값 -|-|----- 시애틀|뉴욕|2.5 시애틀|시카고|1.7 시애틀|토피카|1.8 샌디에고|뉴욕|2.5 샌디에고|시카고|1.8 샌디에고|토피카|1.3999999999999999 (6개 행이 영향을 받음) 1> a에서 *를 선택합니다. 2> 가다 나|가치 -|---- 시애틀|350.0 샌디에고|600.0 (2개 행이 영향을 받음) 1> b에서 *를 선택합니다. 2> 가다 j|값 -|---- 뉴욕|325.0 시카고|300.0 토피카|275.0 (3개 행이 영향을 받음) 1> f에서 *를 선택합니다. 2> 가다 가치 ----- 90.0 (1개 행이 영향을 받음) 1>
이 예에서는 컴파일 시간에 포함된 Connect 코드를 사용하여 SQL Server 슬롯 사이트베이스의 슬롯 사이트를 GAMS로 가져옵니다. SQLReader 에이전트는 SQL Server 슬롯 사이트베이스에서 슬롯 사이트를 읽고 Connect 슬롯 사이트베이스에 해당 매개변수를 생성합니다.GAMSWriter70698_70812i그리고j매개변수를 통해 암시적으로 정의됩니다.d. Embedded Connect 코드는 실행 시에도 사용할 수 있습니다. 다음 섹션의 예를 참조하세요.SQL Server로 내보내기.
SQL Server로 내보내기
다음을 사용하여 SQL Server 슬롯 사이트베이스로 슬롯 사이트를 내보내는 다음 예를 고려하십시오.SQLWriter에이전트 포함연결 유형: sqlserver:
[...]
모델 운송 / 모두 /;
z를 최소화하는 lp를 사용하여 전송을 해결합니다.
임베디드 코드 연결:
- GAMS리더:
기호:
- 이름 : x
- 프로젝션:
이름: x.l(i,j)
새로운 이름: x_level(i,j)
- SQLWriter:
연결: '사용자': 'sa', '비밀번호': 'strong_password', '슬롯 사이트베이스': '마스터', '호스트': 'VJGAMS'
연결 유형: sqlserver
ifExists: 교체
기호:
- 이름: x_level
테이블 이름: x레벨
endEmbeddedCode
모델을 해결한 후 실행 시간에 포함된 Connect 코드를 사용하여 결과를 SQL Server 슬롯 사이트베이스로 내보냅니다.GAMS리더에이전트가 변수를 읽습니다.xGAMS 슬롯 사이트베이스에서 Connect 슬롯 사이트베이스로.투영에이전트는 새 매개변수를 생성하는 데 사용됩니다.x_level변수의 레벨 값만 포함x. 마지막으로 매개변수x_level테이블에 기록되었습니다x레벨SQL Server 슬롯 사이트베이스에서SQLWriter에이전트.
표는 다음과 같습니다x레벨매개변수를 내보낸 후의 모습x_level:
>sqlcmd -s "|" -W 1> xLevel에서 *를 선택합니다. 2> 가다 i|j|값 -|-|----- 시애틀|뉴욕|50.0 시애틀|시카고|300.0 시애틀|토피카|0.0 샌디에고|뉴욕|275.0 샌디에고|시카고|0.0 샌디에고|토피카|275.0 (6개 행이 영향을 받음)
SQLWriter with연결 유형: sqlserverSQL Server 슬롯 사이트베이스에 쓰기 위한 세 가지 삽입 방법을 제공합니다.기본값(기본값),대량삽입그리고bcp. 또한 참조하세요삽입메서드SQLWriter 문서에 있습니다.기본값73293_73401대량삽입삽입 방법을 사용하면 대량의 슬롯 사이트를 내보낼 때 더 빠르게 삽입할 수 있습니다. 임시 CSV 파일을 생성한 다음, 다음을 사용하여 파일을 SQL Server 슬롯 사이트베이스로 가져옵니다.대량 삽입질의. 그러나 이 삽입 방법이 작동하려면 원격 서버에서 임시 CSV 파일을 생성할 수 없으므로 슬롯 사이트베이스 서버가 로컬에서 실행되고 있어야 합니다.
- 참고
- 사용
연결 유형: sqlserver옵션 포함삽입메소드: 대량삽입많은 양의 슬롯 사이트를 로컬 SQL Server 슬롯 사이트베이스로 내보낼 때.
원격 SQL Server 슬롯 사이트베이스에도 사용할 수 있는 대량의 슬롯 사이트를 삽입하는 또 다른 방법은bcp다음에 따른 삽입 방법대량 복사 프로그램(bcp) SQL Server의 유틸리티.
- 참고
- 사용
연결 유형: sqlserver옵션 포함삽입방법: bcp대량의 슬롯 사이트를 SQL Server 슬롯 사이트베이스로 내보낼 때. insert 메소드를 사용하려면bcp, SQL Server용 ODBC 드라이버 및 bcp 유틸리티가 시스템에 설치되어 있어야 합니다. 두 요구 사항을 모두 설치하는 방법에 대한 자세한 내용은 공식을 참조하세요.bcp 유틸리티 문서.