데이터 가져오기 및 내보내기

App Maker 개발자는 Google 스프레드시트에서 Cloud SQL로 데이터 가져오기와 Cloud SQL에서 Google 스프레드시트로 데이터 내보내기를 수행할 수 있습니다.

드라이브 테이블 모델이 지원 중단되어 이제 이 모델로 데이터를 가져올 수는 없지만 여전히 이 모델에서 데이터를 내보낼 수는 있습니다.

데이터 가져오기

다음 중 한 가지 방법으로 데이터를 가져올 수 있습니다.

  • 선택한 단일 시트에서 선택한 배포의 선택한 모델로 데이터를 가져옵니다.
  • 스프레드시트의 모든 데이터를 관계를 유지한 상태로 선택한 배포의 모든 모델로 가져옵니다.

App Maker는 가져오기 설정에 따라 선택한 시트 또는 선택한 스프레드시트에서 모든 데이터를 가져옵니다. 가져오는 동안 모델에 데이터를 추가하거나 기존 데이터를 업데이트할 수 있지만 데이터를 추가하는 동시에 업데이트할 수는 없습니다. 가져올 데이터를 더 세밀하게 제어하려면 서버 스크립트를 사용하세요.

가져오기 요구사항

데이터를 가져오기 전에 앱 액세스 및 데이터 형식과 관련한 다음 요구사항을 검토하세요. 데이터를 가져오기 전에 수동으로 검증하거나 바로 데이터 가져오기를 시도할 수 있습니다. 데이터 검증 시 App Maker에서 문제를 발견하면 문제를 해결하고 다시 시도해야 합니다.

데이터 가져오기 요구사항
액세스
  • App Maker 앱에 대한 액세스 — 사용자가 앱의 작성자이거나 앱이 사용자와 공유되어야 합니다(편집 가능 액세스 권한).
  • 배포에 대한 액세스 — 앱이 배포에 게시되어야 합니다.
  • 시트에 대한 액세스 — 사용자가 스프레드시트의 소유자이거나 스프레드시트가 사용자와 공유되어야 합니다(모든 액세스 수준).
데이터의 양 데이터는 다음 조건 중에서 충족되는 첫 번째 조건으로 제한됩니다.
  • Google 스프레드시트의 소스 데이터는 5,000,000개의 셀을 초과할 수 없습니다.
  • 가져오기 작업 시간은 30분 미만으로 제한됩니다.

더 많은 데이터를 가져오려면 다음 방법을 사용하세요.

  • 데이터를 더 작은 배치로 가져옵니다. 예를 들어 500,000개의 셀만 포함하는 데이터 배치를 만듭니다.
  • 서버 스크립트를 사용하고 CSV 파일이나 데이터베이스와 같은 다른 소스의 데이터를 가져옵니다. 마찬가지로 30분의 시간 제한이 적용됩니다.
  • Cloud SQL의 기본 제공 가져오기 기능을 사용합니다.
  • 열의 수와 이름 — App Maker는 모델의 각 필드에 하나의 데이터 열만 있기를 기대합니다. 각 열의 첫 번째 행에는 열 이름이 있어야 합니다. 열 이름의 대소문자 구분은 동일해야 합니다.
  • — 레코드에 키가 포함되어 있으면 첫 번째 열에 있어야 하며 열의 이름은 _key(primary-key-id)여야 합니다. App Maker는 레코드와 함께 키를 저장합니다. 관계가 있는 레코드의 경우 App Maker는 키를 사용하여 다른 모델의 해당 레코드와 레코드를 연결합니다. 관계 및 키에 대한 자세한 내용은 Google 스프레드시트의 관계 표현을 참조하세요.
  • 모델에 없지만 데이터를 포함하는 추가 열 — 시트에는 데이터를 포함하는 추가 열이 있으면 안 됩니다. 빈 열은 문제 없습니다.
  • 누락된 열 — 누락된 열이 있는 상태는 권장하지 않습니다. 나중에 데이터를 추가하기가 어려울 수 있으며 서버 스크립트를 사용해야 합니다.
  • 열 순서 — 키 열을 제외하고 열의 순서는 중요하지 않습니다.
  • 필수 필드 — 열이 모델의 필수 필드에 해당하면 기본값이 정의되어 있어도 모든 셀에 데이터가 있어야 합니다. 필수 필드를 가져올 때는 기본값이 적용되지 않으며 빈 셀이 있으면 데이터 검증이 실패합니다. 기본값은 필수가 아닌 필드를 가져올 때 적용됩니다.
App Maker는 시트의 데이터를 두 번째 행에서 데이터가 포함된 마지막 행까지 가져옵니다. 빈 행은 빈 레코드로 가져옵니다.

참고: 모델에 필수 필드가 있지만 시트에 빈 행이 포함되어 있으면 데이터 검증이 실패합니다.

데이터 형식 다음과 같은 데이터 유형의 셀은 비어있을 수 있습니다. 빈 셀은 문자열, 숫자, 날짜 필드의 경우 null로, 부울 필드의 경우 false로 해석됩니다. 참고: 필수 필드인 경우 셀이 비어 있으면 안 됩니다. 그렇지 않으면 데이터 검증이 실패합니다.
  • 문자열은 모든 값을 포함할 수 있습니다.
  • 숫자에는 소수점(.)이 있거나 없는 숫자만 포함되어야 합니다. 소수점, Automatic 형식 또는 Plain text 형식이 포함된 숫자 형식을 사용할 수 있습니다.
  • 부울true 또는 false여야 하며 대소문자를 구분하지 않습니다.
  • 날짜, 시간, 시간대는 ISO 8601을 준수해야 합니다. 예를 들면 다음과 같습니다.
    • 2017-09-01T10:42:42.123-03:00
    • 2017-09-01T10:42:42.123-0300
    • 2017-09-01T10:42:42-03:00
    • 2017-09-01T10:42:42Z
    • 2017-09-01T10:42:42
    • 2017-09-01

    시간대를 지정하지 않고 시간 데이터를 가져오면 App Maker에서 앱의 시간대 설정을 사용합니다.

관계 자세한 내용은 Google 스프레드시트에서의 관계 표현을 참조하세요.

데이터를 가져오는 방법

App Maker는 가져온 행마다 모델에 레코드를 만들거나, 가져오기에 대해 업데이트를 지정한 경우 기존 레코드를 업데이트합니다.

_key 또는 _key(primary-key-id) 값이 있는 레코드는 다음과 같이 처리됩니다.

  • 키가 있는 레코드가 존재하고 기존 데이터 업데이트가 선택된 경우 레코드가 업데이트됩니다.
  • 키가 있는 레코드가 존재하지 않고 기존 데이터 업데이트가 선택된 경우 레코드가 추가되지 않습니다.
  • 키가 있는 레코드가 존재하지 않고 기존 데이터 업데이트가 선택되지 않은 경우 해당 키가 있는 레코드가 만들어집니다.
  • 단일 기본 키(예: 다음 예시에서 이름이 _key(id)인 열)가 있는 Cloud SQL 모델에서는 _key 열의 우선순위가 더 높습니다. _key 값이 비어 있으면 _key(id) 값이 기본 키로 사용됩니다. 예를 들면 다음과 같습니다.

    다음과 같은 특성이 포함된 테이블의 스크린샷입니다. 이 테이블에는 3개의 열(_key, _key(id), URL)과 3개의 행(google.com, gmail.com, youtube.com)이 있습니다.

    App Maker는 키 값을 다음과 같이 처리합니다.

    • google.com_key 값이 없으므로 App Maker가 기본 키를 사용합니다.
    • gmail.com_key 값과 기본 키가 있습니다. _key 값이 기본 키보다 우선합니다.
    • youtube.com_key 값이 있으므로 App Maker가 이 값을 사용합니다.

가져오기 작업 중에 이미 앱을 사용 중이면 가져온 데이터를 볼 수 없습니다. 가져온 데이터의 가시성은 앱이 작성된 방식과 사용자가 수행하는 작업에 따라 달라집니다. 앱이 실행되고 있는 브라우저 페이지를 다시 로드하면 이 데이터를 볼 수 있습니다.

Google 스프레드시트에서 데이터 가져오기

  1. (선택사항) 시트의 데이터가 데이터 요구사항을 충족하는지 확인합니다.
  2. App Maker에서 데이터를 가져올 앱을 엽니다.
  3. 탐색 창에서 아무 모델이나 클릭합니다.
  4. 왼쪽 상단에서 시트에서 데이터 가져오기를 클릭합니다.
  5. 게시된 배포 드롭다운 목록에서 데이터를 가져올 배포를 선택합니다.
  6. 가져오기 유형을 선택합니다.
    • 스프레드시트의 모든 데이터를 모든 모델로 가져오려면 모든 모델 및 관계 데이터를 선택하세요.
    • 단일 시트의 데이터를 하나의 모델로 가져오려면 단일 모델 데이터를 선택하세요.
  7. 단일 모델 데이터를 선택한 경우 모델 드롭다운 목록을 클릭하고 데이터를 가져올 모델을 선택합니다.
  8. 선택을 클릭하고 데이터를 가져올 스프레드시트를 선택한 다음 다시 선택을 클릭합니다.
  9. 단일 모델 데이터를 선택한 경우 시트 드롭다운 목록을 클릭하고 가져올 데이터가 있는 시트를 선택합니다.
  10. 데이터를 업데이트하거나 추가하는 옵션을 선택합니다.

    1. 기존 모델 데이터를 가져온 데이터로 업데이트하려면 고급을 클릭하고 데이터가 이미 있나요? 기존 데이터 업데이트를 선택합니다.

      • 레코드에 키 값 _key 또는 _key(primary-key-id)가 있어야 합니다. App Maker는 키 값을 사용하여 가져온 데이터를 기존 데이터와 연결하면 기존 데이터가 업데이트됩니다.
      • 데이터가 이미 있나요? 기존 데이터 업데이트를 선택하면 새로운 데이터가 추가되지 않습니다.
    2. 모델에 데이터를 추가하려면 데이터가 이미 있나요? 기존 데이터 업데이트를 선택하지 마세요. 모든 모델 및 관계 데이터를 선택하면 새로운 데이터를 추가하기 전에 모든 기존 데이터를 삭제할 수 있습니다. 고급을 클릭하고 가져오기 전에 모든 기존 데이터 삭제를 선택합니다.

      • 새로운 데이터에 키 값이 없으면 새로운 레코드가 추가되고 이를 위한 키 값이 만들어집니다. 기존 데이터를 삭제하지 않고 동일한 데이터를 다시 가져오면 새로운 키를 사용하여 레코드가 다시 추가됩니다. 즉 모델 데이터에 서로 다른 키가 있는 중복된 레코드가 포함됩니다.
      • 가져온 데이터에 키 값이 있는 경우 기존 데이터를 삭제하지 않으면 키 값이 기존 레코드의 값과 일치하지 않습니다. 두 레코드가 동일한 키를 가질 수 없으므로 가져오기 작업이 실패합니다.
  11. 가져오기를 클릭합니다.

    App Maker는 데이터 요구사항에 따라 소스 데이터를 검증합니다. 검증이 성공하면 App Maker가 데이터를 가져옵니다.

    검증 및 가져오기 작업이 진행되는 동안 App Maker 편집기의 다른 페이지에서 작업할 수 있습니다. App Maker UI의 하단에 가져오기 상태 메시지가 나타납니다.

  12. App Maker에서 오류를 보고하면 시트에서 오류를 수정하고 가져오기를 클릭합니다.

  13. App Maker에서 가져오기가 완료되었다고 보고하면 완료를 클릭합니다.

데이터 내보내기

개별 모델에서 데이터를 내보내거나, 앱에서 관계를 포함한 모든 데이터를 내보낼 수 있습니다. App Maker는 선택한 배포에서 선택한 모델의 모든 데이터를 내보냅니다. 내보내는 데이터를 보다 세밀하게 제어해야 하는 경우에는 서버 스크립트를 사용하세요.

App Maker는 내보내기 시 데이터를 검증하지 않습니다. 모델 검증 기준은 앱 UI에서의 데이터 입력과 데이터 가져오기에만 적용됩니다.

내보내기 요구사항

데이터를 내보내기 전에 앱 액세스 및 데이터 형식과 관련한 다음 요구사항을 검토하세요.

데이터 내보내기 요구사항
액세스
  • App Maker 앱에 대한 액세스 — 사용자가 앱의 작성자이거나 앱이 사용자와 공유되어야 합니다(편집 가능 또는 보기 가능 액세스 권한).
  • 배포에 대한 액세스 — 앱이 배포에 게시되어야 합니다.
  • 시트에 대한 액세스 — App Maker가 스프레드시트를 사용자의 Google 드라이브에 생성하므로 사용자가 스프레드시트를 소유하게 됩니다.
데이터의 양 데이터는 다음 조건 중에서 충족되는 첫 번째 조건으로 제한됩니다.
  • 소스 데이터는 5,000,000개의 셀을 초과하지 않습니다.
  • 내보내기 작업 시간은 30분 미만으로 제한됩니다.

더 많은 데이터를 내보내려면 다음 방법을 사용하세요.

  • 서버 스크립트를 사용하여 데이터를 다른 대상(예: CSV 파일 또는 데이터베이스)으로 내보냅니다. 마찬가지로 30분의 시간 제한이 적용됩니다.
  • Cloud SQL의 기본 제공 내보내기 기능을 사용합니다.

데이터를 내보내는 방법

App Maker는 스프레드시트에서 다음과 같은 특징이 있는 스프레드시트를 만듭니다.

Google 스프레드시트로 데이터 내보내기

  1. App Maker에서 앱을 엽니다.
  2. 설정 배포를 클릭합니다.
  3. 내보낼 데이터가 있는 배포 옆에서 아래쪽 화살표 를 클릭한 다음 데이터 내보내기를 클릭합니다.
  4. 내보내기 옵션을 선택합니다.

    • 모든 데이터를 스프레드시트로 내보내려면 모든 모델 및 관계 데이터를 선택합니다.
    • 하나 이상의 모델을 스프레드시트로 내보내려면 선택한 모델 데이터를 선택합니다.
  5. 내보내기를 클릭합니다.

Google 스프레드시트에서의 관계 표현

Google 스프레드시트에서 관계를 표현하는 방식은 관계가 일대일인지, 일대다인지, 다대다인지에 따라 달라집니다.

일대일 및 다대일 관계

일대일 또는 다대일 관계를 사용하는 모델의 시트에서 마지막 열에는 관계 종단에 대한 이름이 지정됩니다. 열 값은 연결된 모델 레코드에 대한 기본 키 이름입니다.

아래 예시를 참조하세요.

  • CompanyRating 모델은 회사 평점 데이터를 추적합니다.
  • Company 모델은 컴파일된 평점 데이터를 포함하여 회사 정보를 추적합니다.
  • CompanyRating 모델에는 'Rating'과 'Company' 간에 다대일 관계가 있습니다.
  • CompanyRating 시트에서 마지막 열의 이름은 관계 종단을 나타내는 'Company'입니다. 여기에는 각 평점과 관련된 회사의 기본 키 이름이 포함됩니다.

다대다 관계

다대다 관계의 경우 이름이 relation-name (start-model-name - end-model-name)인 별도의 시트에 관계가 나열됩니다. 이 시트에는 관계의 각 모델에 열이 하나씩 있으며 총 2개의 열이 있습니다. 행에는 모든 연결의 로컬 키 쌍이 나열됩니다. 레코드에 연결이 없으면 이 시트에 포함되지 않습니다.

아래 예시를 참조하세요.

  • Company 시트에는 3개의 회사가 나열되어 있고 Region 시트에는 4개의 리전이 나열되어 있습니다.
  • Companies - CompanyRegions (Company - Region) 시트에는 관계 데이터가 포함되어 있습니다. 'Companies - CompanyRegions'는 관계의 이름입니다.
  • 다대다 관계에는 관계의 각 모델에 열이 하나씩 있으며 'Company'와 'CompanyRegions'라는 2개의 열로 표현됩니다. 값은 관계 종단 모델의 기본 키 이름입니다.
  • 관계 데이터는 회사 Vendor 3이 2개의 리전과 연결되어 있으며 North America 리전에 2개 회사와의 연결이 있음을 보여줍니다.

모델 관계를 내보내는 방법을 더 자세히 알아보려면 공급업체 평점 템플릿을 사용하여 앱을 배포하고 일부 데이터를 추가한 다음 데이터를 내보내고 스프레드시트를 확인해 보세요.

동시 가져오기 및 내보내기 작업

한 번에 하나의 가져오기 또는 내보내기 작업은 항상 제대로 작동합니다. 이와 더불어, App Maker는 앱의 개발자가 동시에 다음과 같은 동시 작업을 수행할 수 있도록 지원합니다.

  • 모든 배포에 대해 모든 유형의 데이터 내보내기를 동시에 실행할 수 있습니다.
  • 데이터를 동시에 다른 배포로 가져올 수 있습니다.
  • 모든 모델과 관계를 하나의 배포로 가져오는 경우, 동일한 배포로 다른 유형의 데이터를 동시에 가져올 수 없습니다.
  • 단일 모델로 데이터를 가져오는 경우, 동시에 다른 모델로 데이터를 가져올 수 있습니다. 하지만 데이터를 동일한 모델로 동시에 가져올 수는 없습니다.